999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于簡單實例的java內存解析

2018-12-21 09:42:06黎梨苗劉欣
新教育時代·教師版 2018年36期
關鍵詞:分配程序

黎梨苗 劉欣

摘 要:Java程序中,java虛擬機將內存分成了兩大部分,每部分的功能不同,這與我們通常所說的內存有著一定的區(qū)別。那么,java虛擬機是如何進行內存的分功的呢?本文將結合簡單實例對java程序中的內存進行詳細解析。

關鍵詞:java虛擬機內存棧內存堆內存

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

一、簡單實例

class Student{

int age;String name;

Student (int age,String name){

this age=age;String name=name;}

void listening(){

System.out.print(“學生正在聽課”);}

public static void main(String[] args){

Student stu1=new Student(8,”張三”);

Student stu1=new Student(12,”李四”);

stu1.listening();}}

二、實例內存分配解析

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

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

三、內存運行機制

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

計算機把class student整個程序信息調入計算機內存,一旦運行程序時,JVM開始對class student整個信息進行內存分配;

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

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

Student stu1=new Student(8,”張三”);

Student stu1=new Student(12,”李四”);

檢測到age,name是局部變量,因此會把age,name放在棧中,把對象指針指向堆內存的內容即把相應的“8,張三”與“12,李四”賦給age與name.[3]

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

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

以上就是Java中內存機制運行的介紹。

結語

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

參考文獻

[1]章婧,盧凱,周旭,Java內存行為研究,小型微型計算機系統(tǒng),2011, 32(8):1617-1621.

[2]李杰文,Java程序內存使用分析技術研究,中國礦業(yè)大學,2016,10(12):32-37.

[3]彭天昊,JAVA語言內存分配的探討,凱里學院學報,2009, 27(6):93-95.

猜你喜歡
分配程序
基于可行方向法的水下機器人推力分配
應答器THR和TFFR分配及SIL等級探討
遺產(chǎn)的分配
試論我國未決羈押程序的立法完善
人大建設(2019年12期)2019-05-21 02:55:44
一種分配十分不均的財富
績效考核分配的實踐與思考
失能的信仰——走向衰亡的民事訴訟程序
“程序猿”的生活什么樣
英國與歐盟正式啟動“離婚”程序程序
創(chuàng)衛(wèi)暗訪程序有待改進
主站蜘蛛池模板: 久久综合色播五月男人的天堂| 国产乱子伦视频在线播放| 国产精品主播| 福利在线不卡| 幺女国产一级毛片| 亚洲精品福利视频| 国内精品视频在线| 国产欧美日韩专区发布| 国产区在线看| 亚洲视频色图| 亚洲国产清纯| 久久精品免费看一| 亚洲精品视频在线观看视频| 亚洲国产第一区二区香蕉| 免费人成在线观看视频色| 伊人色天堂| 免费可以看的无遮挡av无码| 四虎影视国产精品| 欧美专区在线观看| jizz亚洲高清在线观看| 国产成人超碰无码| 久久99国产乱子伦精品免| 久996视频精品免费观看| 亚洲国产成人自拍| 69免费在线视频| 国产乱人免费视频| 亚洲无码视频图片| 国产在线观看第二页| 国产亚洲精品97AA片在线播放| 国产又色又爽又黄| 99er精品视频| 91九色最新地址| 99re热精品视频国产免费| 亚洲色图综合在线| 欧美日韩午夜| 国产精品欧美在线观看| 激情影院内射美女| 午夜福利视频一区| 99热这里只有精品在线播放| 欧美天天干| 欧美在线视频不卡第一页| 国产哺乳奶水91在线播放| 亚洲欧美日韩成人高清在线一区| 不卡视频国产| 国产一区二区免费播放| 国产微拍一区二区三区四区| 亚洲AV无码一区二区三区牲色| 中文字幕免费播放| 天堂网亚洲系列亚洲系列| 91国内视频在线观看| 久久9966精品国产免费| 精品久久国产综合精麻豆| 国产人成在线视频| 欧美亚洲日韩不卡在线在线观看| 国产成人福利在线| 激情亚洲天堂| 91午夜福利在线观看精品| 99热这里只有精品久久免费| 国产精品专区第1页| 亚洲欧美不卡中文字幕| 亚洲不卡av中文在线| 激情综合激情| 亚洲va视频| 国产精品手机在线播放| 国产精品污污在线观看网站| 久久久91人妻无码精品蜜桃HD| 国产玖玖视频| 成人亚洲天堂| 欧美国产视频| 欧美激情成人网| 久热re国产手机在线观看| 国产白浆视频| 国产9191精品免费观看| 一级毛片免费高清视频| 国产91高清视频| 欧美日韩v| 婷婷开心中文字幕| 四虎在线观看视频高清无码 | 99re在线观看视频| 国产资源免费观看| 美女国产在线| 亚洲成人动漫在线观看|