亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于簡單實(shí)例的java內(nèi)存解析

        2018-12-18 03:04:24
        新教育時代電子雜志(教師版) 2018年36期
        關(guān)鍵詞:程序方法

        (長沙學(xué)院計算機(jī)工程與應(yīng)用數(shù)學(xué)學(xué)院 長沙 410075)

        Java程序中的內(nèi)存分為兩大部分:一部分叫做棧(Stack)內(nèi)存,另一部分叫堆(heap)內(nèi)存。棧內(nèi)存用來存放基本數(shù)據(jù)類型和引用數(shù)據(jù),基本數(shù)據(jù)類型如int,short,byte,f l oat等;引用數(shù)據(jù)類型如類,接口,注解等。堆內(nèi)存用來存放類中的實(shí)例化對象即用new關(guān)鍵字創(chuàng)建的對象,如 new animal(),這個數(shù)據(jù)就存放堆內(nèi)存里。通過一個簡單實(shí)例對兩部分內(nèi)存做詳細(xì)分析。[1]

        一、簡單實(shí)例

        二、實(shí)例內(nèi)存分配解析

        上述實(shí)例中,定義了兩個基本數(shù)據(jù)類型的變量age與name;一個一般方法;在主函數(shù)內(nèi)創(chuàng)建了兩個對象。內(nèi)存分配解析如下:

        棧內(nèi)存用來存放基本數(shù)據(jù)類型的變量及對象的引用地址,在實(shí)例中的基本數(shù)據(jù)類型為int age、String name; 對象的引用為 Student stu1、Student stu2.而堆內(nèi)存用來存放new出來的對象即存放上例中的new Student(8,”張三”)與new Student(12,”李四”),如圖中所示。另外,通常在堆內(nèi)存又細(xì)分出一塊內(nèi)存空間叫常量池,用來存放不常改變的量,如static修飾的量,f i nal修飾的量,字符串常量及方法,顯然,常量池里所存放的內(nèi)容具有所有實(shí)例共享的特征。實(shí)例內(nèi)存分配如圖1所示。[2]

        圖1 JAVA程序內(nèi)存劃分圖

        三、內(nèi)存運(yùn)行機(jī)制

        在講內(nèi)存運(yùn)行機(jī)制之前,我們首先必須了解JVM即Java虛擬機(jī),Java程序是在JVM上運(yùn)行的,它是連接操作系統(tǒng)與Java程序之間的紐帶,Java程序有個特點(diǎn)“一次編譯,到處運(yùn)行”,這正是JVM所起的作用,體現(xiàn)了Java的平臺無關(guān)性,可見,JVM在Java程序運(yùn)行中起著至關(guān)重要的作用,程序的內(nèi)存分配都是在JVM中進(jìn)行?,F(xiàn)結(jié)合上述簡單實(shí)例將Java的內(nèi)存運(yùn)行機(jī)制講述如下:

        計算機(jī)把class student整個程序信息調(diào)入計算機(jī)內(nèi)存,一旦運(yùn)行程序時,JVM開始對class student整個信息進(jìn)行內(nèi)存分配;

        1.程序運(yùn)行時,JVM自動尋找main方法,執(zhí)行第一句代碼,創(chuàng)建兩個student類的對象,在棧中分配一塊內(nèi)存,存放兩個指向堆內(nèi)存的對象指針215346和140345。

        2.JVM讀到下面兩條語句時,

        檢測到age,name是局部變量,因此會把a(bǔ)ge,name放在棧中,把對象指針指向堆內(nèi)存的內(nèi)容即把相應(yīng)的“8,張三”與“12,李四”賦給age與name.[3]

        3.當(dāng)上面兩條語句執(zhí)行完了,JVM立即釋放變量ageg與name;但stu1與stu2還在堆中,并沒有釋放掉,因為可能還有其他變量指向這兩個變量。

        4.JVM繼續(xù)讀取語句stu1.listening();這時從常量池中調(diào)用listening()方法給stu1對象來完成操作,JVM完成對象stu1對listening()方法的算法計算。由于listening()方法是存放于常量池中供所有類對象共享的,因此,JVM運(yùn)行完語句stu1.listening()后,listening方法依舊在常量池中。

        以上就是Java中內(nèi)存機(jī)制運(yùn)行的介紹。

        結(jié)語

        棧內(nèi)存的數(shù)據(jù)和堆內(nèi)存的數(shù)據(jù)不是同步釋放的。方法結(jié)束時,棧中的局部變量立即釋放,但是堆中對象不一定釋放。因為可能有其他變量也指向了這個對象,直到棧中沒有變量指向堆中的對象時,它才釋放,并且還不是馬上釋放,要等垃圾回收掃描時才可以被釋放。

        猜你喜歡
        程序方法
        學(xué)習(xí)方法
        試論我國未決羈押程序的立法完善
        失能的信仰——走向衰亡的民事訴訟程序
        “程序猿”的生活什么樣
        英國與歐盟正式啟動“離婚”程序程序
        可能是方法不對
        用對方法才能瘦
        Coco薇(2016年2期)2016-03-22 02:42:52
        創(chuàng)衛(wèi)暗訪程序有待改進(jìn)
        四大方法 教你不再“坐以待病”!
        Coco薇(2015年1期)2015-08-13 02:47:34
        賺錢方法
        亚洲精品成人av一区二区| 少妇被粗大的猛烈进出免费视频| 中文字幕一区二区三区乱码| 国产精品入口牛牛影视| 伊人影院在线观看不卡| 久久人妻一区二区三区免费| 亚洲一区二区三区香蕉| 国偷自产av一区二区三区| 伊人色综合九久久天天蜜桃| 熟妇人妻精品一区二区视频免费的| 美女露内裤扒开腿让男人桶无遮挡| 六月丁香婷婷色狠狠久久| 亚洲AV无码乱码精品国产草莓| 亚洲中文中文字幕乱码| 免费av一区二区三区无码| 国产精品久久婷婷六月丁香| 亚州毛色毛片免费观看| 日本一区二区三区丰满熟女| 国产乱妇无乱码大黄aa片| 鲁一鲁一鲁一鲁一澡| 淫妇日韩中文字幕在线| 亚洲黄色av一区二区三区| 亚洲精品久久久久成人2007| av在线色| 亚洲美女主播一区二区| 久久久精品国产亚洲av网深田| 亚洲av无码av男人的天堂| 人妻无码aⅴ中文系列久久免费| 国产三级在线观看不卡| 国产精品美女久久久网av| 丰满的少妇xxxxx青青青| 久久久99精品视频| 蜜桃视频第一区免费观看| 一区二区三区av波多野结衣| 国产成人精选在线不卡| 天堂av一区二区麻豆| 成 人色 网 站 欧美大片在线观看 | 中文字幕久无码免费久久| 男女动态视频99精品| 波多野结衣中文字幕一区二区三区| 欧美丰满大乳高跟鞋|