原创 JVM(八)對象是怎麼來的?

簡介:Java程序員不可不知的對象創建底層步驟細節 對象創建的底層順序,如下圖所示: 1.對象創建的流程步驟包括哪些 (1)虛擬機遇到一條new指令時,首先檢查這個對應的類能否在常量池定位到一個類的符號引用 (2)判斷這個類是否

原创 JVM(六)內存區域方法區

是什麼? 1.是各個線程共享的內存區域,它用於存儲已被虛擬機加載的類信息、常量、靜態變量、即時編譯器編譯後的代碼等數據 2.什麼是類信息:類版本號、方法、接口 爲什麼? 1.內存中存放類信息、靜態變量等數據,屬於線程共享的一塊區域

原创 JVM(四)本地方法棧

是什麼? 用於作用於本地方法執行的一塊Java內存區域 什麼是本地方法 爲什麼? 與Java虛擬機棧相同,每個方法在執行的同時都會創建一個棧幀(Stack Frame)用於存儲局部變量表、操作數棧、動態鏈接、方法出口等信息。每一個

原创 JVM(九)JAVA對象內存佈局

1.對象頭用於存儲對象 的元數據信息: Mark Word部分數據的長度在32位和64位機器(未開啓壓縮指針)中分別爲32bit和64bit,存儲對象自身的運行時數據如哈希值等。Mark Word一般被設計爲非固定的數據結構,

原创 JVM(三)JAVA虛擬機棧

是什麼? 用於作用於方法執行的一塊Java內存區域 爲什麼? 每個方法在執行的同時都會創建一個棧幀(Stack Framel)用於存儲局部變量表、操作數棧、動態鏈接、方法出口等信息。每一個方法從調用直至執行完成的過程,就對應着一個

原创 IDEA運行項目Information:java: javacTask: 源發行版 8 需要目標發行版 1.8

錯誤詳情 Information:java: javacTask: 源發行版 8 需要目標發行版 1.8 Information:java: Errors occurred while compiling module 'memb

原创 JVM(七)運行時常量池

是什麼? 運行時常量池是方法區的一部分,Class文件除了有類的版本、字段、方法、接口等描述信息外,還有一項信息是常量池,用於存放編譯器生成的各種字面量和符號引用,這部分內容將在類加載後進入方法區的運行時常量池中存放。 運行時常量

原创 JVM(十一)對象訪問定位方式

當我們在堆上創建一個對象實例後,就要通過虛擬機棧中的reference類型數據來操作堆上的對象。現在主流的訪問方式有兩種(Hotspot虛擬機採用的是第二種) 1.使用句柄訪問對象。即reference中存儲的是對象句柄的地址,

原创 JVM(五)Java堆

是什麼? 是Java內存區域中一塊用來存放對象實例的區域,【幾乎所有的對象實例都在這裏分配內存】 爲什麼? 此內存區域的唯一目的就是存放對象實例 Java堆(Java Heap)是Java虛擬機所管理的內存中最大的一塊,Java堆

原创 Win10左下角windows菜單不可用

解決方法: 別折騰了,重裝系統吧。

原创 JVM(十二)垃圾回收-引用計數法

1.戰略意義 能做出一個需求的同時也要懂得其對應的戰略意義 2.爲什麼要垃圾回收 Java語言中一個顯著的特點就是引入垃圾回收機制,使C++程序員 最頭疼的內存管理的問題迎刃而解。由於有垃圾回收機制,Java中的對象不再有“

原创 自定義註解 本地緩存 防止重複提交

1.引入依賴guava <dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> <version>21.0</versi

原创 JVM(十二)垃圾回收-引用計數法-缺點

缺點 當存在循環引用時,引用計數器法失效,如下面代碼所示: public class CircleReference { public Object instance = null; public static void ma

原创 智能交通管理領域常用技術標準

平臺 《公安交通集成指揮平臺通用技術條件》(GA/T 1146—2019)  http://www.its114.com/html/itswiki/basic_file/2019_12_107087.html 《公安交通指揮系統工程建設通

原创 查看Java進程

Linux 方法一: ps -ef|grep java 方法二 jps -l (顯示Java進程的Id和軟件名稱) jps -lmv(顯示Java的進程Id和軟件名稱;顯示啓動main輸入參數;虛擬機參數) Windows j