- 相關(guān)推薦
JAVA和.NET開發(fā)過程中的區(qū)別
眾所周知,java與.net是不同的,那么兩者到底有什么區(qū)別呢?下面跟yjbys小編一起來看看吧!
Jave技術(shù)應(yīng)用特點:Java開發(fā)者使用最多的JDK版本是JDK1.6和JDK1.7;使用最多的服務(wù)器是Tomcat,最常用的開發(fā)工具是Eclipse;
.NET技術(shù)應(yīng)用特點:.NET開發(fā)者對.NET平臺最滿意是其語言和框架設(shè)施部分,開發(fā)人員最關(guān)注的技術(shù)分別是ASP.NETMVC、ASP.NETWebPages、WindowsAzure相關(guān)的云計算技術(shù)。
說話的分歧點:
Java說話和C#說話很是相似,雖然內(nèi)部會有良多區(qū)別,供給的API也紛歧樣,但開發(fā)一個具體功能點的思緒常用的都差不多,因為對斗勁新的手藝和特征開發(fā)過程中接觸不多,我所碰著的分歧點搜羅:
1、Java包的名字是和物理文件位置一一對應(yīng)的, C#瑯縵泓名空間可以隨便寫,而且編譯出來的軌范集也可以隨便更改,可以不和命名空間連結(jié)一致,軌范集和JAVA里零丁打出來的jar包是差不多的意思。
2、JAVA的一個文件只能有一個公共類,而C#可以多個公共類在一個文件里。
3、如不美觀找到一個JAR包,Java查看新jar包的體例字段描述,需要有零丁的對應(yīng)jar包的doc文檔,才能看到接口挪用參數(shù)聲名,否則看起來不直不美觀,可是如不美觀有源碼打出來的jar包,調(diào)試的時辰可以便利的看到該包的源代碼NET里只要有了dll文件,就能便利的看到體例元數(shù)據(jù)挪用參數(shù),可是看接事數(shù)具體聲名,仍是需要對應(yīng)dll的xml文檔。
4、對于WEB開發(fā),JAVA里Filter,Servlet,Listener是很常用的,Java里的Filter可以用。NET里的module來實現(xiàn)一些功能,但Filter可以擬定浸染請求規(guī)模,module是全局節(jié)制的;Servlet相當(dāng)于一個具體的handler,可以對擬定請求進行措置,Listerner可以用。NET里的Application_Start里來完成一些功能,可是JAVA里集成了部門默認(rèn)Listerner,它在WEB應(yīng)用啟動的時辰就瞥綬執(zhí)行。它們的具體執(zhí)行流程為:WEB啟動時,Listener的ContextInitialized體例->所有Filter的Init(不管filter-mapping的值)->所有設(shè)置裝備擺設(shè)了load-on-startup大于等于0的Servlet的init體例(不管servlet-mapping的值),具體請求為:具體Servlet的init(只執(zhí)行一次)->Filter doFilter(請求設(shè)置裝備擺設(shè)的filter-mapping的value)->Servlet service; 最后網(wǎng)站釋放的執(zhí)行挨次為:Filter destroy-》Listener contextDestroyed.
5、Java里的Final關(guān)頭字,當(dāng)給一個字段時,暗示該字段不能改削,機關(guān)函數(shù)里都不能改削,這個和C#的const有點像,可是const默認(rèn)是static的。和C#的readonly也斗勁像,可是readonly可以在機關(guān)函數(shù)里改削。當(dāng)它作為一個體例的潤色符時,它類試c#的sealed類,不能重寫它。
6、Java瑯縵慊有靜態(tài)機關(guān)函數(shù),如不美觀要實現(xiàn)一些初始化工作,需要用靜態(tài)代碼塊,static{…},瑯縵沔輸入內(nèi)容即可,C#只有靜態(tài)機關(guān)函數(shù)的說法。
7、JAVA中有常量池概念,是和堆、棧紛歧樣的區(qū)域,雖然和C#一樣String都有字符串駐留機制,可是和。NET的又紛歧樣了。是以java里字符串斗勁最好用equals斗勁,否則可能出問題。好比"a"+"b"字符串在常量池里,如不美觀它們和"ab"斗勁將相等,可是"a"+b,b是一個變量,就將放到堆里了,如不美觀還用=="ab"判定將返回false,所以JAVA里盡量用equals來判定字符串,可是。NET里不涉及這個問題,經(jīng)由計較的字符串,==的結(jié)不美觀也灰忄等。
8、Java瑯縵憧個文件只要有Main體例進口,它都可以運行,而。NET里需要項目類型改削為節(jié)制臺應(yīng)用軌范,然后有一個Main體例才能作為一個運行的載體。
9、Byte類型的數(shù)字規(guī)模紛歧樣,Java里是-128到127,.NET是0-255,一般需要互訂交流數(shù)據(jù)和措置都是轉(zhuǎn)換成16進制,然后取8bit的后2個bit,這樣它們的值都是一樣的,便利同步加密解密或相關(guān)措置
10、Java里舉薦用get,set體例來對內(nèi)部變量賦值和獲取值,.NET里可以用字段get,set獲取,而且vs2008后可以直接get;set;的體例,借助語法糖,編譯器后會自動生成等價的get,set內(nèi)部字段。
11、JAVA里文件保留后默認(rèn)自動編譯,可是這個也得益于它把每個java文件編譯成一個class文件,.NET里需要零丁每次執(zhí)行編譯項目,因為它一個項目一個dll文件,如不美觀保留其一一個。cs文件都執(zhí)行編譯,則工作量太大影響開發(fā)速度。
12、Java里L(fēng)ist是一個接口,這個對在C#里用慣了List集結(jié)的,new List已經(jīng)會報錯了,而且它們的泛型也紛歧樣,C#是CLR層的泛型撐持,JAVA的泛型不是經(jīng)由JVM撐持的,是以機能相對沒有晉升。
13、JAVA里默認(rèn)潤色符是包內(nèi)可見(對應(yīng)統(tǒng)一個文件夾目錄,而不是項目大jar包下)的, protected的變量?捉式都是包內(nèi)和子類可見的,.NET里是只有自己和子類可見NET里類的默認(rèn)潤色符是Internal,軌范集內(nèi)可訪謁。體例和字段默認(rèn)為private的,和JAVA默認(rèn)包內(nèi)可見紛歧樣。
插件的分歧點:
1、MyEclipse自身就是一個插件,瑯縵沔集成了大量開源框架,而VS是微軟一個大一統(tǒng)的IDE,要用其他開源插件,需要零丁下載和零丁設(shè)置裝備擺設(shè)。
2、Java誠懇現(xiàn)webservice的體例良多,除了javax.jws包里只有的JAX-WS,java webservice規(guī)范自帶版本,還有axis,xfire的webservice開源實現(xiàn),axis搜羅axis1,axis2,xfire已更名為cxf了,可是各類實現(xiàn)體例各異,在和。NET發(fā)布的webservice互相挪用時,經(jīng)常碰著一些問題,總體來說Java對wsdl的名目要求更嚴(yán)酷。
【JAVA和.NET開發(fā)過程中的區(qū)別】相關(guān)文章:
Java Web開發(fā)和J2EE的區(qū)別08-29
PHP和Java的區(qū)別10-25
Java和PHP的區(qū)別06-02
asp和asp.net之間的區(qū)別09-06
Java與Java web的區(qū)別08-22
有關(guān)ADO與ADO.NET的區(qū)別與介紹10-25
ASP.NET架構(gòu)及開發(fā)技術(shù)詳解教程08-17
PHP和Java的功能10-09