JAVA 几种引用类型学习】的更多相关文章

1.对象的强.软.弱和虚引用    在JDK 1.2以前的版本中,若一个对象不被任何变量引用,那么程序就无法再使用这个对象.也就是说,只有对象处于可触及(reachable)状态,程序才能使用它.从JDK 1.2版本开始,把对象的引用分为4种级别,从而使程序能更加灵活地控制对象的生命周期.这4种级别由高到低依次为:强引用.软引用.弱引用和虚引用. 图1为对象应用类层次1)强引用(StrongReference)    强引用是使用最普遍的引用.如果一个对象具有强引用,那垃圾回收器绝不会回收它.当…
每种编程语言都有自己操作内存中元素的方式,例如在 C 和 C++ 里是通过指针,而在 Java 中则是通过“引用”.在 Java 中一切都被视为了对象,但是我们操作的标识符实际上是对象的一个引用(reference). //创建一个引用,引用可以独立存在,并不一定需要与一个对象关联 String s; 通过将这个叫“引用”的标识符指向某个对象,之后便可以通过这个引用来实现操作对象了. String str = new String("abc"); System.out.println(…
纸上得来终觉浅,绝知此事要躬行  --陆游    问渠那得清如许,为有源头活水来  --朱熹 Java从1.2版本开始引入了4种引用,这四种引用的级别由高到低依次为:强引用>软引用>弱引用>虚引用. 一.强引用(StrongReference):         强引用是使用最普遍的引用,一般我们将对象初始化之后就是一个强引用.当一个对象具有强引用时,JVM不会对它进行垃圾回收.当内存不足时,宁愿抛出OutofMemoryError,让程序异常终止,也不会回收强引用. 二.软引用(Sof…
一.3大类设计模式:创建型,结构型,行为型. a.5种创建型模式:工厂方法,抽象工厂,单例,建造者,原型. b.7种结构型模式:适配器,装饰器,代理,外观,桥接,组合,享元. c.11种行为型模式:策略,模板方法,观察者,迭代子,责任链,命令,备忘录, 状态,访问者,中介者,解释器. 注意:除上述3大类外,还有另2类设计模式:并发型,线程池. 二.设计模式6大原则:开闭,里氏代换,依赖倒转,接口隔离,迪米特(最少知道),合成复用. a.开闭:对拓展开发,对修改关闭.程序进行拓展时,不能修改原有的…
1. 强引用 new 一个对象的时候,就是强引用 Object object = new Object(); 只要强引用存在,垃圾回收就不会回收该对象,内存不足时会抛出OOM. 2. 软引用 定义:非必须,但仍有用的对象.内存不足时才会回收. 软引用的使用 Object object = new Object(); SoftReference<Object> softReference = new SoftReference<>(object) 应用场景:缓存 3. 弱引用 定义:…
关于java四种引用类型,我也是刚了解,特此记下! 在Java中提供了四个级别的引用:强引用,软引用,弱引用和虚引用.在这四个引用类型中,只有强引用FinalReference类是包内可见,其他三种引用类型均为public,可以在应用程序中直接使用.引用类型的类结构如图所示. 1.强引用 Java中的引用,类似C语言中最难的指针.(我是C语言入门编程,指针的概念还是很深入我心.)通过引用,可以对堆中的对象进行操作.如: StringBuffer stringBuffer = new String…
一.前言 JDK1.2以前只提供一种引用类型——强引用 Object obj = new Object(); .而JDK1.2后我们多另外的三个选择分别是软引用 java.lang.ref.SoftReference .弱引用 java.lang.ref.WeakReference 和虚引用 java.lang.ref.PhantomReference .下面将记录对它们和相关连的引用队列 java.lang.ref.ReferenceQueue 和 java.util.WeakHashMap …
java中四种引用类型  今天看代码,里面有一个类java.lang.ref.SoftReference把小弟弄神了,试想一下,接触java已经有3年了哇,连lang包下面的类都不了解,怎么混.后来在网上查资料,感觉收获颇多,现记录如下. 对象的强.软.弱和虚引用 在JDK 1.2以前的版本中,若一个对象不被任何变量引用,那么程序就无法再使用这个对象.也就是说,只有对象处于可触及(reachable)状态,程序才能使用它.从JDK 1.2版本开始,把对象的引用分为4种级别,从而使程序能更加灵活地…
Java四种引用--<深入理解Java虚拟机>学习笔记及个人理解(四) 书上P65. StrongReference(强引用) 类似Object obj = new Object() 这类的引用 就是强引用. SoftReference(软引用) 用来描述一些有用但并非必需的对象. 在系统将要发生内存溢出异常前, 将会把这些对象列进回收范围之中, 进行二次回收.(如果这次回收了之后, 内存还是不足, 那么就会抛出内存溢出异常) 执行下面这段代码的时候, 设置一下虚拟机参数-Xms2m -Xmx…
先说结论: 首先,Java中有四种引用类型:强引用.软引用.弱引用.虚引用.-- 在 Java 1.2 中添加的,见 package java.lang.ref; . 其次,这几个概念是与垃圾回收有关的. 然后,如果你不知道这几个概念,那你用的肯定都是强引用.例如 String str = new String(); 这个 str 到 new String() 的引用类型就是强引用. 那么弱引用是什么? 弱引用,就是引用与对象之间的联系很弱,弱到垃圾回收器会无视这个引用,直接回收对象. 软引用与…