懂C#的話,轉(zhuǎn)Java也不是那么難,畢竟,語言語法還是相似的。嘗試了下Java,說說自己的體會吧。
1Java和C#都是完全面向?qū)ο蟮恼Z言
在面向?qū)ο缶幊痰娜笤瓌t方面,這兩種語言接近得不能再接近。不過也有一些差別,不過不多,稍微習(xí)慣下就好了,
比如:
集合:兩種語言都有集合ArrayList,還有通過鍵訪問值的Java中是HashMap而c#中是HashTable。c#比Java多泛型集合List與Dictionary更容易了,無需拆箱裝箱了,更安全了。
繼承:Java中用關(guān)鍵字extends,c#只用“:”就行了。調(diào)用父類的構(gòu)造方法Java用super關(guān)鍵字,而c#用base關(guān)鍵字。
屬性:java中定義和訪問均要用get和set方法,可以不成對出現(xiàn)。c#中是真正的屬性,定義時get和set必須同時出現(xiàn),房問時用。號即可。不用get,set。
事件。Java中沒有(Java通過實(shí)現(xiàn)自定義偵聽器類執(zhí)行事件)。C#定義了類似于函數(shù)指針的委托來實(shí)現(xiàn)事件。等等。。。
2Java Web和ASP.NET也是有相似的
java
web的核心是Servlet,Jsp其實(shí)本質(zhì)都是Servlet,而Servlet的流程可以比較清晰看到整個前后臺是怎么工作的,類似.NET的ashx一般處理程序,Java是MVC的主要倡導(dǎo)者,
隨著web技術(shù)發(fā)展,Servlet主要被當(dāng)作Control使用,Jsp作為View使用,這在許多MCV框架有所體現(xiàn)。得益于開源社區(qū)的活躍,流行的Java
MVC框架都比較成熟了。而ASP.NET MVC(雖然我沒有用過,大概了解過)感覺使用起來應(yīng)該不是很舒服把。貌似ASP.NET MVC也還沒有推廣開來。
很多.NET程序員做Web還是停留在服務(wù)端控件。不是Webform不好,而是微軟會把我們寵壞。感覺Webform不夠優(yōu)雅,耦合太高,個人接觸過Java
Web后覺得MVC在大多場景下更勝一籌。
目前接觸過的MVC框架是Struts2,常用在展示層,前臺頁面展示與控制頁面跳轉(zhuǎn)。建立一個工程,都會有一個web.xml文件,是整個工程的主配置文件。其它框架的集成首先是在這個配置文件里面進(jìn)行的。
Struts也有一個主配置文件struts.xml,工程中所有配置的Action都是在這個配置文件中配置的。Action是Struts的核心,其實(shí)就是控制頁面跳轉(zhuǎn)用的,每個頁面和后臺的數(shù)據(jù)交互或者跳轉(zhuǎn)到另外的頁面都通過action進(jìn)行。
3Java的框架五花八門
Java的框架五花八門,有名的全功能棧Spring框架,MVC框架Struts2,SpringMVC(Spring的子項(xiàng)),數(shù)據(jù)持久層框架
MyBatis,Hibernate,模板引擎FreeMarker,Velocity。
框架有框架的好處也有壞處,使用框架無非就是提高生產(chǎn)力,降低測試維護(hù)成本,保證系統(tǒng)性能。但是不適合的使用框架只會加重系統(tǒng)復(fù)雜度,降低系統(tǒng)性能,增加維護(hù)難度。什么時候使用框架什么時候不用,要詳細(xì)斟酌在做取舍。
目前只接觸過Struts2,因?yàn)樽龅囊恍┬№?xiàng)目直接Servlet+Jsp+Jdbc就好了,打好基礎(chǔ)還是比較重要的,以后在項(xiàng)目慢慢接觸使用吧。
總的來說吧,微軟的生態(tài)環(huán)境的不給力,留給.NET的面越來越窄,Java生態(tài)圈的局面前途一片光明,選擇開源的Java是有原因的,豐富的資料,各種解決方案都可選擇。