您當前位置: 唯學網 » IT認證培訓 » IT認證培訓教育新聞 »

Java都有什么進階技術?

Java都有什么進階技術?

唯學網 • 教育培訓

2016-10-24 16:59

IT認證

唯學網 • 中國教育電子商務平臺

加入收藏

私以為,一些人對JAVA進階的理解片面了,JAVA不過也是一門語言,提升和進階還是內功的體現。就像那位答主所說,進階的第一步就是編碼風格和規范。我深表同意。 只是會用,這還遠遠不夠~當然這也和題主的提問觀點是一致的。

那么我想說的是,有時候會用也是分層次的!就拿一般意義的編碼來說,思想上可以分四個層次:

第一層次是代碼的長相,也就是編碼的規范化,比如為什么不提倡用tab鍵縮進,而是用四個空格代替?類似的問題……

第二層次是代碼的封裝,也就是模塊化,也許有現成的框架,但是有人也就是真的是日復一日的重復,腦子里從來沒有這方面的意識,也從來沒有去主動看過那些框架的源代碼,就比如Spring框架的源碼,那里面可是各種設計模式和JAVA反射,注解啊等的綜合應用,非常有學習的必要,看看別人是怎么設計的架構……自己能不能也寫一個輪子~要知道造輪子不是目的,關鍵是過程中得到升華!而且很多大公司都是自己二次封裝或者重寫的框架,比如阿里……

第三層次是代碼的可重用性,所謂的設計模式,什么代碼復用,高內聚,低耦合那一套……知道JAVA的哪些api用了哪些設計模式么?思想很重要。

第四層次是代碼的可重入性,也就是涉及到并發環境。針對JAVA就是JAVA的多線程,比如JAVA常用的集合,有沒有了解過集合這些算法的內部源碼?一些線程安全的集合都是如何實現線程安全的?別的公司不知道,稍微大點的互聯網公司,多線程是必考的,也是常用的,比如網易,阿里,等等等等,因為這些公司我都面過或者有朋友在里面。他們的東西不是說簡單搭個框架,寫個網站的事情,后臺也不是僅僅就JAVA。

這四個層次都有,或者都一直在注意和學習,那么針對JAVA,還有,有沒有對JAVA虛擬機做過調優?JAVA的內存模型,類加載機制了解么?對JAVA虛擬機的垃圾回收算法有過研究么?JAVA會發生內存泄露么?舉例子什么情況會發生?如何避免?這些都是我曾經被面試問過的……

再針對框架進一步了解,對Spring框架或者ibatis框架的源碼研究過么?用過如今流行的restful么?如果讓你設計,你有什么想法?為什么要用框架?為什么用依賴注入……spring的事務機制的原理是什么?hibernate的緩存機制……還有osgi,太多了……

再進一步,對JAVA虛擬機的架構,JAVA字節碼文件格式,編譯原理,計算機操作系統,c++的掌握?讀一讀《深入理解計算機系統》?最后試著自己寫一個教學用的JAVA虛擬機。

再想進階,用了那么久的tomcat,讀過《深入剖析tomcat》么?tomcat的整體設計方案?一次請求tomcat的處理,servlet在tomcat中的加載,編譯過程?tomcat自定義的ClassLoader有什么作用? 知道用戶點擊鏈接到網頁出現內容的內部過程么?http協議了解多少? 這些都是我曾經被考過的……

繼續進階,有沒有用過JAVA的netty框架?對它研究研究?絕對是學習JAVA并發,nio,和網絡的好東西!有沒有github?對linux了解多少?會腳本語言么?

再進階,針對JAVA web離不開數據庫~那么對sql調優了解過么?是否能熟練的寫出存儲過程?游標?數據庫的索引是如何實現的?也就是b樹和hash……對NOSQL了解么?對常見數據庫引擎的差異性有了解么?知道他們內部原理么?數據庫的設計,范式……太多了,學無止境,關鍵還是基本功扎實!語言都是次要的。針對JAVA語言本身,把編程思想吃透足以,對語言剩下的就是查漏補缺。而思想基本功才是決定高度的,也不會和一些程序員網友那樣擔心35歲以后被淘汰!!!

不清楚你做了兩年,是在做什么。若是 WEB 的話, java 可以做, C# 可以做, js 可以,此外 python, ruby, go, 等都可以。有考慮過么?之間有什么不同?跳出了以語言定發民方向的思維之后,你會發現:全棧工程師 才是 IT人的正確方向。更客觀上說,作為一個職業,只是解決問題,創造價值。你若考慮如何創造更多價值。就知道應該學什么了。

技術層面,工程層面,科研層面。海量去了。都可以同 Java 扯上關系。但是,也可以同其它編程語言扯上關系。你提到的框架的話,如果是web開發框架,那么你就可以學習web方面的開發知識,比如安全性等。Java提供了網絡開發的工具,所以你也可以往網絡編程方面學習,學習下netty等。如果是說語法特性的話,就可以學習下函數式語言比如Scala,Clojure等了解不同的編程思想還有大數據方面的,Hadoop,Spark這些大數據處理工具也是不錯的學習方向數據庫類的,HBase、H2等Java寫的數據庫,也可以去了解下數據庫系統的實現!還有一些基礎性的,比如性能調優之類的,那么你可以能要了解JVM的原理構造,學習并發編程方法的知識。

以上內容是關于Java都有什么進階技術?的介紹,要想了解更多相關信息、教育培訓內容,請隨時關注唯學網,小編會第一時間為大家更新、跟進最新信息。

0% (0)
0% (10)
已有條評論