我是靠谱客的博主 鲜艳河马,最近开发中收集的这篇文章主要介绍对象与引用,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

Student s=new Student();

这里的s到底是对象呢还是对象的引用呢? 

可将上述语句分为四部分Student s ,= ,new Student ,()

语句在内存中做的事情:

1.加载Student.class文件进内存

2.在栈内存中为s开辟空间 ----Student s (创建了一个Student类的引用变量s,它可以指向任何Student类实例,或者为Null)

3.在堆内存中为Student对象开辟空间----new Student

4.为Student对象的成员变量进行默认初始化

5.Student对象的成员变量进行显示初始化

6.通过构造方法对Student对象的成员变量赋值----语句最后的()

7.Student变量初始化完毕,把对象的地址赋值给s变量----中间的=


Student s;只是声明了一个Student类的引用,

s=new Student(); 创建了Student类的实例


用气球(对象)和绳子(引用)比喻

Student s1;  第一根绳 s1

s1=new Student(); 绳s1绑住气球

Student s2; 第二根绳s2

s2=s1; 将绳s2也绑到绳s1的那个气球

s2=new Student();绳s2绑到了一个新气球上

s1=s2;绳s1绑到绳s2的那个气球, 那原s1绑的气球就没绳了,飞走了   GC回收


结论

1.一个对象引用可以指向0个或1个对象(一根绳子可以不系汽球,也可以系一个汽球); 

2.一个对象可以有N个引用指向它(可以有N条绳子系住一个汽球)。 


Student s=new Student();

这里的s是引用    引用放的不是对象,而是对象的地址,使得该引用指向了对象。

在JAVA里,“=”不能被看成是一个赋值语句,它不是在把一个对象赋给另外一个对象,它的执行过程实质上是将右边对象的地址传给了左边的引用,使得左边的引用指向了右边的对象。








最后

以上就是鲜艳河马为你收集整理的对象与引用的全部内容,希望文章能够帮你解决对象与引用所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(52)

评论列表共有 0 条评论

立即
投稿
返回
顶部