C#转java
懂C#的話,轉(zhuǎn)Java也不是那么難,畢竟,語(yǔ)言語(yǔ)法還是相似的.嘗試了下Java,說(shuō)說(shuō)自己的體會(huì)吧.
?
一,Java和C#都是完全面向?qū)ο蟮恼Z(yǔ)言。在面向?qū)ο缶幊痰娜笤瓌t方面,這兩種語(yǔ)言接近得不能再接近。不過(guò)也有一些差別,不過(guò)不多,稍微習(xí)慣下就好了,
比如:
集合:兩種語(yǔ)言都有集合ArrayList,還有通過(guò)鍵訪問(wèn)值的Java中是HashMap而c#中是HashTable。c#比Java多泛型集合List<T>與Dictionary<K,V>更容易了,無(wú)需拆箱裝箱了,更安全了。
繼承:Java中用關(guān)鍵字extends,c#只用“:”就行了。調(diào)用父類的構(gòu)造方法Java用super關(guān)鍵字,而c#用base關(guān)鍵字。
屬性:java中定義和訪問(wèn)均要用get和set方法,可以不成對(duì)出現(xiàn)。c#中是真正的屬性,訪問(wèn)時(shí)用.號(hào)即可。
事件。Java中沒(méi)有(Java通過(guò)實(shí)現(xiàn)自定義偵聽(tīng)器類執(zhí)行事件)。C#定義了類似于函數(shù)指針的委托來(lái)實(shí)現(xiàn)事件。
等等...
二,Java Web和ASP.NET也是有相似的,java web的核心是Servlet,Jsp其實(shí)本質(zhì)都是Servlet,而Servlet的流程可以比較清晰看到整個(gè)前后臺(tái)是怎么工作的,類似.NET的ashx一般處理程序,Java是MVC的主要倡導(dǎo)者,隨著web技術(shù)發(fā)展,Servlet主要被當(dāng)作Control使用,Jsp作為View使用,這在許多MCV框架有所體現(xiàn).得益于開(kāi)源社區(qū)的活躍,流行的Java MVC框架都比較成熟了.而ASP.NET MVC(雖然我沒(méi)有用過(guò),大概了解過(guò))感覺(jué)使用起來(lái)應(yīng)該不是很舒服把.貌似ASP.NET MVC也還沒(méi)有推廣開(kāi)來(lái).很多.NET程序員做Web還是停留在服務(wù)端控件.不是Webform不好,而是微軟會(huì)把我們寵壞.感覺(jué)Webform不夠優(yōu)雅,耦合太高,個(gè)人接觸過(guò)Java Web后覺(jué)得MVC在大多場(chǎng)景下更勝一籌.
目前接觸過(guò)的MVC框架是Struts2,常用在展示層,前臺(tái)頁(yè)面展示與控制頁(yè)面跳轉(zhuǎn)。建立一個(gè)工程,都會(huì)有一個(gè)web.xml文件,是整個(gè)工程的主配置文件。其它框架的集成首先是在這個(gè)配置文件里面進(jìn)行的。Struts也有一個(gè)主配置文件struts.xml,工程中所有配置的Action都是在這個(gè)配置文件中配置的。Action是Struts的核心,其實(shí)就是控制頁(yè)面跳轉(zhuǎn)用的,每個(gè)頁(yè)面和后臺(tái)的數(shù)據(jù)交互或者跳轉(zhuǎn)到另外的頁(yè)面都通過(guò)action進(jìn)行。 具體使用看看相關(guān)的文檔.
三,Java的框架五花八門(mén),有名的全功能棧Spring框架,MVC框架Struts2,SpringMVC(Spring的子項(xiàng)),數(shù)據(jù)持久層框架 MyBatis,Hibernate,模板引擎FreeMarker,Velocity,框架有框架的好處也有壞處,使用框架無(wú)非就是提高生產(chǎn)力,降低測(cè)試維護(hù)成本,保證系統(tǒng)性能.但是不適合的使用框架只會(huì)加重系統(tǒng)復(fù)雜度,降低系統(tǒng)性能,增加維護(hù)難度.什么時(shí)候使用框架什么時(shí)候不用,要詳細(xì)斟酌在做取舍.目前只接觸過(guò)Struts2,因?yàn)樽龅囊恍┬№?xiàng)目直接Servlet+Jsp+Jdbc就好了,打好基礎(chǔ)還是比較重要的,以后在項(xiàng)目慢慢接觸使用吧.
?
總的來(lái)說(shuō)吧,微軟的生態(tài)環(huán)境的不給力留給.NET的面越來(lái)越窄,Java生態(tài)圈的局面是前途一片光明,選擇開(kāi)源的Java是有原因的,豐富的資料,各種解決方案可選擇.曾今遇到一個(gè)要實(shí)現(xiàn)瀏覽器post svg到后臺(tái)轉(zhuǎn)png圖片的功能,好不容易在git上找到一個(gè)開(kāi)源的庫(kù),一用bug很多,而java?Apache下的batik卻是相當(dāng)完善.最后是通過(guò)后臺(tái)cmd調(diào)用batik來(lái)實(shí)現(xiàn),怎一個(gè)悲劇.曾今也在windows phone上抱有興趣,做了幾個(gè)demo app發(fā)現(xiàn)封閉的wp的api還是太少,招聘wp開(kāi)發(fā)的少之又少.當(dāng)然C#依然是最優(yōu)美的語(yǔ)言,Visual Studio依然是最完美的IDE.?.NET程序員們?cè)摱嘟佑|下其他語(yǔ)言開(kāi)發(fā)平臺(tái),至少當(dāng)作開(kāi)拓下視野吧.
轉(zhuǎn)載于:https://www.cnblogs.com/lixiaochong/p/10319872.html
總結(jié)
- 上一篇: 微信个性签名符号鱼
- 下一篇: 求丹麦女孩百度网盘资源