1、Java内存分配
- 栈(Stack):主要用来存放局部变量。
- 堆(Heap):凡是new出来的东西,都在堆当中。
a)如果是整数,默认是0
b)如果是浮点数,默认是0.0
c)如果是字符,默认是’\u0000’(Unicode写法)
d)如果是布尔值,默认为false
e)如果是引用类型(包含字符串),默认为null(空常量) - 方法区(Method Area):存放与.class相关的信息。
- 本地方法区(Native Method Area):与操作系统相关。
- 寄存器(pc Register):与CPU相关,性能极高。
demo分析:
首先创建一个宠物类
package com.jialidun.cacheImage;
public class Pet {
int age;
String name;
void shout(){
System.out.println("叫~");
}
}
创建宠物类的实例
package com.jialidun.cacheImage;
public class Application {
public static void main(String[] args) {
Pet dog = new Pet();
dog.age=3;
dog.name="旺财";
Pet cat = new Pet();
}
}
内存分析图