1. JVM就是将java字节码 .class .jar 翻译成操作系统能识别的机器码。这样就实现了跨平台性。
程序计数器:在时间片轮转的时候,指向当前线程正在执行的字节码指令的地址。由于它占用的内存很小,所以它是唯一不会OOM的内存区域。
虚拟机栈:存储当前线程运行方法所需的数据,指令、返回地址
所有线程共享的数据区里面包括有:方法区和堆区。他们的主要区别是:方法区包含类信息/常量/静态变量/即时编辑期编译后的代码。堆区存放的都是对象实例和数组。那么为什么要将他们区分开昵?原因是:堆是经常动态的创建和回收的,可以频繁的回收的,方法区是静态的,不会经常回收的。
Java堆的大小参数设置 -Xmx 堆区内存可被分配的最大上限 -Xms 堆区内存初始内存分配的大小 X: 表示