JAVA基础之引用

2021/4/13 22:25:10

本文主要是介绍JAVA基础之引用,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

用引用操纵对象

每种程序语言都有操纵元素的方法,根据元素的类型可以选择直接操纵元素或者以某种特殊的语法间接的来操作元素(例如C/C++中的指针),而在JAVA中,一切都视为对象,所以我们可以采用一种统一的语法即引用来操纵对象。
举个例子来说引用就像是一个遥控器而对象就是一个对象,通过这个遥控器(引用)我们就建立其了与电视机(对象)之间的连接。当我们想换台或者增减音量时,实际是操纵遥控器对电视机进行控制。

此外,就算没有电视机,遥控器也能单独存在,例如:

String s;

在这段代码中,只有引用,而没有对象。如果这时向s发送一个消息,那么就会出现错误。因为s此时还没有与任何事物进行关联。所以我们需要对他进行初始化。

String s=new String("afsg");

这样s与afsg这样一个字符串关联起来,s就是对这个字符串的引用。

对象和对象引用

很多人可能都分不清到底什么是对象什么是引用,让我们来进行分析,举个例子

Person person=new Person();

通常我们把这种语句称之为创建对象,我们可以把其拆分为两个部分

Person person;
person =new Person();

其中第一句就是创建一个对象的引用但是没有定义执行哪个对象,而第二句的new Person()就是穿件一个Person对象,然后使用=将对象引用指向这个对象,从而建立起连接。
我们在来卡你个例子

Person person;
person=new Person("张三");
person=new Person("李四");

在这里面,先让person指向张三这个对象,然后在让他指向李四这个对象,也就是说一个引用指向的对象是可以改变的。

引用的四种类型

引用存在四中类型,四种类型有着不同的引用强度,在JVM进行垃圾回收对象时,需要考虑对象的引用强度。
1、强引用
在代码中普遍使用的,person =new Person();这就是一种强引用,只要强引用还存在就不会被回收
2、软引用
是用来描述一些还有用但是非必须的对象,当空间充足时是不会回收该对象的,不足的时候会回收

person =new Person();
SoftReference sr=new SoftReference(person);

3、弱引用
用来描述非必须的对象。它类似软引用,但是强度比软引用更弱一些:弱引用具有更短的生命.GC在扫描的过程中,一旦发现只具有被弱引用关联的对象,都会回收掉被弱引用关联的对象。换言之,无论当前内存是否紧缺,GC都将回收被弱引用关联的对象

Person person=new Person();
WeakReference wr=new WeakReference(person);

4、虚引用
等同于没有应用,任何时候都可能被GC回收,,也无法通过虚引用来取得一个对象实例,设置这个引用的目的主要是被虚引用关联的对象在被垃圾回收器回收是能收到一个系统通知

ReferenceQueue queue=new ReferenceQueue();
PhantomReference pr=new PhantomReference(object.queue);


这篇关于JAVA基础之引用的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程