Java和.NET开发过程中的一些不同

发表于:2012-6-26 09:30

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:Lawson    来源:51Testing软件测试网采编

  用.NET平台下的C#语言开发了比较长一段时间,最近项目开始用JAVA来开发了,本文通过自己开发过程中的一些感受说下它们在具体开发过程的不同点,由于经验知识还有限,本篇文章只能从比较表面的以及自己常用的功能点来说明我所看到的不同点。

  我是用VS2008和VS2010开发.NET程序,通过MyEclipse8.5开发JAVA程序,下面从IDE、语言、插件的不同点来做下简单的说明。

  IDE的不同点:

  给我的第一感觉就是MyEclipse在开发过程编写查看代码也非常便利,甚至有很多VS没有的功能,下面列举自己现在遇到的一些不同点:

  1、一个变量字段选中后,其他用到该字段的背景颜色自动凸显出来,方便查看有哪些地方用了这个变量,VS2010之前是没有这个功能的。

  2、对于一个大括号或小括号的代码段,双击该符号后面,则自动选中括号内部的代码段,这个可以方便查看一个代码段,VS没有这样的功能。

  3、MyEclipse没有像VS里的#region,#endregion一样的代码段区域,在一个方法或类里,可以#region 功能点….#endregion这样把代码片段折叠起来,MyEclipse除非用其他一些插件才能达到这个效果。

  4、Ctrl+alt+t和Ctrl+alt+r快捷键,这个快捷键在MyEclipse里非常有用,可以分别快速查找工作空间里的type或者resource,可以快速模糊匹配找到文件或某个类型的文件,而VS没有找到这样的功能。

  5、MyEclipse智能提醒默认比较简单,只要在输入.后才会自动提醒,可以在window->preferences->Java-Editor->Contenet Assist标签页的Auto-Activation框里的Auto activation triggers for Java设置成.abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ,这样设置后,在MyEclipse里输入任意字母就能提示了,但是它区分大小写,不像VS输入小写a也能智能提示大写A开头的变量类型等。

  6、MyEclipse经常遇到编码问题,对于新手非常不便利,它分为文件打开乱码,和提交请求中文内容乱码两种情况。当工作空间包括多个项目时,有可能一个项目是用GBK编码,另外一个是UTF-8,这样就会导致单个文件乱码,设置整个工程编码在Window->Preferences->General->Workspace选择Text file encoding里的Other设置,为单独项目在Project右键Properties->Resource选择Text file encoding里的Other设置。对于JSP等提交请求内容默认编码是ISO-8859-1,也经常导致乱码,可以在windows->Preferences->general->Content Types里的Text设置不同文件的编码。但是VS没有这么多乱码问题,对新手不容易出现乱码的问题。

  7、MyEclipse经常会提示内存溢出等相关内存问题,对于新手也是比较困惑的事情,往往是内存默认配置不够等造成的,修改myeclipse.ini里-vmargs下面的配置参数,比如-Xmx912m表示最大分配堆内存912M,-XX:MaxPermSize=556m表示最大分配非堆内存556M,这个可以让MyEclipse内存可能够用。但部分内存溢出,可能是JVM内存占用溢出,就需要单独设置JVM的内存参数了,在window->preferences->Java->Installed JRE里的,选中默认JDK,然后选择Edit,在Default VM Arguments里配置相关参数即可。如果跑的程序是WEB程序,可能还需要设置Tomcat的内存设置,在window->preferences->MyEclipse->Servers->Tomcat,选中对应版本的Tomcat,然后选择里面的JDK节点,在Optional Java VM arguments里设置内存参数。相对来说VS就不会有这么麻烦的处理了,一般都不用设置内存参数。

  8、调试代码的时候,VS就表现出比MyEclipse更强大了,它们都可以在断点处修改已经存在的变量的值,但是VS在监控临时变量框里输入变量时同样可以智能提示自己写的代码,而MyEclipse不能自动提醒,并且VS可以拖动断点到已经运行的代码,这个功能在调试问题时是非常强大和有用的,但是MyEclipse不能拖动断点。

  9、默认的Ctrl+左键点击,可以快速定位到该字段或类型的定义处, 和F3一样,但是我觉得ctrl+左键开发过程中更顺手,比VS里默认的F12快速定位会感觉更便利,而且它集成Spring后,Ctrl+左键可以选择定位到注入接口的子实现代码,这样可以很方便的查看实现代码,而VS当使用Spring.net集成时,是不提供这个功能的。

  10、MyEclipse里右键-source,可以有很多比较方便的功能,比如生成getter,setter和继承接口父类方法。

  11、JAVA项目是通过导入方式打开,不是通过像VS里双击.sln或.csproj文件就可以打开整个工程。但是打开一次过后,下次再打开MyEclipse,它都会自动加载已经打开过的项目。而VS是每次只能打开一个解决方案,解决方案里包括不同项目。如果新增了解决方案,下次就需要单独打开了。

  12、MyEclipse导入新项目,如果JRE版本不一样,需要选择使用本地JRE版本,项目右键->Build Path->Configure Build Path->Libraries->Java Build Path里修改JRE版本,但有时还会出现编译问题,原因是没有选择编译的JDK版本,项目右键->Build Path->Configure Build Path->Java Compiler里修改Compiler compliance level。对于VS,高版本代码打开低版本代码,会自动升级,或者手工选择在.NET哪个版本下编译,会比较方便。

  13、MyEclipse双击代码编辑框里文件的Tab栏,就可以切换全屏显示代码编辑块和多框显示,这点比VS更方便一点,Package Explorer框的旁边有个Link Vith Editor按钮,可以快速定位文件在包里的位置,这个也比较方便,但是VS里一个文件右键后可以直接选择打开对应的物理文件目录,在MyEclipse里没有这个功能。

  语言的不同点:

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

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

  2、JAVA的一个文件只能有一个公共类,而C#可以多个公共类在一个文件里。

21/212>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号