基于简单实例的java内存解析

2018-12-21 09:42:06黎梨苗刘欣
新教育时代·教师版 2018年36期
关键词:分配程序

黎梨苗 刘欣

摘 要:Java程序中,java虚拟机将内存分成了两大部分,每部分的功能不同,这与我们通常所说的内存有着一定的区别。那么,java虚拟机是如何进行内存的分功的呢?本文将结合简单实例对java程序中的内存进行详细解析。

關键词:java虚拟机内存栈内存堆内存

Java程序中的内存分为两大部分:一部分叫做栈(Stack)内存,另一部分叫堆(heap)内存。栈内存用来存放基本数据类型和引用数据,基本数据类型如int,short,byte,float等;引用数据类型如类,接口,注解等。堆内存用来存放类中的实例化对象即用new关键字创建的对象,如 new animal(),这个数据就存放堆内存里。通过一个简单实例对两部分内存做详细分析。[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();}}

二、实例内存分配解析

上述实例中,定义了两个基本数据类型的变量age与name;一个一般方法;在主函数内创建了两个对象。内存分配解析如下:

栈内存用来存放基本数据类型的变量及对象的引用地址,在实例中的基本数据类型为int age、String name; 对象的引用为 Student stu1、Student stu2.而堆内存用来存放new出来的对象即存放上例中的new Student(8,”张三”)与new Student(12,”李四”),如图中所示。另外,通常在堆内存又细分出一块内存空间叫常量池,用来存放不常改变的量,如static修饰的量,final修饰的量,字符串常量及方法,显然,常量池里所存放的内容具有所有实例共享的特征。实例内存分配如图1所示。[2]

三、内存运行机制

在讲内存运行机制之前,我们首先必须了解JVM即Java虚拟机,Java程序是在JVM上运行的,它是连接操作系统与Java程序之间的纽带,Java程序有个特点“一次编译,到处运行”,这正是JVM所起的作用,体现了Java的平台无关性,可见,JVM在Java程序运行中起着至关重要的作用,程序的内存分配都是在JVM中进行。……

登录APP查看全文

猜你喜欢
分配程序
基于可行方向法的水下机器人推力分配
应答器THR和TFFR分配及SIL等级探讨
遗产的分配
试论我国未决羁押程序的立法完善
人大建设(2019年12期)2019-05-21 02:55:44
一种分配十分不均的财富
绩效考核分配的实践与思考
失能的信仰——走向衰亡的民事诉讼程序
“程序猿”的生活什么样
英国与欧盟正式启动“离婚”程序程序
环球时报(2017-03-30)2017-03-30 06:44:45
创卫暗访程序有待改进
中国卫生(2015年3期)2015-11-19 02:53:32