JAVA和.NET开发过程中的区别
众所周知,java与.net是不同的,那么两者到底有什么区别呢?下面跟yjbys小编一起来看看吧!
Jave技术应用特点:Java开发者使用最多的JDK版本是JDK1.6和JDK1.7;使用最多的服务器是Tomcat,最常用的开发工具是Eclipse;
.NET技术应用特点:.NET开发者对.NET平台最满意是其语言和框架设施部分,开发人员最关注的技术分别是ASP.NETMVC、ASP.NETWebPages、WindowsAzure相关的云计算技术。
说话的分歧点:
Java说话和C#说话很是相似,虽然内部会有良多区别,供给的API也纷歧样,但开发一个具体功能点的思绪常用的都差不多,因为对斗劲新的手艺和特征开发过程中接触不多,我所碰着的分歧点搜罗:
1、Java包的名字是和物理文件位置一一对应的, C#琅缦泓名空间可以随便写,而且编译出来的轨范集也可以随便更改,可以不和命名空间连结一致,轨范集和JAVA里零丁打出来的jar包是差不多的意思。
2、JAVA的一个文件只能有一个公共类,而C#可以多个公共类在一个文件里。
3、如不美观找到一个JAR包,Java查看新jar包的体例字段描述,需要有零丁的对应jar包的doc文档,才能看到接口挪用参数声名,否则看起来不直不美观,可是如不美观有源码打出来的jar包,调试的时辰可以便利的看到该包的源代码NET里只要有了dll文件,就能便利的看到体例元数据挪用参数,可是看接事数具体声名,仍是需要对应dll的xml文档。
4、对于WEB开发,JAVA里Filter,Servlet,Listener是很常用的,Java里的Filter可以用。NET里的module来实现一些功能,但Filter可以拟定浸染请求规模,module是全局节制的;Servlet相当于一个具体的handler,可以对拟定请求进行措置,Listerner可以用。NET里的Application_Start里来完成一些功能,可是JAVA里集成了部门默认Listerner,它在WEB应用启动的时辰就瞥绶执行。它们的具体执行流程为:WEB启动时,Listener的ContextInitialized体例->所有Filter的Init(不管filter-mapping的值)->所有设置装备摆设了load-on-startup大于等于0的Servlet的init体例(不管servlet-mapping的值),具体请求为:具体Servlet的init(只执行一次)->Filter doFilter(请求设置装备摆设的filter-mapping的value)->Servlet service; 最后网站释放的执行挨次为:Filter destroy-》Listener contextDestroyed.
5、Java里的Final关头字,当给一个字段时,暗示该字段不能改削,机关函数里都不能改削,这个和C#的const有点像,可是const默认是static的。和C#的readonly也斗劲像,可是readonly可以在机关函数里改削。当它作为一个体例的润色符时,它类试c#的’sealed类,不能重写它。
6、Java琅缦慊有静态机关函数,如不美观要实现一些初始化工作,需要用静态代码块,static{…},琅缦沔输入内容即可,C#只有静态机关函数的说法。
7、JAVA中有常量池概念,是和堆、栈纷歧样的区域,虽然和C#一样String都有字符串驻留机制,可是和。NET的又纷歧样了。是以java里字符串斗劲最好用equals斗劲,否则可能出问题。好比”a”+”b”字符串在常量池里,如不美观它们和”ab”斗劲将相等,可是”a”+b,b是一个变量,就将放到堆里了,如不美观还用==”ab”判定将返回false,所以JAVA里尽量用equals来判定字符串,可是。NET里不涉及这个问题,经由计较的字符串,==的结不美观也灰忄等。
8、Java琅缦憧个文件只要有Main体例进口,它都可以运行,而。NET里需要项目类型改削为节制台应用轨范,然后有一个Main体例才能作为一个运行的载体。
9、Byte类型的数字规模纷歧样,Java里是-128到127,.NET是0-255,一般需要互订交流数据和措置都是转换成16进制,然后取8bit的后2个bit,这样它们的值都是一样的,便利同步加密解密或相关措置
10、Java里举荐用get,set体例来对内部变量赋值和获取值,.NET里可以用字段get,set获取,而且vs2008后可以直接get;set;的体例,借助语法糖,编译器后会自动生成等价的get,set内部字段。
11、JAVA里文件保留后默认自动编译,可是这个也得益于它把每个java文件编译成一个class文件,.NET里需要零丁每次执行编译项目,因为它一个项目一个dll文件,如不美观保留其一一个。cs文件都执行编译,则工作量太大影响开发速度。
12、Java里List是一个接口,这个对在C#里用惯了List集结的,new List已经会报错了,而且它们的泛型也纷歧样,C#是CLR层的泛型撑持,JAVA的泛型不是经由JVM撑持的,是以机能相对没有晋升。
13、JAVA里默认润色符是包内可见(对应统一个文件夹目录,而不是项目大jar包下)的, protected的变量?捉式都是包内和子类可见的,.NET里是只有自己和子类可见NET里类的默认润色符是Internal,轨范集内可访谒。体例和字段默认为private的,和JAVA默认包内可见纷歧样。
插件的分歧点:
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的名目要求更严酷。
【JAVA和.NET开发过程中的区别】相关文章: