java/.net语言及IDE简易对比
创始人
2024-07-30 22:30:33
0

做这个对比是希望找出各自不足并加以改进,也希望未提到的大家一起补充,纯当技术讨论,所以极端.netjava粉丝可以无视!

先来说说IDE对比,也就是eclipse和VS的对比吧:

1、eclipse支持变量上下文中的高亮显示,这点VS直到2010才支持;

2、eclipse双击左花括号可自动选定包含内容,对于大块if...else来说,是个福音;

3、相比而言,eclipse插件更为丰富;

4、VS中region代码块管理功能在eclipse里木有,遇到比较烂的老代码真是。。。

5、 VS的智能提示更胜一筹,比较完善;

6、eclipse自动纠错比较省事;

目前暂时想到这么多,可能这些对平时实用影响比较大吧,坐等看官们补充!

接下来是C#和JAVA在语言层面的对比,话说.net 3.0之后,语言层面优雅不少(即使有些是语法糖),加入了更过函数式编程的用法,如LINQ, lambda等,这些就不作对比了,为什么?因为JAVA这块貌似拿不出东西来比,据说scala等java平台后来者这一点好很多,不过还没用过,期待JAVA迎头赶上啊~!这里主要对比各自的基础框架,基本上是.net2.0与jdk1.6的比较:

1 、JAVA对已声明异常需要在代码中做处理,否则无法通过编译,这是个比较不好做评价的设计,虽然有助于提高程序的健壮性,但是却也会把一些问题隐藏起来,个人认为这个设计用在服务器程序中是非常好的,至少你的服务不会因为一个异常而终止。

2、成员可见性上,JAVA默认为包可见,一定程度降低了封装性,另外protected修饰符在JAVA中为包可见及子类可见,.NET中仅为子类可见;

3、JAVA反射机制存在读写限制,需调用setAccessible方法给予权限,个人觉得有点鸡肋;

4、可替换jar文件中的class文件实现局部更新,这点在某些情况下非常好用;

5、JAVA基础类库或者说JAVA代码规范中的接口名字无法让人一眼看到就知道是个接口,如.net里接口会固定首字母为I ;

6、JAVA里的枚举设计的比较繁琐,很多情况都在使用静态常量代替,相比之下,.net中的枚举更为直观;

7、JAVA只是简单的将泛型设计成一个语法糖;

8、JAVA里没有值类型概念,基础类型int,byte等不是原生的对象,需要经过包装,导致Map里用一个int key=1去查找的结果肯定为NULL,即使MAP里存在KEY=1的数据,这个必须批评下;

9、运行在实例调用的方法表里出现静态方法,这容易导致混淆;

10、相比.net,JAVA里的时间操作比较麻烦;

11、JAVA中做单元测试十分方便,每个类都可以加个main函数,虽然.net也可以,但配置相对麻烦;

12、JAVA中环境变量的配置估计是不少新手的噩梦。

 最后说一句,无论哪种语言,我认为人都有偏好,这没什么,但是如果是靠贬低其他的就不好了,除非你有能力发明一个自己的语言。

【编辑推荐】

  1. java枚举类型入门
  2. javascript的search和match方法
  3. JAVA初学的一些技巧
  4. 关于Java对象序列化您不知道的5件事
  5. Javascript闭包(closure) 深入浅出

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
着眼MAC地址,解救无法享受D... 在安装了DHCP服务器的局域网环境中,每一台工作站在上网之前,都要先从DHCP服务器那里享受到地址动...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...