对象访问

 Object obj = new Object();

会发生了什么呢?简单说一下吧(估计大家都明白):1.Object obj 作为一个reference类型在栈的本地变量表中出现;2.new Object()在堆中形成一块存储object类型的实例数据;3.方法区中包含对象类型的数据(如类型,父亲类,方法,实现的接口)的地址信息(这部分估计很多娃都不晓得)。

引用的定位方式:1.句柄方式;2.指针方式。两种的异同不太好细说,因为在网上找的一些资料说的是句柄就是java版指针,但是根据书的记载a.老句包含了对象实例数据和类型数据的具体信息,而reference直接存放的就是对象地址;b.老句的好处,稳定的,对象被移动的时候只改变实例数据指针,reference本身不需要被改变另一哥们访问快节省定位时间。而这两种定位方式是否由不同虚拟机自己生成还是可以认为设定也不知道。

猜你喜欢

转载自blog.csdn.net/cr459464757/article/details/13022643