JVM中的内存空间分为:方法区内存,栈内存,堆内存。它们的功能分别是
方法区内存:在类加载的时候,class字节码代码片段被加载到该内存空间中
栈内存(局部变量):方法 代码片段执行的时候,会给该方法分配内存空间,在栈内存中压栈
堆内存:new的对象在堆内存中存储
例如:Student s = new Student()
这里的s只是一个局部变量,存储的是在堆内存开辟的内存空间的地址。
--什么是对象?
*new运算符在堆内存中开辟的内存空间称为对象
--什么是引用?
*引用是一个变量,只不过这个变量中保存了另一个Java对象的内存地址。就像上面的局部变量s
Java语言当中,程序员不能直接操作堆内存,Java没有指针,不像C语言。在Java语言中,程序员只能通过“引用”去访问堆内存当中的对象