你不知道的Java引用

  引用就是保存着一块地址(门牌号)的对象,就像C语言的指针那样,引用可以传递某个数据的地址,如果我们想拿到某一条数据,就要先找到他的地址,然后告诉计算机我去拿这个地址的数据,最后计算机就会去磁盘拿到我们要的数据。

  其实,在学Java的时候我们就知道了Java的类型可分为基本类型与引用类型
java基本类型有int,shout,long,float,double,byte,char,boolean;
java引用类型:除了基本类型基本都是,例如:对象,数组;
  但是我们不断的增加引用,就要不断的消耗内存空间,最后就容易内存溢出和泄漏,所以为了适应不同的场景,Java将引用分为强引用,弱引用,软引用,徐引用4种不同的类型方便垃圾回收,这样我们就知道那些引用什么时候你要用的,那些是不用准备回收的。总结一句话,Java引用分类的目的是为了对垃圾回收的进一步优化。

下面是对Java不同引用特点、使用场景的举例

graph LRA1(强引用)A2(特点)A3(回收)A4(使用场景)A21("1. 空间不回收")A22("2. 虚拟机抛出OutMemoryError也不回收")A31("1. 显示赋值为空")A32("2. 强引用转为软引用")A33("3. 方法局部强引用变量")A34("4. 方法栈退出引用不存在时")A41("1. 全局配置变量")A42("2. 方法栈局部变量")A43("2. 方法栈返回对象或强引用逃逸")A1---A2A2---A21A2---A22A1---A3A3---A31A3---A32A3---A33A3---A34A1---A4A4---A41A4---A42A4---A43

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zwdwgy.html