手撕JAVA(三十)與我相識一年半的那個JAVA

        我曾在自己的畢業論文中這樣介紹JAVA:

        “java是一門面向對象的編程語言,也是世界上目前應用最爲廣泛的編程語言。java是20世紀90年代sun公司工程師詹姆斯·高斯林所領導的一個名爲Green項目小組專門爲單片式計算機系統設計的一門嵌入式編程語言。由於當時C++語言已經得到大面積的成功使用,且該項目組中所有成員均有C++語言的基礎,所以java語言以C++的基本架構爲基礎,捨棄了其中多繼承、指針等實際應用效果並不好的地方。最終使java具有了簡單性、面向對象、分佈式健壯性安全性、平臺獨立與可移植性、多線程、動態性等特點。尤其是其內部的java虛擬機——JVM機制,所帶來的跨平臺性,讓java成爲當前兼容性最好的一種編程語言。傳統的編程語言,不能跨平臺,其實是因爲,不同平臺的底層機器指令的規則不同。而傳統的C++等語言,是由編譯器將編譯爲機器指令後執行,所以當前平臺下的代碼,只能在當前平臺運行。而java是由編譯器編譯爲後綴名.class,然後不同平臺版本的JVM裝載.class文件去運行。這一機制,使java可以像sun公司對java的描述一樣——“write once , run anywhere”。編寫一次,在任何地方運行。java對網絡編程有很好的支持,幾十年的發展歷史積累下一套完善的類庫,其中封裝的功能類,對網絡通信支持性非常良好。”

       這段話是我個人在粗淺涉獵J2EE,JAVA大數據,看完《JAVA核心技術卷》,對JAVA有一個大體認識後對JAVA這門語言以及他的生態體系做出的總結性概述。

      關於JAVA的優點,尤其是其中的垃圾回收、JVM在前文中都有詳細討論。這裏補充一下筆者對於JAVA面向對象,以及JAVA官方對於JAVA社區生態建設思路的認知。

      面向對象是軟件開發方法,筆者曾在畢業求職的簡歷中這樣描述過JAVA的面向對象:

      “JAVA之道面向對象,動成方法,靜爲屬性。”

      JAVA面向對象,其實就是將一類事物抽象成類,該類事物的動作抽象爲方法,靜態標籤抽象爲屬性。比如人類——People.class。靜態標籤有姓名、性別、身份證號碼等,所以屬性爲:

     String name;

     String sex;

     String IDCard;

    ......

    動作有——吃飯、睡覺等,所以方法爲:

    eat();

    sleep();

    ......

    至於JAVA官方對於整個社區生態建設的思路其實就是——官方制定標準,向社區開放,允許開發者按照標準來自行開發。除了“write once run anywhere。”sun公司還有一句關於JAVA的口號也很有名,就是——“Java語言靠羣體的力量而非公司的力量”。第一個口號說的是JVM,第二個口號說的就是java完善、龐大、包容兼併的生態環境。

    官方提供標準,而允許開發者去自行實現的例子在JAVA體系中比比皆是。尤其是傳說中的——JAVA十三大規範。更是將這個思想體現得淋漓盡致。之前說過的JDBC,servlet都屬於十三大規範。

    JAVA給出了DataSource接口,於是阿里開發出了DruidDataSource,JAVA給出了Servlet類,於是各家紛紛去封裝自己的Servlet,在此基礎上做二次開發。於是有了dispatchServlet,有了SpringMVC......等等等等。

   

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章