在Java中HotSwap技术给程序的调试带来非常大的方便,在。Net中几乎不允许这样做,只有在非常苛刻的几个情况下才可以实现在调试状态下修改代码;。Net类库中一些类设计的不灵活;而在Java中的Swing、SWT等图形库中,可以在一个树节点中挂任何类型的值。
1、HotSwap:在Java中HotSwap技术给程序的调试带来非常大的方便,比如可以让程序一边调试一边修改代码,代码修改以后在程序中立即就可以看到修改后的效果,不用每次修改以后都要重新启动程序;在。Net中几乎不允许这样做,只有在非常苛刻的几个情况下才可以实现在调试状态下修改代码,而且一旦代码段被执行过了就肯定不允许再修改了,这就导致每次修改代码都要频繁启动程序,非常繁琐。
2、基于。Net的东西和Windows结合过于紧密,而且和Windows平台下一些旧有技术有太多千丝万缕的联系,导致用起来非常麻烦。比如每个对外部系统暴露的接口传来传去最后看到的类型是_ComObject,要想得知其真正的接口类型就必须通过COM技术来取得,非常麻烦;开发的很多组件都需要到注册表中注册,增加了部署的难度。
3、Visual Studio中代码的即时查错能力非常弱,很多的要到编译时才能知道代码是否有错;而在Eclipse中在编写代码的时候对于有错误的代码和有警告的代码(比如一些Private成员没有被引用)可以立即清晰的提示出来,开发人员可以立即修改有错误的代码。
4、Java中默认的方法都是可以override的除非标注为final,而在C#中必须是明确声明virtual的才可以override。在Delphi中也是类似的问题,这应该是Delphi和C#共同的老爹Anders Hejlsberg对于OO的一种理念吧,也许人家大师的想法是正确的:一个方法是否是虚方法必须要明确指定。
不过对于习惯了Java中这种实现方式的人来说,C#的这种实现方式还是让人感觉一时难以适应的。5、Visual Studio的编译速度太慢,点击【调试】/【运行】按钮以后要编译好长一段时间才能启动(不过和Visual Studio6比起来现在的Visual Studio编译速度已经快多了了,已经接近于Delphi的编译速度了);由于Eclipse使用的自己的高性能编译器Eclipse Compiler,而且代码的编译是在编写代码的时候即时进行的,所以在Eclipse中根本感觉不到编译的时间,点击【调试】/【运行】按钮以后程序就运行起来的。
6、。Net类库中一些类设计的不灵活,比如TreeView的节点的显示的值是通过Text属性赋值上去的;而在Java中的Swing、SWT等图形库中,可以在一个树节点中挂任何类型的值,然后通过为这个节点定义个性化的Render(渲染器)来决定这些树节点显示什么。
7、Visual Studio的插件体系过于死板,开发起来不像开发Eclipse插件那样灵活简便,这可能和Visual Studio插件体系的历史渊源有关系。
延伸阅读
Java的类库有什么
Java的类库,包含了编译Java程序所需要的最核心文件。
1.核心库文件,其中有
(1)数据结构的库,包括列表、字典和树等
(2)XML分析库
(3)安全方面应用库
(4)国际化和本地化应用库
2.综合库文件,包含了程序员和其他系统通信的功能文件。
(1)JDBC,即Java数据库联通的API
(2)JNDI,即Java命名和目录接口
(3)RMI和CORBA用于重新分发软件
3.用户界面库文件,包含:
(1)AWT,即抽象窗口开发包,提供了产生图形用户界面所需要的功能
(2)Swing库
(3)其他用于回访媒体文件、录音、截图的库
4.一个用于执行软件的Java虚拟机(JVM)
5.插件,可以在浏览器里面使用
6.JWS,可以让终端用户连接到互联网
7.许可文件和文档
文章标题:Java和.NET有哪些优劣势,发布者:小编,转载请注明出处:https://worktile.com/kb/p/37296