ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

Java对象引用:你以为握住了对象?不过是堆里的一根吊绳

2026/8/24 4:10:59 拓冰建站 浏览量
Java对象引用:你以为握住了对象?不过是堆里的一根吊绳 1.什么是对象“万物皆对象”, 此乃JAVA于设计起始阶段的理念当中的一个, 所谓“对象”, 依照通俗的表述而言便是“某一个类class的一个实例”, 通常是处于堆里存储着的。2.什么是引用在JAVA里的引用, 跟C语言当中的指针相同, 都是操控对象的标识符, 是依据特殊语法的间接表示, 一般存于速度更快的堆栈之中。3.代码分析定义类class {Int agename创建类对象lisi new ();下面分析这句创建对象的语句总共包含4个动作1处于右边位置的那个“new () ”, 它是以类作为模板, 进而去创建一个类的对象, 也就是那个对象。2表示在末尾的(), 是当对象被创建之后, 会马上调用类的构造函数不管是自定义的还是系统默认的, 进而对该对象实施初始化。3左边的那个被称作“lisi”的, 创建了一个类引用变量, 这个变量是用来指向对象的, 而所指对象又具有对象引用。4“”意味着一个传递地址的环节, 也就是把右边创建那儿新生成的对象“new ()”的地址传送到左边的引用变量“lisi”, 进而让“引用”指向了“对象”。下面将创建对象的语句拆分成更清晰的两部分lisi//引用变量部分lisi new (); //对象部分对象是在堆内存里创建的, 它没有名字, 没办法直接去访问以及表示, 因此要用引用变量来进行间接的访问还有表示。延伸讨论情况一若代码仅执行了开头部分, 鉴于未针对任一对象进行指向, 如此一来, 引用变量 lisi 便会呈现 null 值。情况二再创建一个引用变量 lisi 第二句表明, 将引用lisi里所存有的那个对象的地址, 复制给予引用, 于是引用也指向了该对象。情况三在创建一个新的()变量 ();表示引用指向了新的变量。综上1一个对象引用可以指向0个或1个对象2一个对象可以有N个引用指向它。情况四lisi ;这时, lisi并非再指向初始的那个对象, 偏偏却如同那样也指向了第二个被创建出来的对象。如此一来, 这时头一个被创建的对象就会被归入垃圾回收所要处理的对象范畴。对象跟引用之间的关系就会持续一直到对象被回收。情况五如果创建的对象没有引用变量也是合法的。调用.out.方法将空字符串打印出来, 在这个操作完成之后, 该对象就会被当作可回收对象, 被列入到回收序列行列。延伸思考Java当中全都是依据值来传递参数, 在参数如果是对象这个情形下, 那么就类似引用的那种传递方式。class Test{ int i,j;void (Test a){ Test b new Test();b.i 1;b.j 2;a b;void (Test a ){ a.i 1;a.j 2;void main( argv){ Test t new Test();t.i 5;t.j 6;输出“t点i等于”加上t的i, “t点j等于”加上t的j这里要注意是5, 6t.(t);.out.(把t.i与t.i连接起来, 再把t.j与t.j连接起来);//5,6,a和t都指向了一个对象, 而在中s又指向了另一个对象, 所以对象t不变t.(t);输出t.i 加上t.i加上 t.j加上t.j//1,2。有关 JAVA 对象引用, 还涉及对象赋值, 参考自csdn官方网站。