最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java對(duì)象創(chuàng)建內(nèi)存案例解析

 更新時(shí)間:2021年08月03日 09:44:08   作者:小炭在努力  
這篇文章主要介紹了Java對(duì)象創(chuàng)建內(nèi)存案例解析,本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下

Java對(duì)象創(chuàng)建內(nèi)存圖解析

1. 棧

  • Java棧的區(qū)域很小 , 特點(diǎn)是存取的速度特別快,棧存儲(chǔ)的特點(diǎn)是, 先進(jìn)后出,存儲(chǔ)速度快的原因: 棧內(nèi)存, 通過(guò) 棧指針'來(lái)創(chuàng)建空間與釋放空間,指針向下移動(dòng), 會(huì)創(chuàng)建新的內(nèi)存, 向上移動(dòng), 會(huì)釋放這些內(nèi)存。這種方式速度特別快 , 僅次于PC寄存器,但是這種移動(dòng)的方式, 必須要明確移動(dòng)的大小與范圍 ,明確大小與范圍是為了方便指針的移動(dòng) , 這是一個(gè)對(duì)于數(shù)據(jù)存儲(chǔ)的限制, 存儲(chǔ)的數(shù)據(jù)大小是固定的 , 影響了程序的靈活性。 所以我們把更大部分的數(shù)據(jù) 存儲(chǔ)到了堆內(nèi)存中存儲(chǔ)的是:基本數(shù)據(jù)類型的數(shù)據(jù) 以及 引用數(shù)據(jù)類型的引用。

例如:
int a =10;
Person p = new Person();
10存儲(chǔ)在棧內(nèi)存中 , 第二句代碼創(chuàng)建的對(duì)象的引用§存在棧內(nèi)存中

2. 堆

  • 堆存放的是類的對(duì)象 ,Java是一個(gè)純面向?qū)ο笳Z(yǔ)言, 限制了對(duì)象的創(chuàng)建方式:所有類的對(duì)象都是通過(guò)new關(guān)鍵字創(chuàng)建new關(guān)鍵字, 是指告訴JVM, 需要明確的去創(chuàng)建一個(gè)新的對(duì)象 , 去開辟一塊新的堆內(nèi)存空間,堆內(nèi)存與棧內(nèi)存不同, 優(yōu)點(diǎn)在于我們創(chuàng)建對(duì)象時(shí) , 不必關(guān)注堆內(nèi)存中需要開辟多少存儲(chǔ)空間 , 也不需要關(guān)注內(nèi)存占用時(shí)長(zhǎng),堆內(nèi)存中內(nèi)存的釋放是由GC(垃圾回收器)完成的垃圾回收器 回收堆內(nèi)存的規(guī)則:當(dāng)棧內(nèi)存中不存在此對(duì)象的引用時(shí),則視其為垃圾 , 等待垃圾回收器回收 。

3. 方法區(qū)

方法區(qū)存放的是:

  • 類信息
  • 靜態(tài)的變量
  • 常量
  • 成員方法
    方法區(qū)中包含了一個(gè)特殊的區(qū)域 ( 常量池 )(存儲(chǔ)的是使用static修飾的成員)

創(chuàng)建內(nèi)存棧、堆、方法區(qū)圖析

舉個(gè)例子如下圖:

在這里插入圖片描述

對(duì)象的引用存放在棧中,new創(chuàng)建Book()對(duì)象在堆內(nèi)存中開辟了一段內(nèi)存,內(nèi)存都是有地址的假設(shè)為0x123,棧內(nèi)存中存儲(chǔ)了地址,地址指向堆內(nèi)存,獲取了對(duì)象Book的屬性name、info,并賦值為"計(jì)算機(jī)",“計(jì)算機(jī)書籍”,如圖示:

在這里插入圖片描述

接著BOOK book2 = book1,在棧內(nèi)存中又創(chuàng)建了一個(gè)區(qū)域,這個(gè)區(qū)域就是book2,也拿到book1的地址,通過(guò)book2調(diào)用將name改為"Java",接著在調(diào)用方放say()。整個(gè)過(guò)程如圖示:

在這里插入圖片描述

結(jié)果如下:

在這里插入圖片描述

  • 方法結(jié)束整個(gè)過(guò)程完成后,變量對(duì)象使用完畢,因?yàn)樗淖饔糜蚓瓦@么大,將會(huì)被釋放,book2,book1先后出棧釋放,緊接著堆內(nèi)存的對(duì)象沒(méi)有任何棧內(nèi)存指向它,最后交給交給GC垃圾回收期處理。

這就是Java對(duì)象創(chuàng)建內(nèi)存到釋放內(nèi)存的一個(gè)過(guò)程。

