什么是引用值
引用值为什么是地址
引用值为什么是地址
2016-08-11
在java的逻辑内存中分栈内存和堆内存。其中像是int,short,long,char,double等基本数据类型所需要的空间是固定的,在运算时数据是存储在栈内存中。而对于一个引用类型的变量,如String,或者一个对象,系统并不知道它们所占的空间具体值。在创建时,首先为了保证系统能够找到它,先在栈内存中存一个标识和基本空间(如创建person类的man对象: “person man”的意思就是在栈内存中创建man的空间 ,接下来通过new关键字在堆内存中创建一块空间,在将地址值返回给栈内存中)。对于一次性使用的对象可以直接用”new 类名()”的形式创建一个匿名对象(如匿名person对象调用talk方法:new person.talk()),因为系统无法再次找到它,所以在执行一次后将会被java虚拟机当做垃圾进行回收。在执行如运算符"=="的过程中其实都是直接在栈中就行操作,从而比较的其实是指向的地址,而不是内容。
举报