文章目录
方法区
方法区(亮色):所有线程共享,存在垃圾回收。
类的结构信息:模板。
类装载器,把class文件代表的Class装载到了方法区。
天上飞的是理念(方法区),落地的是实现(永久代,元空间)。
栈
栈管运行,堆管存储。
引入:当我们出异常的时候,是打印栈的运行轨迹,如下:
工作与学校的区别,如上。
java中,方法就可以理解为栈帧。一个一个的栈帧,可以理解为一个一个的方法被压栈。
方法被压栈,方法的入参,出参,方法内的局部变量,也被压栈了。
父帧存储的是父帧的方法索引,这种指向的关系,可以理解为表现在pc寄存器里面。
栈是可以被压爆:栈溢出。方法的加载把栈给撑爆了。这算是错误,并不是异常!
看一下异常的继承树:
栈溢出属于error:看下方的继承树。
堆·栈·方法区的交互关系
hotspot,是sun公司实现的jdk的接口,实现了规范。
jvm 虚拟机厂家:https://www.zhihu.com/question/29265430?sort=created
java中国做的好的:阿里和美团