Java的内存空间简单介绍:
对于Java内存空间来说,简单点划分两种:堆空间与栈空间。
- 栈空间:存放基本数据类型和引用数据类型的变量以及值(或地址),同时当调用一个方法的时候,该方法就会入栈,以栈的形式进行执行。
- 堆空间:存放通过new关键字实例化的对象和数组(数组本身是引用数据类型),同时允许多个线程的访问。但对于堆空间来说,本身还包括了方法区和常量池。
堆空间中的方法区和常量池:
方法区又分了静态方法区和非静态方法区。其中,方法区是在类第一次加载时候便存在,存放.class。就好比第一次加载‘模板’一样。而静态方法区则是存放由static修饰的成员变量和成员方法。
常量池:顾名思义,主要是存放常量。
例子:
public static void main(String[] args) {
Person tony = new Person();
tony.setName("Tony");
}
class Person {
private String name;
public void setName(String name) {
this.name = name;
}
}