JVM概念
2004年发布JDK1.5:泛型,注解,装箱,枚举,可变长的参数,foreach循环

PC寄存器:
每一个线程拥有一个PC寄存器;
在线程创建时创建
纸箱下一条指令的地址
保存装载的类的原信息 对类进行描述
和程序开发密切相关
应用系统对象都保存在java堆中
所有线程共享java堆
堆GC来说,堆也是分代的
java栈:
线程私有
栈由一系列桢组成
桢保存一个方法的局部变量、操作数栈,常量池指针
每一次方法调用创建一个帧,并压栈

java栈-操作数栈 java没有寄存器 所有参数传递使用操作数栈
可见性方法(修改一个变量 要求这个变量对其他的线程立即可见 ):
使用volatile关键字(线程不安全)
synchronized同步
2004年发布JDK1.5:泛型,注解,装箱,枚举,可变长的参数,foreach循环

PC寄存器:
每一个线程拥有一个PC寄存器;
在线程创建时创建
纸箱下一条指令的地址
执行本地方法时,PC的值为undifined(未定义的)
方法区:保存装载的类的原信息 对类进行描述
通常和永久区关联在一起,保存一些相对不变的信息,类的信息一般在运行的过程中不会变
java堆:和程序开发密切相关
应用系统对象都保存在java堆中
所有线程共享java堆
堆GC来说,堆也是分代的
GC的主要工作区间
新生代:eden s0 s1(s0,s1大小一样完全对称)
老年代:tenured
线程私有
栈由一系列桢组成
桢保存一个方法的局部变量、操作数栈,常量池指针
每一次方法调用创建一个帧,并压栈

java栈-操作数栈 java没有寄存器 所有参数传递使用操作数栈
可见性方法(修改一个变量 要求这个变量对其他的线程立即可见 ):
使用volatile关键字(线程不安全)
synchronized同步
final常量