Java中的內(nèi)存分配圖解
Java的內(nèi)存分配
Java 程序運(yùn)行時,需要在內(nèi)存中分配空間。
為了提高運(yùn)算效率,就對空間進(jìn)行了不同區(qū)域的劃分,因為每一片區(qū)域都有特定的處理數(shù)據(jù)方式和內(nèi)存管理方式。
棧內(nèi)存
棧內(nèi)存:存儲局部變量,定義在方法里面的變量
例如arr使用完畢,立即消失特點(diǎn):棧內(nèi)存的數(shù)據(jù)用完就釋放。
堆內(nèi)存
堆內(nèi)存:存儲new出來的的內(nèi)容(實(shí)體,對象)數(shù)組在初始化時,會為存儲空間添加默認(rèn)值
- 整數(shù):0
- 浮點(diǎn)數(shù):0.0
- 布爾:false
- 字符:空字符
- 引用數(shù)據(jù):null
注意:每一個new出來的東西都有一個地址值,使用完畢,會在垃圾站回收器空間時被回收
創(chuàng)建數(shù)組內(nèi)存分析
當(dāng)定義一個數(shù)組時,會找到地址,如果沒有初始化(沒有為數(shù)組賦值),系統(tǒng)就會默認(rèn)給數(shù)組下標(biāo)添加默認(rèn)值
例如創(chuàng)建一個長度3的數(shù)組
int[] arr=new int[3]
在棧內(nèi)存中保存的是堆內(nèi)存空間的訪問地址,棧內(nèi)存會有個地址指向堆內(nèi)存的地址
創(chuàng)建對象內(nèi)存分析
定義一個學(xué)生類
創(chuàng)建Application來調(diào)用Student類
Main() 函數(shù)
main()函數(shù)稱為主函數(shù),一個程序中有且只有一個,擁有程序的執(zhí)行權(quán),程序在執(zhí)行時總是先找到主函數(shù),然后從它開始執(zhí)行
當(dāng)它調(diào)用某個子函數(shù)時,便將執(zhí)行權(quán)交給被調(diào)用函數(shù),被調(diào)用函數(shù)執(zhí)行完畢后,再將執(zhí)行權(quán)還給主調(diào)函數(shù),主函數(shù)繼續(xù)執(zhí)行,一旦主函數(shù)結(jié)束,代表整個程序就結(jié)束了
執(zhí)行過程分析:
首先,main方法會先進(jìn)入棧里面,然后再執(zhí)行student的這個實(shí)例化,student這個對象就被創(chuàng)建,創(chuàng)建后會被加載到棧里面
在棧里面student這個對象就會去找堆中new的Student類型,然后堆會給student的屬性一個默認(rèn)的值,name是null,不同的類型默認(rèn)值不同
然后用戶自定義再給name賦值,name的值就可以輸出了
執(zhí)行完這個程序,這個student就會出棧,然后main方法也出棧了
到此這篇關(guān)于Java中的內(nèi)存分配圖解的文章就介紹到這了,更多相關(guān)Java內(nèi)存分配內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java基本類型與byte數(shù)組之間相互轉(zhuǎn)換方法
下面小編就為大家?guī)硪黄狫ava基本類型與byte數(shù)組之間相互轉(zhuǎn)換方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-08-08Java實(shí)現(xiàn)字節(jié)數(shù)B轉(zhuǎn)化為KB、MB、GB的方法示例【測試可用】
這篇文章主要介紹了Java實(shí)現(xiàn)字節(jié)數(shù)B轉(zhuǎn)化為KB、MB、GB的方法,結(jié)合實(shí)例形式分析了java字節(jié)數(shù)的轉(zhuǎn)換運(yùn)算相關(guān)操作技巧,需要的朋友可以參考下2017-08-08springboot 設(shè)置CorsFilter跨域不生效的解決
這篇文章主要介紹了springboot 設(shè)置CorsFilter跨域不生效的解決,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-11-11用3個實(shí)例從原理到實(shí)戰(zhàn)講清楚Log4j史詩級漏洞
最近應(yīng)該很多人都在關(guān)注著一個漏洞Apache Log4j 2遠(yuǎn)程代碼執(zhí)行,該漏洞一旦被攻擊者利用會造成嚴(yán)重危害,這篇文章主要給大家介紹了關(guān)于如何用3個實(shí)例從原理到實(shí)戰(zhàn)講清楚Log4j史詩級漏洞的相關(guān)資料,需要的朋友可以參考下2021-12-12