当前位置:编程学习 > JAVA >>

Java和.net哪项发展更长远呢?

答案:
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#语言还是应该首先使用面向对象编程范式C++/CLIC++/CLI是为了让C++使用.NET平台而提供的扩展机制.NET平台是类似于java的静态强类型动态执行的执行平台是面向对象编程范式理念的框架C++/CLI使用了新的语法,使用C++/CLI进行.NET开发时,类似于C#编程同时,也可以使用模板进行C++/CLI编程这是C++/CLI2005新增的功能使用C++/CLI进行.NET编程时,既可以使用C#样式的面向对象编程也可以使用模板支持的基于对象的编程范式进行开发可以把模板支持的基于对象的编程范式和.NET的面向对象的编程范式结合起来使用C++/CLI可以同时使用原生C++和.NET编程如果使用.NET框架执行,那么C++原生代码就会存放在生成的MSIL中间代码中,在运行时再使用C++编译器编译成机器码.NET的互操作机制.NET运行时本身就是使用COM编写的,是一个COM服务器因此,.NET和COM互操作是非常简单的也可以使用COM技术,用C/C++直接调用.NET内的方法在互操作上.NET比java实现得更好不能从C语言调用Java方法,只能从java代码中使用JNI调用C方法总体评价.NET是java的表兄弟又做出了一下改变1,定义了.NET的汇编语言基于.NET的汇编语言可以支持任何语言在.NET平台上执行Java自然也可以作为一个平台但是java平台的设计目标就是java这一种语言,因此没有定义汇编语言,只有java的机器码2,支持值类型虽然用处不大,但是可以提高性能,也方便与C语言的函数库交互3,泛型的实现比java强大4,特别是C++/CLI,具有模板*.NET运行库的强大能力
刚学java时,程序也是运行控制台界面。.net集成了windows gui,所以可以所见即所得,c也可以办到。java和现在流行的很多开发语言都是以c为基础的。所以学好c,可以更好的学好其他语言。 参考网址:JAVA和.Net孰优孰劣? http://hi.zhaoxi.net/alpheus/blog/item/fce1f016549f1619962b4320.html有什么问题可以继续问我或者百度一下卢松松也可以找到我!
从它们所属公司的前景看还是.net的好些啊
这个不好说的````现在sun公司都给IBM收购了```````那你能说java就完了吗??所以你这个问题不好说,现在也没有人敢说那个发展长远,因为他们都有自己的特色~~~~你学那个都可以,两个都不错``

上一个:请详解关于java与SQL连接的方法。
下一个:JAVA的自动内存管理是怎么回事

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,