北大青鸟:Java和.NET在开发中的区别之语言、插件

Java和.NET有什么不同?我也是一名在北大青鸟通州校区学习的学员,由于还在学习的过程中,对于软件开发的相关经验知识还有限,所以本篇内容只能从我所接触的过的功能以及比较表面的知识点来说明Java和.NET的不同点。

语言的不同点:

Java语言和C#语言非常相似,虽然内部会有很多区别,提供的API也不一样,但开发一个具体功能点的思路常用的都差不多,由于对比较新的技术和特性开发过程中接触不多,我所遇到的不同点包括:

1、JAVA里默认修饰符是包内可见(对应同一个文件夹目录,而不是项目大jar包下)的,protected的变量和方法都是包内和子类可见的,.NET里是只有自己和子类可见NET里类的默认修饰符是Internal,程序集内可访问。方法和字段默认为private的,和JAVA默认包内可见不一样。

2、如果找到一个JAR包,Java查看新jar包的方法字段描述,需要有单独的对应jar包的doc文档,才能看到接口调用参数说明,否则看起来不直观,但是如果有源码打出来的jar包,调试的时候可以方便的看到该包的源代码NET里只要有了dll文件,就能方便的看到方法元数据调用参数,但是看到参数详细说明,还是需要对应dll的xml文档。

3、Byte类型的数字范围不一样,Java里是-128到127,.NET是0-255,一般需要互相交换数据和处理都是转换成16进制,然后取8bit的后2个bit,这样它们的值都是一样的,方便同步加密解密或相关处理

4、JAVA里文件保存后默认自动编译,但是这个也得益于它把每个java文件编译成一个class文件,.NET里需要单独每次执行编译项目,因为它一个项目一个dll文件,如果保存其中一个。cs文件都执行编译,则工作量太大影响开发速度。

5、Java里的Final关键字,当给一个字段时,表示该字段不能修改,构造函数里都不能修改,这个和C#的const有点像,但是const默认是static的。和C#的readonly也比较像,但是readonly可以在构造函数里修改。当它作为一个方法的修饰符时,它类试c#的sealed类,不能重写它。

6、Java包的名字是和物理文件位置一一对应的,C#里命名空间可以随便写,并且编译出来的程序集也可以随便更改,可以不和命名空间保持一致,程序集和JAVA里单独打出来的jar包是差不多的意思。

7、Java里推荐用get,set方法来对内部变量赋值和获取值,.NET里可以用字段get,set获取,并且vs2008后可以直接get;set;的方式,借助语法糖,编译器后会自动生成等价的get,set内部字段。

插件的不同点:

1、MyEclipse自身就是一个插件,里面集成了大量开源框架,而VS是微软一个大一统的IDE,要用其他开源插件,需要单独下载和单独配置。

2、Java里实现webservice的方法很多,除了javax.jws包里只有的JAX-WS,java webservice规范自带版本,还有axis,xfire的webservice开源实现,axis包括axis1,axis2,xfire已更名为cxf了,但是各种实现方法各异,在和。NET发布的webservice互相调用时,经常遇到一些问题,总体来说Java对wsdl的格式要求更严格。

上面都是自己在北大青鸟通州校区学习的过程中总结出来的,涉及面有限,需要自己以后不断完善相关技术点,并且整理和理解的结果也可能不完全准确,如有问题,还希望老师指正。

北大青鸟网上报名
北大青鸟招生简章