首页 > 编程语言 > 详细

java基础(一)~~内存分析

时间:2020-07-28 10:49:41      阅读:86      评论:0      收藏:0      [点我收藏+]

1、java内存分析

技术分享图片

 

 

 2.2、面向对象内存分析

Java虚拟机的内存可以分为三个区域:栈(stack)、堆(heap)、方法区(method area);

2.2.1、栈

栈的特点如下:

1、栈描述的是方法的内存模型。每个方法被调用都会创建一个栈帧(存储局部变量、操作数、方法出口等);

2、JVM为每个线程创建一个栈,用于存放该线程执行方法的信息(实际参数、局部变量等);

3、栈属于线程私有,不能实现线程键的共享;

4、栈的存储特性是:先进先出,后进后出;

5、栈是有系统自动分配,速度快;栈是一个连续的内存空间;

2.2.3、堆

堆的特点如下:

1、堆用于存储创建好的对象和数组(数组也是对象);

2、JVM只有一个堆,被所有线程共享;

3、堆是一个不连续的内存空间,分配灵活,速度慢;

2.2.4、方法区

方法区特点如下:

1、JVM只有一个方法区,被所有线程共享;

2、方法区实际也是堆,只是用于存储类、常量相关的信息;

3、用来存放程序中永远是不变或唯一的内容。(类信息【Class对象】、静态变量、字符串常量等);

 

public class SxtStu {
	int id;
	String sname;
	int age;
	
	Computer comp;//计算机
	
	void study(){
		System.out.println("我在认真学习,使用电脑:"+comp.brand);
	}
	
	void play(){
		System.out.println("我在玩游戏:王者农药!");
	}
	
	SxtStu(){
		
	}
	
	public static void main(String[]args){
		SxtStu stu=new SxtStu();
		stu.id=1001;
		stu.sname="小明";
		stu.age=18;
		
		Computer c1=new Computer();
		c1.brand="联想";
		
		stu.comp=c1;
		
		stu.play();
		stu.study();
	}

}


class Computer{
	String brand;
}

技术分享图片

 

java基础(一)~~内存分析

原文:https://www.cnblogs.com/OyjLearning/p/13387296.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!