JVM的内存结构:
1.栈内存(Stack):运行了方法,会在栈内存中申请空间,将方法中局部变量存储在栈空间内
2.堆内存(Heap):存储引用数据类型的值
数据类型的分类:
1.基本数据类型:基本数据类型的值存储在栈空间中
存储时间固定:方法运行结束 内存也跟着释放
2.引用数据类型:引用数据类型在堆空间中的地址存储在栈空间内
堆中的数据是由Java GC进行回收的(不会立即回收)
绝大多数引用数据类型都需要用new 关键字, 每一次执行new时 都会向堆内存重新申请一块空间
String字符串常量池
定义方法:
1.String 变量名 = new String("值");
2.String 变量名 = "值";
字符串常量池是在堆空间中一块单独的存放字符串的空间
String name1 = "值";
String name2 = "值";
String name1 = new String("值");
String name2 = new String("值");
String name1= new String("值");
String name2 = "值";