java,c#,.net各个的优势
小弟一直是做JAVA的,没有接触过c#和.net最近公司开发一个项目,其中一些功能用JAVA实现很困难打算用C#或.net,不知道这两个语言相比JAVA有什么特点和优势望...
小弟一直是做JAVA的,没有接触过c#和.net
最近公司开发一个项目,其中一些功能用JAVA实现很困难
打算用C#或.net,不知道这两个语言相比JAVA有什么特点和优势
望各位高手指点下 展开
最近公司开发一个项目,其中一些功能用JAVA实现很困难
打算用C#或.net,不知道这两个语言相比JAVA有什么特点和优势
望各位高手指点下 展开
8个回答
展开全部
C#.net 上手容易 易用 开发工具好用 做事效率高
致于JAVA ..... 虽然它技术仍然好,但是会很累
C#是就C++++的意思, 是一门语言,.NET是一个平台
你可以把.NET 理解为能编译C++ VB J# C# HTML 等 的的编译器 在这个大编译器上 什么语言都可以用,.而且微软出的玩艺很好用 很易用,,
C#相对于JAVA来说是一门新语言 他继乘了JAVA的优点 虽然也有不足
现在JAVA仍然存在 是因为JAVA以前确实很优秀 在上个世纪末得到广泛的推广和应用.在C#出现又前 在高级语言里 没有一门语能比的上JAVA优秀,后来微软对了对抗JAVA 开创了C# C#由于是后来出现的 所以 他几乎继承了JAVA的所有优点 总之 C# 是微软的 JAVA原来属于SUN 现在属于ORACLE 他们属于不同的对立的公司,这两家可以说是仇人,C # 的开发公具是由微软独家提供,就是所谓的.NET平台.这个工具做的十分好 十分人性化.让初学者十分容易学会应用,而且用这个公具开发的开发效率十分高,平均开发效率是JAVA的三倍左右.这个工具对大公司是收费的,对于个人学习和研究好像有免费的板本.
相对的JAVA 的开发工具由个别公司和各个JAVA爱好者提供, 每种工具都不完美,所以不论你用哪个工具,都不如C#的.NET 开发工具好用,如果你一开始想学JAVA,不得不学会配置各种工具,数据库驱动,很麻烦.不过JAVA有他的优点,就是他的开发工具有很多是免费的. 微软的C#语言和.NET 工具都对他自已家的数据库产品SQLSERVER 做了优化,所以如果你学C# 那么 如果你用.NET 工具操作微软自已家的数据库,那实在太方便了.而且性能很好.微软开发C# 和那个优秀的.NET 学开发工具就是为了对抗其他公司的数据库产品 比如IBM的DB2 和ORACER的ORACLE数据库
而微软之所以恨JAVA是因为JAVA对其他公司的数据库支持非常 好.
现在的C#语言 只能用在装WINDOWS系统的服务器或手机或电脑上 (虽然微软说过C#要支持跨平台.不过最近也没什么消息)
而JAVA 可以在任务平台开发.WINDOWS可以 LINUX 可以 手机操作系统也可以 MP3操作系统也可以(现在世界上WINDOWS操作系统占有市场太多.也许你根本不用理会跨平台这回事,光开发WIDOWS平台的就够你干的了)
我很看好C# 因为它太好学了,太好用了. 学C# 电脑只用安两个软件就可以 一个是.NET 一个是SQLSERVER 一次性安好之后就完事了 可以把心思放在程序开发上了 因为.NET几乎集成了所有的控件. 而JAVA工具....麻烦啊.
JAVA是老一代的产品了.虽然他很好.可是他的开发效率已经落后.
而现在SUN已经倒了.SUN的儿子JAVA归了ORACLE 那么 以后IMB 工司还会像以前那样支持JAVA么 因为JAVA的板权是老对头ORACLE的东西. 致于原因,有点头脑的都会明白(被对于拿住自已所爱,危险).那么 JAVA还会像以前那么火么,也就是说以后用JAVA程序员的需求量还是很多么.. 微软这个老狐里近几年估计不会倒.因为这个公司确实有高人在.... 别的公司想抢他的市场 难..所以微软的C#估计的以后的日子里渐多于JAVA 也许JAVA就像当的DEPHI ...... 虽然很好,因为没有强大的公司保护也就 .....
致于JAVA ..... 虽然它技术仍然好,但是会很累
C#是就C++++的意思, 是一门语言,.NET是一个平台
你可以把.NET 理解为能编译C++ VB J# C# HTML 等 的的编译器 在这个大编译器上 什么语言都可以用,.而且微软出的玩艺很好用 很易用,,
C#相对于JAVA来说是一门新语言 他继乘了JAVA的优点 虽然也有不足
现在JAVA仍然存在 是因为JAVA以前确实很优秀 在上个世纪末得到广泛的推广和应用.在C#出现又前 在高级语言里 没有一门语能比的上JAVA优秀,后来微软对了对抗JAVA 开创了C# C#由于是后来出现的 所以 他几乎继承了JAVA的所有优点 总之 C# 是微软的 JAVA原来属于SUN 现在属于ORACLE 他们属于不同的对立的公司,这两家可以说是仇人,C # 的开发公具是由微软独家提供,就是所谓的.NET平台.这个工具做的十分好 十分人性化.让初学者十分容易学会应用,而且用这个公具开发的开发效率十分高,平均开发效率是JAVA的三倍左右.这个工具对大公司是收费的,对于个人学习和研究好像有免费的板本.
相对的JAVA 的开发工具由个别公司和各个JAVA爱好者提供, 每种工具都不完美,所以不论你用哪个工具,都不如C#的.NET 开发工具好用,如果你一开始想学JAVA,不得不学会配置各种工具,数据库驱动,很麻烦.不过JAVA有他的优点,就是他的开发工具有很多是免费的. 微软的C#语言和.NET 工具都对他自已家的数据库产品SQLSERVER 做了优化,所以如果你学C# 那么 如果你用.NET 工具操作微软自已家的数据库,那实在太方便了.而且性能很好.微软开发C# 和那个优秀的.NET 学开发工具就是为了对抗其他公司的数据库产品 比如IBM的DB2 和ORACER的ORACLE数据库
而微软之所以恨JAVA是因为JAVA对其他公司的数据库支持非常 好.
现在的C#语言 只能用在装WINDOWS系统的服务器或手机或电脑上 (虽然微软说过C#要支持跨平台.不过最近也没什么消息)
而JAVA 可以在任务平台开发.WINDOWS可以 LINUX 可以 手机操作系统也可以 MP3操作系统也可以(现在世界上WINDOWS操作系统占有市场太多.也许你根本不用理会跨平台这回事,光开发WIDOWS平台的就够你干的了)
我很看好C# 因为它太好学了,太好用了. 学C# 电脑只用安两个软件就可以 一个是.NET 一个是SQLSERVER 一次性安好之后就完事了 可以把心思放在程序开发上了 因为.NET几乎集成了所有的控件. 而JAVA工具....麻烦啊.
JAVA是老一代的产品了.虽然他很好.可是他的开发效率已经落后.
而现在SUN已经倒了.SUN的儿子JAVA归了ORACLE 那么 以后IMB 工司还会像以前那样支持JAVA么 因为JAVA的板权是老对头ORACLE的东西. 致于原因,有点头脑的都会明白(被对于拿住自已所爱,危险).那么 JAVA还会像以前那么火么,也就是说以后用JAVA程序员的需求量还是很多么.. 微软这个老狐里近几年估计不会倒.因为这个公司确实有高人在.... 别的公司想抢他的市场 难..所以微软的C#估计的以后的日子里渐多于JAVA 也许JAVA就像当的DEPHI ...... 虽然很好,因为没有强大的公司保护也就 .....
展开全部
c#是开发语言 .net不是语言的.net是一个开发的框架,平台和类库的集合c#就是.net所集成的一种开发语言。
c#要比JAVA简单许多的 (个人认为)
c#要比JAVA简单许多的 (个人认为)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
C#作为开发语言,他的开发环境是vs.net,相对于JAVA语言,因为他的开发环境自带控件,不需要想java那样在界面设计方面那样繁琐,而且在实现和数据库连接方面也比java方便点
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
C# .NET JavaScript
类型 强类型 强类型 强类型
静态/动态 静态 动态解释执行 动态
支持面向过程 是 否 是
支持基于对象 是 是 是
支持范型 否 是 否
支持模板 是 否 否
支持面向对象 是 是 否
Java
Java是一门静态强类型面向对象的编程语言。它是C++和Smalltalk取长补短的产物。
Java是静态编译的强类型语言。你必须声明变量的类型,以便编译器能够检查代码的类型是否正确。这和C++是相同的。Java是一门类型非常安全的编程语言。
Java只支持一种编程范式:面向对象编程范式。对于过时的面向过程编程范式并不支持。也不支持基于对象的编程范式,也没有模板。
原因可能是,当java在90年代中期刚刚诞生时,面向过程的编程已被唾弃。而C++的基于对象的编程方式,由于没有和模板相互结合,而名声扫地。C++对于面向对象的编程范式的支持又比较差。
于是,汲取经验教训之后, Java作为一门纯正的面向对象编程语言诞生了。
Java使用面向对象的编程范式实现了动态多态,实现了抽象化的编程方式。取得了巨大的成功。
Java语言中,除了基本类型是值类型之外,没有任何值类型,你也不能创建任何值类型。这样,基于对象编程这条路就被卡死了。
虽然丧失了值类型的效率,但是也避免了基于对象编程的大量错误。
Java语言中所有方法也都是虚函数。这也是为了保证纯正的面向对象编程。
Java语言是静态面向对象编程范式的顶峰。使用面向接口的抽象编程,是有效使用java开发的唯一途径!
另一方面,Java实际上是一门动态语言。它是动态解释执行的。和Ruby,JavaScript等一样。
这使java具备了运行时的灵活性。可以实现自省,反射等C++等传统静态语言无法实现的功能。
.NET
.NET是java的兄弟。是微软因为被Sun排除在java之外而开发的一套语言。主要包括C#,VB.net,C++/CLI等语言。
它的设计理念基本和java相同,也是一个支持静态面向对象编程范式的平台。
对于.NET语言平台,我选择C#和C++/CLI这两种语言进行论述。VB.NET和C#类似,这里就不再多说了。
C#
C#.net还支持值类型,也就是基于对象的编程范式。(当然,.NET框架也是支持值类型的)
C#.net的泛型类型替换是在运行时执行的。对于引用类型(在堆内存中创建实例的类型),它使用类型强制转换,而不是C++模板的源代码生成来实现参数化类型。
对于值类型,则使用类似于C++模板的MSIL中间代码生成机制实现。
顺便提一下,java的泛型实现和C#的机制类似。也是使用强制类型转换实现。而且,Java中没有值类型,也不能对基本类型进行泛型操作,因此没有C#和C++中的源代码扩张问题。
但是,老实说,java的泛型机制确实太弱了!
C#语言首选的是面向对象编程范式。C#也可以使用泛型支持的基于对象的编程范式。
使用值类型,对于用惯面向对象编程范式的C#和java程序员来说有一定的难度。而且,提升的效率也并不很高。
同时,在语法层面上,C# 泛型是实现参数化类型的更简单方法,不具有 C++ 模板的复杂性。此外,C# 并不尝试提供 C++ 模板所提供的所有功能。
因此,C#泛型支持的基于对象编程要比模板支持的基于对象的编程要弱很多。
理念上,泛型编程有些不伦不类,有着太强的面向对象编程的气味。
C#中,使用泛型支持的基于对象的编程范式不如面向对象编程范式。
我认为,C#语言还是应该首先使用面向对象编程范式。
类型 强类型 强类型 强类型
静态/动态 静态 动态解释执行 动态
支持面向过程 是 否 是
支持基于对象 是 是 是
支持范型 否 是 否
支持模板 是 否 否
支持面向对象 是 是 否
Java
Java是一门静态强类型面向对象的编程语言。它是C++和Smalltalk取长补短的产物。
Java是静态编译的强类型语言。你必须声明变量的类型,以便编译器能够检查代码的类型是否正确。这和C++是相同的。Java是一门类型非常安全的编程语言。
Java只支持一种编程范式:面向对象编程范式。对于过时的面向过程编程范式并不支持。也不支持基于对象的编程范式,也没有模板。
原因可能是,当java在90年代中期刚刚诞生时,面向过程的编程已被唾弃。而C++的基于对象的编程方式,由于没有和模板相互结合,而名声扫地。C++对于面向对象的编程范式的支持又比较差。
于是,汲取经验教训之后, Java作为一门纯正的面向对象编程语言诞生了。
Java使用面向对象的编程范式实现了动态多态,实现了抽象化的编程方式。取得了巨大的成功。
Java语言中,除了基本类型是值类型之外,没有任何值类型,你也不能创建任何值类型。这样,基于对象编程这条路就被卡死了。
虽然丧失了值类型的效率,但是也避免了基于对象编程的大量错误。
Java语言中所有方法也都是虚函数。这也是为了保证纯正的面向对象编程。
Java语言是静态面向对象编程范式的顶峰。使用面向接口的抽象编程,是有效使用java开发的唯一途径!
另一方面,Java实际上是一门动态语言。它是动态解释执行的。和Ruby,JavaScript等一样。
这使java具备了运行时的灵活性。可以实现自省,反射等C++等传统静态语言无法实现的功能。
.NET
.NET是java的兄弟。是微软因为被Sun排除在java之外而开发的一套语言。主要包括C#,VB.net,C++/CLI等语言。
它的设计理念基本和java相同,也是一个支持静态面向对象编程范式的平台。
对于.NET语言平台,我选择C#和C++/CLI这两种语言进行论述。VB.NET和C#类似,这里就不再多说了。
C#
C#.net还支持值类型,也就是基于对象的编程范式。(当然,.NET框架也是支持值类型的)
C#.net的泛型类型替换是在运行时执行的。对于引用类型(在堆内存中创建实例的类型),它使用类型强制转换,而不是C++模板的源代码生成来实现参数化类型。
对于值类型,则使用类似于C++模板的MSIL中间代码生成机制实现。
顺便提一下,java的泛型实现和C#的机制类似。也是使用强制类型转换实现。而且,Java中没有值类型,也不能对基本类型进行泛型操作,因此没有C#和C++中的源代码扩张问题。
但是,老实说,java的泛型机制确实太弱了!
C#语言首选的是面向对象编程范式。C#也可以使用泛型支持的基于对象的编程范式。
使用值类型,对于用惯面向对象编程范式的C#和java程序员来说有一定的难度。而且,提升的效率也并不很高。
同时,在语法层面上,C# 泛型是实现参数化类型的更简单方法,不具有 C++ 模板的复杂性。此外,C# 并不尝试提供 C++ 模板所提供的所有功能。
因此,C#泛型支持的基于对象编程要比模板支持的基于对象的编程要弱很多。
理念上,泛型编程有些不伦不类,有着太强的面向对象编程的气味。
C#中,使用泛型支持的基于对象的编程范式不如面向对象编程范式。
我认为,C#语言还是应该首先使用面向对象编程范式。
参考资料: http://blog.csdn.net/shendl/archive/2008/06/10/2528560.aspx
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
.软件开发技术比较
(1)J2EE
大型应用
开发标准多
开发中使用的服务器和技术差距较大
使用广泛
.NET
中小型开发为主
开发标准唯一
开发中使用同一服务器
使用广泛
(2)Java
开发环境繁多
面向对象,语法舒展流畅易于理解
调试不方便
跨平台性好但不同平台之间仍有差异
开发Web程序为主,并可以进行Wap开发
C#
拥有世界上最好的开发和调试环境
面向对象,语法舒展流畅易于理解
调试非常方便,开发效率极高
已经有Linux上可以使用C#程序
可以开发Web程序,可以开发 WinFrom (C/S )程序,还可以快速Wap开发
3.软件企业从业人员薪水比较
高级级开发人员
Java--1万至2万
C# --1万至2万
中级开发人员
Java-- 6k以上
C#-- 6k以上
初级开发人员
Java-- 2k至3k
C# -- 3k至4k
4.软件企业从业人员学习周期比较
J2EE
Java
完全达到企业录用标准需要6至12个月
.NET
C# &.NET
完全达到企业录用标准需要3个月,最长需要5个月
5.代码编写量比较
实现同样的功能需求:三分之一的代码编写量
.NET 4410行,J2EE 14273行
配置减少:
.NET 74行,J2EE 2566行
中间层减少:
.NET 710行, J2EE 5404行
代码减少意味着:拥有成本低,更易于维护。
(1)J2EE
大型应用
开发标准多
开发中使用的服务器和技术差距较大
使用广泛
.NET
中小型开发为主
开发标准唯一
开发中使用同一服务器
使用广泛
(2)Java
开发环境繁多
面向对象,语法舒展流畅易于理解
调试不方便
跨平台性好但不同平台之间仍有差异
开发Web程序为主,并可以进行Wap开发
C#
拥有世界上最好的开发和调试环境
面向对象,语法舒展流畅易于理解
调试非常方便,开发效率极高
已经有Linux上可以使用C#程序
可以开发Web程序,可以开发 WinFrom (C/S )程序,还可以快速Wap开发
3.软件企业从业人员薪水比较
高级级开发人员
Java--1万至2万
C# --1万至2万
中级开发人员
Java-- 6k以上
C#-- 6k以上
初级开发人员
Java-- 2k至3k
C# -- 3k至4k
4.软件企业从业人员学习周期比较
J2EE
Java
完全达到企业录用标准需要6至12个月
.NET
C# &.NET
完全达到企业录用标准需要3个月,最长需要5个月
5.代码编写量比较
实现同样的功能需求:三分之一的代码编写量
.NET 4410行,J2EE 14273行
配置减少:
.NET 74行,J2EE 2566行
中间层减少:
.NET 710行, J2EE 5404行
代码减少意味着:拥有成本低,更易于维护。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
麻烦 大家 复制一份更好,更详细的一点 来看看
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询