1.JVM的内存分配:系统默认分配1/8的物理内存,且细分为5块区域:
2.内存分类:
(1)栈内存:
1)用于运行方法,在方法中声明的所有变量,都存在栈内存中;
2)栈内存中的变量,必须经过初始化才能使用,没有默认值;
3)基本数据类型的所有数据都存放在栈内存中;
(2)堆内存:
1)所有通过new关键字创建的变量,都保存在堆内存中,堆内存中的数据都有默认值;
2)数据在堆内存中的默认值:
整型(byte,short,int,long):0;
小数(float,double):0.0;
布尔(bollean):false;
字符(char):‘\u000‘;
(3)方法区:JVM在运行class文件时,先将class文件加载到方法区中,class中包含了类的所有信息(方法、变量);
(4)本地方法栈:使用native关键字符修饰的方法(系统方法);
(5)寄存器:给CPU使用;
原文:https://www.cnblogs.com/Tractors/p/11198020.html