首頁>Club>
4
回覆列表
  • 1 # 大渝IT

    JVM 是java的虛擬機器 是實現java 位元組碼到機器語言的一個轉換。

    學習jvm其實就是要學習 java。

    這些年給予jvm衍生了一些其他語言,比如 大資料 spark的推薦語言 Scala。

    並行程式設計,有大概兩種理解:

    1. 軟體語言級別的多執行緒,Golang的協程等,Golang可以支援 多核CPU的並行程式設計。

    2. 硬體級別,比如電子通訊領域的 FPGA 可程式設計邏輯陣列。也是半導體行業晶片製作前的驗證步驟。

    先選行業,再選技術。

  • 2 # 程式設計師欣宸

    我是從自己的工作經歷來回答的,首先要對jvm有基本的瞭解,才能更好的會使用jstat,jmap,jstsck來解決實際問題,接下來由於工作的需要,僅僅瞭解多執行緒和執行緒池是不夠的,這時候就開始學習Java併發程式設計,並在工作中常用到這些知識,後面隨著興趣開始學習jvm,隨著學習和工作的深入,這些知識的作用會慢慢展現出來,前提是不要把自己定位成一個實現業務需求的角色,要多深入學習和實踐,或者多看些優秀的開源作品。

  • 3 # kid7157887

    個人感覺沒有啥先後順序,不過先學jvm你能讀明白位元組碼,一些多執行緒的例子反編譯過來看位元組碼能明白一些事,比如監視器怎麼加的。或者你知道了jvm記憶體幾個區域,有的地方不涉及到共享問題,也不會執行緒不安全。多執行緒可以看看java高併發程式設計這本書。jvm可以看看深入java虛擬機器這本書。有條件的話,經常用生產上的機器解決一些問題,比如記憶體滿了用jmap和mat分析,這樣能加強你對jvm熟悉,同時也可以對生產環境進行jvm調優。如果出現應用卡死,可能有死鎖,大事物,死迴圈這樣的,你可以用jstack和jstat去分析執行緒棧,會學到一些多執行緒的知識。同時你可以用gceasy這個線上工具把你的堆疊上傳上去,有個視覺化的分析。另外阿里的arthas是個除錯神器,jprofiler可以視覺化很多東西。xxfox也是個線上學習jvm的好網站。

    如果你願意的話,當你想深入執行緒的話,可以看看posix執行緒規範pthread和linux核心的一些知識,能加強你對java執行緒的理解以及java記憶體分配的理解。

    除了書,推薦你極客時間的java併發程式設計實戰,深入拆解jvm虛擬機器。如果你還想對jvm再深入的話,可以看看openjdk原始碼,需要有c的底子,還有自己動手寫java虛擬機器這本書。

  • 中秋節和大豐收的關聯?
  • 歐緹麗除了葡萄大噴,還有哪些好貨值得買?