中易网

java和.net哪个比较好?

答案:5  悬赏:20  
解决时间 2021-01-27 09:36
java和.net哪个比较好?
最佳答案
这要看个人的偏好,按照当前流行的来说,java还是比较多人学,而且应用比较广,建议你参加一些专业的培训机构,或者自己下载马士兵的视频学习~~
全部回答
没有最好的编程工具 只有最好的编程思想
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++/CLI
C++/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运行库的强大能力
这问题不能一概而论。得看是什么方面。如果是做网站,.net有vs,拖拽控件什么的很方便。但是java比.net成熟,各种技术例如ssh框架等等比较多。就现在而言,以java为基础的网站开发还是主流
差不多,.net相对而言简单点,因为里面会有很多封装好的方法,开发快,稳定性好,但是也因为如此DIY不高,同样开发的网站.net支持的访问量不如java高,还有一点,.net一般薪资上比不了java高
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
一立方粘土有多重,如果湿了它有多重?请教。
求千图网 vip账号下载素材 只用1天 谢谢
高铁z2o1高铁中途仃站时间
香港金伯爵珠宝地址在什么地方,我要处理点事
(இωஇ )求快把我哥带走的电影资
郭敬明写的临界纪年爵迹到底是一本什么书?
1.5T车的动力相当于自然吸气车的多大动力?
201×22等于括号加括号乘以22=括号乘22+括号
如何选择?我是一个34岁男人,离了2次婚,现
unique造型地址有知道的么?有点事想过去
复试完面试官说我会尽快通知你的 代表什么意
英国的法律精神是不是宁纵勿枉?
小型双排 厢式汽车让上高速公路吗
为什么qq多看电视剧的时候就是卡
回公司隔2天才发喜糖可以吗
推荐资讯
怎么提示缺少类型说明符-假定为int。注意:c++
小米6#米家给6 免费贴膜吗
吃阿胶可以祛斑吗
哪个男人即强吻了热巴又强抱了热巴
有范儿造型美容美发公司地址在哪,我要去那里
我今天晚上看到一辆车,大家帮我看看,这是什
ps钢笔画曲线总往反向弯怎么办
以惜别为题,写个片段,文中用上送别的诗句
淘宝遇到恶意买家,该怎么办
女牛和女羊开店合吗
儒家思想经过2000多年的不断发展形成了完整的
CF里的幽灵长什么样子?
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?