91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何學習JVM

發布時間:2022-01-14 10:51:31 來源:億速云 閱讀:119 作者:小新 欄目:大數據

這篇文章給大家分享的是有關如何學習JVM的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

 

一、什么是JVM?

JVM簡介: JVM是Java Virtual Machine的縮寫,中文翻譯為Java虛擬機,是一種用于計算設備的規范,它是一個虛構出來的計算機,是通過在實際的計算機上仿真模擬各種計算機功能來實現的。簡單來說JVM是用來解析和運行Java程序的。

Java有一個非常重要的特點“平臺的無關性”,就是使用JVM實現的。Java語言只需要生成Jvm上運行的目標代碼(字節碼),就可以在多種平臺上不加修改地運行,因為JVM本身屏蔽了與具體平臺相關的信息,使得Java能夠“一次編譯,到處運行”。

 

二、為什么要學習JVM?

學習JVM無外乎以下幾個原因:

1、 程序調優

不同的程序(業務場景)需要不同的Jvm配置,比如設置不同的垃圾收集器、設置新生代和老生帶的內存配置和占比等,不同的配置對于程序的運行有著千差萬別的影響。而Jvm默認的配置只能保證程序能夠“運行”,而想要“很好的運行”甚至是“更好的運行”,就是學習Jvm最主要的因素之一。

2、 排查程序運行問題

有些程序可能在線上使用的時候會遇到各種各樣的問題,而這些問題通常都是致命的,比如內存溢出,死鎖導致的程序運行緩慢等,而這些問題在開發和小量并發測試階段是很容易被忽略的缺陷,所以學習好了Jvm才能在關鍵的時候,臨危不亂幫你掃除系統中的“頑疾”。

3、 掌握了程序執行的根本和原理

也就是很多人說的:不但要“知其然”,還要“知其所以然”。

4、 規避寫代碼時候的一些錯誤

比如避免重載可變長參數的調用(后面文章會給出具體的案例)。

5、 應付面試

不得不說這也是很多人學習的目的之一,當然這也是積極的推動力,如果你明白“鯰魚效應”的話。

6、 掌握了其他語言的通用機制

JVM還有一個強大之處是,它不止可以運行Java程序,還可以運行Scala、Clojure、Groovy,以及時下熱門的 Kotlin,學習JVM便可以了解這些語言的通用機制,甚至于讓這些語言共享生態系統。

 

三、怎么有效的學習JVM?

JVM的知識點,分為如下幾個:

1、 JVM的組成

只有了解了JVM的組成部分,才能算的上真正的了解了JVM,JVM的組成5個部分:堆、虛擬機棧、本地方法棧、程序計數器、方法區,后面文章會分別介紹5個部分的具體用途。

2、 多種垃圾回收算法

Jvm中有很多垃圾回收算法,不同的算法優缺點也各不相同,比如:標記清除算法和復制算法、標記清楚算法會產生多種空間碎片、復制算法把內存分為兩塊,性能雖然很好但是每次只能使用一塊,又浪費了內存的空間,那有沒有相對完美的算法呢?答案肯定是有的,由于篇幅的原因,后面文章會詳細講解。

3、 多種垃圾收集器

Jvm的垃圾收集器有很多,比如最早版本的串行收集器Serial,發展歷史最悠久的收集器,它是采用復制算法的新生代收集器,它是一個單線程收集器,它在進行垃圾收集時,必須暫停其他所有的工作線程,直至Serial收集器收集結束為止(“Stop The World”)。還有CMS(Concurrent Mark Sweep)收集器是一種以獲取最短回收停頓時間為目標的收集器;還有比較前沿的G1(Garbage-First)收集器等。

學習這些收集器,一方面是為自己程序配置合適的收集器,另一方面是每個收集器的設置參數都不相同,學習了這些收集器的配置之后,可以為程序設置最優的運行匹配參數。

4、 JVM分析工具

Jvm的分析工具用于排查程序運行的缺陷,找出程序的問題所在,從而保證程序的穩定運行,Jvm分析器分為:命令行工具(官方稱之為實驗性質的工具,但穩定性是不容置疑的),還有視圖分析工具,前者當然優于后者,但后者是建立在前者的基礎上的,本系列后面會詳細的把每個工具進行深入的講解。

5、 Java類加載機制

Java類加載機制,講的是Java的類在Jvm中的加載以及運行機制,對于認識Java是怎么運行的有著非常大的幫助,這也是學習Java非常有趣的一點,你可以看到Java運行的整個過程,是完全透明化的,給人一種“掌控感”,這是Java語言天生支持的,所以會覺得Java這門語言很有趣。

6、JVM常用優化配置

學習Jvm收益最大的其實就是,使用Jvm的這些常用配置,讓你的程序運行的更高效,所以對于這方面的學習是必不可少的。

感謝各位的閱讀!關于“如何學習JVM”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

jvm
AI

海盐县| 万载县| 镇巴县| 阳新县| 开封县| 山西省| 云浮市| 广河县| 苏尼特右旗| 邯郸县| 桦川县| 江安县| 平谷区| 从江县| 乌兰县| 镇坪县| 滦平县| 招远市| 孝义市| 遵化市| 天峨县| 婺源县| 温州市| 长兴县| 巴林左旗| 巫溪县| 中宁县| 建阳市| 霞浦县| 江川县| 平果县| 德令哈市| 黔东| 樟树市| 定边县| 广昌县| 丹巴县| 石嘴山市| 寿光市| 简阳市| 通海县|