前提条件:线程只负责干活,不负责思考跟记录
作用:当前线程正在执行的字节码的行号
1.2 栈虚拟机栈 一个方法一个栈帧
1.局部变量表(存放方法中的局部变量)
2.操作数栈(变量运行过程中数据的中转)
3.动态链接(运行时的多态)
4.出口(出栈:正常/异常)
......
本地方法栈
带有native方法的,java给你提供的,c语言编写的
2.线程共享 2.1 堆 - 对象的实例,字符串常量池从jdk1.7之后都是在堆里 2.2 方法区(jdk1.8之前实现方式叫永久代,jdk1.8之后实现方式叫元空间)元空间在电脑内存中:
运行时常量池(class常量池,class文件在内存中运行,最终叫运行时常量池)
类的信息...
字面量:int a = "abc"; abc就是字面量
引用符号:引用关系
Java对象的组成对象头:gc的年龄,锁的指针,引用关系
对象实例:
数据填充:对象必须是8字节的倍数,不够就进行填充
栈上分配:是不是所有的对象实例都在堆中?不是
方法逃逸:默认开启
变量没有逃出方法的范围
栈上分配,将一个对象拆分为基本数据类型



