JavaJVM怎么學習啊?從哪方面入手?
簡單點學就看看博客。
想往深了學就看書。
以下是推薦的書:
(1)《深入理解Java虛擬機——JVM高級特性與最佳實踐》
基于最新JDK1.7,圍繞內存管理、執行子系統、程序編譯與優化、高效并發等核心主題對JVM進行全面而深入的分析,深刻揭示JVM的工作原理。以實踐為導向,通過大量與實際生產環境相結合的案例展示了解決各種常見JVM問題的技巧和實踐
(2)《揭秘Java虛擬機:JVM設計原理與實現》
從源碼角度解讀HotSpot的內部實現機制,主要包含三大部分——JVM數據結構設計與實現、執行引擎機制及內存分配模型。數據結構部分包括Java字節碼文件格式、常量池解析、字段解析、方法解析。每一部分都給出詳細的源碼實現分析,例如字段解析一章,從源碼層面詳細分析了Java字段重排、字段繼承等關鍵機制
Java核心技術系列:Java虛擬機規范(JavaSE8版)
本書由該技術的創立人所寫,是權威的Java虛擬機參考資料。書中完備、準確而又詳盡地描述了Java虛擬機。它完整地講述了由JavaSE8所引入的新特性,例如對包含默認實現代碼的接口方法所做的調用,以及為支持類型注解及方法參數注解而對class文件格式所做的擴展。此書也闡明了class文件中各屬性的含義,以及字節碼驗證的規則
(3)《實戰Java虛擬機:JVM故障診斷與性能優化》
《實戰Java虛擬機——JVM故障診斷與性能優化》內容簡介:隨著越來越多的第三方語言(Groovy、Scala、JRuby等)在Java虛擬機上運行,Java也儼然成為一個充滿活力的生態圈。本書將通過200余示例詳細介紹Java虛擬機中的各種參數配置、故障排查、性能監控以及性能優化
(4)《HotSpot實戰》
《HotSpot實戰》深入淺出地講解了HotSpot虛擬機的工作原理,將隱藏在它內部的本質內容逐一呈現在讀者面前,包括OpenJDK與HotSpot項目、編譯和調試HotSpot的方法、HotSpot內核結構、Launcher、OOP-Klass對象表示系統、鏈接、運行時數據區、方法區、常量池和常量池Cache、PerfData、Crash分析方法、轉儲分析方法、垃圾收集器的設計演進、CMS和G1收集器、棧、JVM對硬件寄存器的利用、棧頂緩存技術、解釋器、字節碼表、轉發表、Stubs、CodeCache、Code生成器、JIT編譯器、C1編譯器、編譯原理、JVM指令集實現、函數的分發機制、VTABLE和ITABLE、異常表、虛擬機監控工具(如jinfo、jstack、jhat、jmap等)的實現原理和開發方法、Attach機制、基于GUI的JVM分析工具(如MAT、VisualVM)等內容
(5)《自己動手寫Java虛擬機》
此書全書共分11章,從代碼和實戰的角度對class文件格式、運行時數據區域、指令集和解釋器、類和對象內部結構、方法調用和返回、異常處理等Java虛擬機核心概念進行了詳細討論。本書循序漸進,每一章都有可以獨立編譯和運行的代碼。通過實踐的,相信讀者可以更深刻地領悟Java虛擬機的工作原理
java好學嗎?該怎么學?
筆者作為一個在一線互聯網公司從事多年Java服務端的開發人員,也是從零基礎一路學習過來的,根據自己的認知對您提的問題進行簡單解答:
Java到底好不好學答案是:不難學。很多人都以為編程是個很高深的東西,其實不然,真正學習了你會發現編程比你高中學的數理化要簡單的多。說它不難呢,如果學深入了,還算有很多東西要學習,比如你學Java,后面可能要了解計算機組成原理、操作系統等底層知識,當然這些知識只要用心去了解,還是我們一般人都可以理解的。
Java學習途徑說到一門知識或技能好不好用,學習途徑是很重要的,如果沒有學習途徑,有的時候一個很簡單的知識都要花很久搞明白。我們是踩在巨人的肩上的,老一輩人給我留下了很多寶貴知識以及經驗,所以我們的學習途徑非常多。
Java相關書籍:最傳統的學習途徑,優點就是知識點很全面,缺點就是有些知識點不單靠看書不好理解。推薦書籍:Java編程思想。Java相關視頻教程:大部分程序員自學的途徑,優點就是有老師帶著學習,容易理解一些難理解的知識,但是大部分教程內容不全面,全面的需要付費。推薦視頻:java入門高淇Java300集視頻。Java官方文檔:這一般是技術大佬選擇的學習途徑,優點就是很權威,缺點是英文文檔居多,相對來說枯燥。很少人想讀書一樣去讀,大部分作為像字典一樣去查閱。Java相關技術文章:很多開發人員都有寫技術博客的習慣,一是做學習或經驗總結,二也是最重要的,就是展示個人實力(哈哈)。這種學習就需要自己去辨別技術文章的質量了,有的文章的確很棒,但是有的文章會誤導人。推薦技術博客網站:CSDN、博客園。其實還有很多學習途徑,就不一一列舉了。這么多的學習途徑,就算再難的知識也會變得并不是很困難,再說Java本來就算一門中等難度的高級編程語言,就更提不上有多難了。
最后說這么多,都是在解釋Java并沒有這么難。如果您還是不相信,可以思考下為什么會誕生出這么多Java培訓機構,而且培訓的人好多都是高中、大專的同學,而且他們也會有比較不錯的工作。很明顯,學習Java的難度不大,起點也不高,只要你肯學,一定比高中學的數理化簡單。
筆者是一位熱愛互聯網、熱愛互聯網技術、熱于分享的年輕人,如果您跟我一樣,我愿意成為您的朋友,分享每一個有價值的知識給您。喜歡作者的同學,點贊轉發關注哦!