到此這篇關(guān)于Java對(duì)象創(chuàng)建內(nèi)存案例解析的文章就介紹到這了,更多相關(guān)Java對(duì)象創(chuàng)建內(nèi)存內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 關(guān)于網(wǎng)頁(yè)報(bào)錯(cuò)404原因以及解決方法

    關(guān)于網(wǎng)頁(yè)報(bào)錯(cuò)404原因以及解決方法

    404錯(cuò)誤是網(wǎng)站常見的錯(cuò)誤之一,出現(xiàn)的原因很多,解決方法也有很多種,這篇文章主要給大家介紹了關(guān)于網(wǎng)頁(yè)報(bào)錯(cuò)404原因以及解決方法的相關(guān)資料,需要的朋友可以參考下
    2024-01-01
  • maven插件assembly使用及springboot啟動(dòng)腳本start.sh和停止腳本 stop.sh

    maven插件assembly使用及springboot啟動(dòng)腳本start.sh和停止腳本 stop.sh

    這篇文章主要介紹了maven插件assembly使用及springboot啟動(dòng)腳本start.sh和停止腳本 stop.sh的相關(guān)資料,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-08-08
  • java實(shí)現(xiàn)基于TCP協(xié)議網(wǎng)絡(luò)socket編程(C/S通信)

    java實(shí)現(xiàn)基于TCP協(xié)議網(wǎng)絡(luò)socket編程(C/S通信)

    這篇文章主要介紹了java實(shí)現(xiàn)基于TCP協(xié)議網(wǎng)絡(luò)socket編程(C/S通信),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • SpringMVC多個(gè)模塊404報(bào)錯(cuò)問(wèn)題及解決

    SpringMVC多個(gè)模塊404報(bào)錯(cuò)問(wèn)題及解決

    這篇文章主要介紹了SpringMVC多個(gè)模塊404報(bào)錯(cuò)問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • SpringSecurity的安全過(guò)濾器鏈功能詳解

    SpringSecurity的安全過(guò)濾器鏈功能詳解

    本文介紹了如何配置SpringSecurity的安全過(guò)濾器鏈,包括定義URL路徑的訪問(wèn)權(quán)限、用戶認(rèn)證和授權(quán)配置、自定義CSRF過(guò)濾器等內(nèi)容,通過(guò)這些配置,可以實(shí)現(xiàn)對(duì)不同URL路徑的訪問(wèn)控制以及用戶的登錄、注銷等功能,感興趣的朋友一起看看吧
    2025-03-03
  • Javaweb實(shí)現(xiàn)在線人數(shù)統(tǒng)計(jì)代碼實(shí)例

    Javaweb實(shí)現(xiàn)在線人數(shù)統(tǒng)計(jì)代碼實(shí)例

    這篇文章主要介紹了Javaweb實(shí)現(xiàn)在線人數(shù)統(tǒng)計(jì)代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-11-11
  • java簡(jiǎn)單實(shí)現(xiàn)八叉樹圖像處理代碼示例

    java簡(jiǎn)單實(shí)現(xiàn)八叉樹圖像處理代碼示例

    這篇文章主要介紹了java簡(jiǎn)單實(shí)現(xiàn)八叉樹圖像處理代碼示例,具有一定借鑒價(jià)值,需要的朋友可以參考下。
    2017-12-12
  • 如何利用Spring?Boot?監(jiān)控?SQL?運(yùn)行情況

    如何利用Spring?Boot?監(jiān)控?SQL?運(yùn)行情況

    這篇文章主要介紹了如何利用Spring?Boot監(jiān)控SQL運(yùn)行情況,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-07-07
  • Java圓柱體表面積和體積計(jì)算代碼實(shí)例

    Java圓柱體表面積和體積計(jì)算代碼實(shí)例

    這篇文章主要介紹了Java圓柱體表面積和體積計(jì)算代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-06-06
  • 爬蟲技術(shù)詳解

    爬蟲技術(shù)詳解

    本文全面的介紹了爬蟲的原理、技術(shù)現(xiàn)狀、以及目前仍面臨的問(wèn)題。具有很好的參考價(jià)值。下面跟著小編一起來(lái)看下吧
    2017-03-03

最新評(píng)論

双峰县| 永安市| 沙洋县| 刚察县| 库尔勒市| 东安县| 南涧| 锡林郭勒盟| 汝南县| 富平县| 迁西县| 林甸县| 宿迁市| 肇源县| 西吉县| 靖州| 包头市| 东辽县| 新绛县| 尚义县| 定州市| 册亨县| 怀化市| 河津市| 上林县| 武隆县| 光泽县| 新沂市| 东城区| 甘孜县| 宝应县| 镇安县| 西华县| 巩留县| 阳江市| 四子王旗| 淮南市| 富平县| 方正县| 吴旗县| 潞城市|