忽來靈感,談談對java的理解

    編程語言,都有自己固定的語法,就我所瞭解java語言來說,java的優點我就不說了,網上多的是.但是java的有兩點是我想說的 ,那就是"簡單"和"功能強大".
    java代碼時開源的,爲我們開發人員提供了很多問題的解決方案(一些類和方法),那麼這些解決方案的底層是怎麼做到的呢?
相信初學者應該都學習過一些簡單的算法,例如最熟悉的排序,單單排序又有好多種寫法,比如冒泡排序,快速排序,二分法排序,選擇排序等等算法和數據結構是一門語言的靈魂,如果這些算法讓我自己實現的話,那麼會比較的複雜,因爲你需要考慮的東西就多了起來,相比於javaApi直接提供的一個sort方法來看,
自己重寫的話理,大多數人都能寫的出來,只是時間長短問題,耗費精力和時間, 這也就是java的簡單所體現的一個方面,你不需要去了解它是怎麼寫的,就只要知道有這個方法可以幹什麼就行了序
就可以了,直接拿着用,大大的節省了我們的時間成本,當然瞭如果對於業務中遇到的比較複雜的一些邏輯,還是需要用到自己去寫這些方法的
java是提供給民用和商用的,至於軍用的東西,是不可能使用編程語言的,(個人不是很瞭解,但是直覺告訴自己他們是使用匯編,c,或着比之更低級的語言寫的)
上面我說了java的簡單易上手,簡單則代表着它的強大,
個人覺得java最強大支出莫過於java本身爲用戶提供了一套反編譯的機制,比如說你寫了一個類,封裝了一些參數,不管是私有還是公有的參數,還有一些方法,你不僅可以通過實例化對象來調用該類,還可以通過類全名進行反射實例化,
舉個例子com.test.BB.java這個文件,你想在com.first.Aa.java中使用,除了將 BB的類全名通過import關鍵字導入到Aa類中,你也可已通過java的反射機制進行
實例化BB類,進而操作它,其實導包和使用反射在jvm底層是一樣的原理(個人理解,沒看過jvm源碼,請指教),所以簡單中又彰顯了java語言的強大,和高擴展性,我們可以根據自己的需求來做更多的事情,比如一些框架的實現,比較有名的像spring中的AOP就是基於動態代理,動態代理又基於反射.
我認爲這是java語言的一個強大之處

此文章爲個人理解,在工作開發空閒之餘來了靈感,就寫下了,如有錯誤請各位指正
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章