java内存模型:与多线程JMM,就是线程可见性有关
java内存结构:JVM虚拟机存储空间
class文件被类加载器加载,进入java虚拟机内存中。
java虚拟机内存分为
方法区(永久区):static关键字修饰,常量信息等,class被加载的时候就会被初始化,数据资源被所有线程共享。所以要注意线程安全问题
调优问题:web开发,定义常量太多不好的原因:
1.占内存,会产生内存溢出
2.会有所有线程共享,容易产生线程安全问题
堆:创建的对象 ,new出来的对象存放在堆内存中
栈:定义基本局部变量,代码运行完毕后自动释放内存,资源是私有的,所以线程安全
本地方法栈:主要是调用C语言的。JNI(java语言调用C语言)
PC寄存器:计算机组成原理,操作指针,计算机指令等
执行引擎: 执行字节码文件
垃圾回收机制:
类的方法存放在哪个地方:栈。