Java和.NET有什么不同?我也是一名在北大青鳥通州校區(qū)學(xué)習(xí)的學(xué)員,由于還在學(xué)習(xí)的過程中,對(duì)于軟件開發(fā)的相關(guān)經(jīng)驗(yàn)知識(shí)還有限,所以本篇內(nèi)容只能從我所接觸的過的功能以及比較表面的知識(shí)點(diǎn)來說明Java和.NET的不同點(diǎn)。
語言的不同點(diǎn):
Java語言和C#語言非常相似,雖然內(nèi)部會(huì)有很多區(qū)別,提供的API也不一樣,但開發(fā)一個(gè)具體功能點(diǎn)的思路常用的都差不多,由于對(duì)比較新的技術(shù)和特性開發(fā)過程中接觸不多,我所遇到的不同點(diǎn)包括:
1、JAVA里默認(rèn)修飾符是包內(nèi)可見(對(duì)應(yīng)同一個(gè)文件夾目錄,而不是項(xiàng)目大jar包下)的,protected的變量和方法都是包內(nèi)和子類可見的,.NET里是只有自己和子類可見NET里類的默認(rèn)修飾符是Internal,程序集內(nèi)可訪問。方法和字段默認(rèn)為private的,和JAVA默認(rèn)包內(nèi)可見不一樣。
2、如果找到一個(gè)JAR包,Java查看新jar包的方法字段描述,需要有單獨(dú)的對(duì)應(yīng)jar包的doc文檔,才能看到接口調(diào)用參數(shù)說明,否則看起來不直觀,但是如果有源碼打出來的jar包,調(diào)試的時(shí)候可以方便的看到該包的源代碼NET里只要有了dll文件,就能方便的看到方法元數(shù)據(jù)調(diào)用參數(shù),但是看到參數(shù)詳細(xì)說明,還是需要對(duì)應(yīng)dll的xml文檔。
3、Byte類型的數(shù)字范圍不一樣,Java里是-128到127,.NET是0-255,一般需要互相交換數(shù)據(jù)和處理都是轉(zhuǎn)換成16進(jìn)制,然后取8bit的后2個(gè)bit,這樣它們的值都是一樣的,方便同步加密解密或相關(guān)處理
4、JAVA里文件保存后默認(rèn)自動(dòng)編譯,但是這個(gè)也得益于它把每個(gè)java文件編譯成一個(gè)class文件,.NET里需要單獨(dú)每次執(zhí)行編譯項(xiàng)目,因?yàn)樗粋(gè)項(xiàng)目一個(gè)dll文件,如果保存其中一個(gè)。cs文件都執(zhí)行編譯,則工作量太大影響開發(fā)速度。
5、Java里的Final關(guān)鍵字,當(dāng)給一個(gè)字段時(shí),表示該字段不能修改,構(gòu)造函數(shù)里都不能修改,這個(gè)和C#的const有點(diǎn)像,但是const默認(rèn)是static的。和C#的readonly也比較像,但是readonly可以在構(gòu)造函數(shù)里修改。當(dāng)它作為一個(gè)方法的修飾符時(shí),它類試c#的sealed類,不能重寫它。
6、Java包的名字是和物理文件位置一一對(duì)應(yīng)的,C#里命名空間可以隨便寫,并且編譯出來的程序集也可以隨便更改,可以不和命名空間保持一致,程序集和JAVA里單獨(dú)打出來的jar包是差不多的意思。
7、Java里推薦用get,set方法來對(duì)內(nèi)部變量賦值和獲取值,.NET里可以用字段get,set獲取,并且vs2008后可以直接get;set;的方式,借助語法糖,編譯器后會(huì)自動(dòng)生成等價(jià)的get,set內(nèi)部字段。
插件的不同點(diǎn):
1、MyEclipse自身就是一個(gè)插件,里面集成了大量開源框架,而VS是微軟一個(gè)大一統(tǒng)的IDE,要用其他開源插件,需要單獨(dú)下載和單獨(dú)配置。
2、Java里實(shí)現(xiàn)webservice的方法很多,除了javax.jws包里只有的JAX-WS,java webservice規(guī)范自帶版本,還有axis,xfire的webservice開源實(shí)現(xiàn),axis包括axis1,axis2,xfire已更名為cxf了,但是各種實(shí)現(xiàn)方法各異,在和。NET發(fā)布的webservice互相調(diào)用時(shí),經(jīng)常遇到一些問題,總體來說Java對(duì)wsdl的格式要求更嚴(yán)格。
上面都是自己在北大青鳥通州校區(qū)學(xué)習(xí)的過程中總結(jié)出來的,涉及面有限,需要自己以后不斷完善相關(guān)技術(shù)點(diǎn),并且整理和理解的結(jié)果也可能不完全準(zhǔn)確,如有問題,還希望老師指正。