JAVA学习笔记 - 面向对象的内存分析

发布时间:2026/7/28 14:27:05
JAVA学习笔记 - 面向对象的内存分析 栈栈描述的是方法执行的内存模型。每个方法被调用都会创建一个栈帧(存储局部变量、操作数、方法出口等)。 JVM为每个线程创建一个栈用于存放该线程执行方法的信息(实际参数、局部变量等)一个线程中存储的变量对其它线程是不可见的。栈的特点有. 栈属于线程私有不能实现线程间的共享!. 栈是由系统自动分配速度快仅次于直接位于CPU中的寄存器。栈是一个连续的内存空间!.栈的存储特性是“先进后出后进先出”。堆Java堆空间是运行时Java程序的内存“容器”它向Java程序提供它所需的适当内存空间并由JVM本身管理。1. 堆用于存储创建好的对象和数组(数组也是对象)2. JVM只有一个堆被所有线程共享3. 堆是一个不连续的内存空间分配灵活速度慢!方法区方法区(又叫静态区)特点如下1. JVM只有一个方法区被所有线程共享!2. 方法区实际也是堆只是用于存储类、常量相关的信息!3. 用来存放程序中永远是不变或唯一的内容。(类信息【Class对象】、静态变量、字符串常量等)示例publicclassSxtStu{intid;String sname;intage;Computer computer;voidstudy(){System.out.println(我在认真学习使用电脑computer.brand);}voidplay(){System.out.println(我在玩游戏);}publicstaticvoidmain(String[]args){SxtStu stunewSxtStu();stu.id1001;stu.sname小明;stu.age18;Computer c1newComputer();c1.brand联想;stu.computerc1;stu.play();stu.study();}}classComputer{String brand;}内存示意图