Java_程序内存分析

Java虚拟机的内存可以分为三个区域: 栈Stack,堆heap,方法区method area
  栈的特点:方法执行的内存模型,每个方法被调用都会创建一个栈帧(储存局部变量,操作数,方法出口等);
  JVM为每个线程创建一个独立的栈,用于存放该线程执行方法的信息;
  栈属于线程私有,不能实现线程间的共享;
  栈是由系统自动分配,速度快,栈是一个连续的内存空间。
堆的特点
  用于存储创建好的对象和数组;
  JVM只有一个堆,被所有线程共享;
  堆是一个不连续的内存空间,分配灵活,速度慢;
方法区:
  实际也是堆,只是用于储存类,常量相关的信息;

public class Student {

    //属性fields
    int id;
    String name;
    int age;
    
    Computer comp;
    
    void study() {
        System.out.println("学习"+comp.brand);
    }
    void play() {
        System.out.println("游戏");
    }
    
    
    //程序执行的入口,必须要有的。
    public static void main(String[]args) {
        Student stu = new Student();//创建一个新的对象
        stu.id=001;
        stu.name="spencer";
        stu.age=28;
        
        Computer c1=new Computer();
        c1.brand="apple";
        
        stu.comp=c1;
        stu.study();
    }    
}
 
class Computer{
    String brand;
}

原文地址:https://www.cnblogs.com/spencersun/p/9626613.html