用戶生成堆快照
java 運行類的入口是mian方法,主類在運行的時候加載其他的類,加載的時候,會優先加載父類.靜態方法優先於構造方法先執行. jar包或war包裏的類不是一次性全部加載的,是使用到時才加載。 package com.bonc.j
Java程序中對類的使用方式分爲兩類 :主動使用和被動使用 主動使用: 創建類的實例 訪問某個類或接口的靜態變量,或者對該靜態變量賦值 調用類的靜態方法 反射 初始化一個類的子類 java虛擬機啓動時被標明爲啓動類的類 從JDK
在上一篇博客中寫到雙親委派機制.傳送門 瞭解完雙親委派機制那麼對JVM類加載器原理有一定的瞭解,那麼書寫定義類加載加載器就不會太難了.主要是重寫ClassLoader中findClass方法 這個方法主要是根據包名查找class文
在上一篇博客中介紹了一下如何書寫自定義加載器.傳送門 這一篇要介紹的就是自定義類加載器來打破雙親委派機制. 思路就是加載類的時候不走parent屬性來找,直接從指定的classpath中找 package com.bonc.jvm
JVM整體流程如上圖所示.java類的加載是有加載器來進行的.JVM中有以下幾種類加載器: 1.引導類加載器BootstrapClassLoader :負責加載支撐JVM運行的位於JRE的lib目錄核心類庫,比如rt.jar,c
本文章爲《深入淺出 Java 虛擬機》系列課程學習筆記,侵刪。學習地址爲 深入淺出 Java 虛擬機 1 CMS 垃圾回收器存在的問題 以下場景很極端,但卻經常發生。 在發生 Minor GC 時,由於 Survivor 區已
本文章爲《深入淺出 Java 虛擬機》系列課程學習筆記,侵刪。學習地址爲 深入淺出 Java 虛擬機 1 引言 垃圾回收器一般使用默認參數,就可以比較好的運行。但如果用錯了某些參數,那麼後果可能會比較嚴重。 如果你的應用程序目
推薦閱讀:爲了阿里巴巴的P7offer,我籌備了半年,四面之後終於成功拿下 面試阿里(P8)竟被MySQL難倒,奮發圖強二次面試斬獲阿里offer 爲面阿里P8,我肝
Java後端,三年經驗,剛面完一波大廠,明顯感覺要求跟往年不同,尤其是在JVM方面。 往年面試,圍繞JVM的一般都以理論問題居多,譬如: 畫圖解釋一下,一個對象在JVM中是如何分配,如何流轉的? 什麼情況下JVM內存中的一個對象會被垃圾回
文章目錄問題場景問題環境問題原因排查過程查看tomcat的gc情況排查內存泄露問題HashMap死鎖CLOSE_WAIT過多情況總結參考鏈接參考圖JVM結構TCP的三次握手和四次揮手隨緣求贊 問題場景 線上,有時候會遇到一種這樣的
JVM 垃圾回收原理 對於JVM的垃圾收集(GC),這是一個作爲Java開發者必須瞭解的內容,那麼,我們需要去了解哪些內容呢,其實,GC主要是解決下面的三個問題: 哪些內存需要回收? 什麼時候回收? 如何回收?
Java版本 ( Java主要有三個版本) JavaSE:(簡稱J2SE)Java標準版,是所有Java的技術核心和基礎,也是學習Java語言的基礎,此版本主要用於開發桌面應用(C/S)程序。 JavaEE:(簡稱J2EE)Jav
直接上代碼 @Transactional public void methodA() { try { methodB(); } catch (Exception e) { e.printStackTrace();
死鎖 爲了防止死鎖,必須設置過期時間 例如:線程A拿到鎖,還沒有解鎖,程序突然掛掉,鎖一直存在,其他線程一直拿不到鎖。所以要設置過期時間 加鎖跟解鎖必須是同一個線程,保證原子性 例如:線程A拿到鎖,業務還沒有處理完成,鎖已經超時被
緩存熱數據 緩存讀寫順序:讀,先緩存,後數據庫;寫,先數據庫,後緩存 所有緩存數據都應該設置過期時間 緩存的過期時間應該避免集中過期,造成緩存擊穿 緩存key具備可讀性,應避免不同業務出現同名的key,簡單縮寫可節省內存空間 避免緩存