原创 1.走進java(本次閱讀基於jdk1.7)

本次閱讀基於jdk1.71.1.java虛擬機類別和發展史:Sun Classic / Exact VM:世界上第一款商用Java虛擬機,Sun公司發佈JDK 1.0,Java語言首次擁有了商用的正式運行環境,這個JDK中所帶的虛擬機就是C

原创 @Controller和@RestController區別

@RestController實現方式:@Target(ElementType.TYPE)@Retention(RetentionPolicy.RUNTIME)@Documented@Controller@ResponseBodypubli

原创 5.虛擬機性能監控與故障處理工具

sun jdk監控和故障工具(這些命令在jdk的bin下)名稱主要作用jps顯示指定系統內所有的hotspot進程jstat用於收集hotspot虛擬機各方面的運行數據jinfo顯示虛擬機的配置信息jmap生成虛擬機的內存轉儲快照jhat用

原创 java面試常問問題及部分答案(2018)

一:java基礎1.簡述string對象,StringBuffer、StringBuilder區分string是final的,內部用一個final類型的char數組存儲數據,它的拼接效率比較低,實際上是通過建立一個StringBuffer,

原创 3.垃圾回收器

3.1.引用計數法給對象中添加一個引用計數器,每當有一個地方引用它時,計數器值就加1;當引用失效時,計數器值就減1;任何時刻計數器爲0的對象就是不可能再被使用的。但是,至少主流的Java虛擬機裏面沒有選用引用計數算法來管理內存,其中最主要的

原创 6.虛擬機類加載機制

1.什麼是類加載把描述類的數據從class(這裏的class不僅僅只class文件,任何方式都可以,比如說jar包,反射等)文件加載到內存,並對數據進行校驗,轉換解析和初始換,最終形成可以被虛擬機直接說使用的java類型。2.java虛擬機

原创 2.java內存區域與內存溢出異常

2.1:概述對於從事C、C++程序開發的開發人員來說,對象的新建內存區域和銷燬內存區域(new和delete)都是由程序員手動調用的。java的內存管理是由虛擬機自動執行的。一旦出現內存泄漏和溢出方面的問題,如果不瞭解虛擬機是怎樣使用內存的

原创 附件3:eclipse memory analyze使用教程

http://jingyan.baidu.com/article/ce09321b620a3d2bff858ff5.html簡單使用:分析三步曲:通常我們都會採用下面的“三步曲”來分析內存泄露問題:首先,對問題發生時刻的系統內存狀態獲取一個

原创 4.內存分配

4.1.對象優先在Eden分配大多數情況下,對象在新生代Eden區中分配。當Eden區沒有足夠空間進行分配時,虛擬機將發起一次Minor GC。新生代GC(Minor GC):指發生在新生代的垃圾收集動作,因爲Java對象大多都具備朝生夕滅

原创 附件2:內存泄漏memory leak和內存溢出out of memory

http://www.cnblogs.com/fryy/archive/2013/11/27/3445281.html內存泄漏指你用malloc或new申請了一塊內存,但是沒有通過free或delete將內存釋放,導致這塊內存一直處於佔用狀