原创 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