强引用: 只要引用存在,垃圾回收器永远不会回收 Object obj = new Object(); //可直接通过obj取得对应的对象 如obj.equels(new Object()); 而这样 obj对象对后面new Object的一个强引用,只有当obj这个引用被释放之后,对象才会被释放掉,这也是我们经常所用到的编码形式。 软引用: 非必须引用,内存溢出之前进行回收,可以通过以下代码实现 Object obj = new Object(); SoftReference<Object> sf = new SoftReference<Object>(obj); obj = null; sf.get();//有时候会返回null 这时候sf是对obj的一个软引用,通过sf.get()方法可以取到这个对象,当然,当这个对象被标记为需要回收的对象时,则返回null; 软引用主要用户实现类似缓存的功能,在内存足够的情况下直接通过软引用取值,无需从繁忙的真实来源查询数据,提升速度;当内存不足时,自动删除这部分缓存数据,从真正的来源查询这些数据。 弱引用: 第二次垃圾回收时回收,可以通过如下代码实现 Object obj = new Object(); WeakReference<Object> wf = new WeakReference<Object>(obj); obj = null; wf.get();//有时候会返回null wf.isEnQueued();//返回是否被垃圾回收器标记为即将回收的垃圾 弱引用是在第二次垃圾回收时回收,短时间内通过弱引用取对应的数据,可以取到,当执行过第二次垃圾回收时,将返回null。 弱引用主要用于监控对象是否已经被垃圾回收器标记为即将回收的垃圾,可以通过弱引用的isEnQueued方法返回对象是否被垃圾回收器标记。 虚引用: 垃圾回收时回收,无法通过引用取到对象值,可以通过如下代码实现 Object obj = new Object(); PhantomReference<Object> pf = new PhantomReference<Object>(obj); obj=null; pf.get();//永远返回null pf.isEnQueued();//返回是否从内存中已经删除 虚引用是每次垃圾回收的时候都会被回收,通过虚引用的get方法永远获取到的数据为null,因此也被成为幽灵引用。 虚引用主要用于检测对象是否已经从内存中删除。
引至:https://www.cnblogs.com/yw-ah/p/5830458.html
相关推荐
java四大引用 四大引用设计作用 强引用 软引用 弱引用 虚引用 java四大引用 java有四种引用类型:强引用、软引用、弱引用、虚引用 四大引用设计作用 因为java的内存分配和内存回收,都是由JVM去负责,一个对象...
Java中的四种引用类型是强引用(StrongReference)、软引用(SoftReference)、弱引用(WeakReference)和虚引用(PhantomReference),它们各自有着不同的特点和用途,主要用于内存管理和防止内存泄漏。 1. 强引用...
Java语言中的数据类型可以分为四大类:逻辑类型、字符类型、整数类型和浮点类型。逻辑类型包括boolean类型,用于表示逻辑值true或false。字符类型包括char类型,用于表示单个字符。整数类型包括byte、short、int和...
Java还引入了枚举类型,它也是引用类型的一种。 类型转换是Java中常见的概念,分为隐式(自动)类型转换和显式(强制)类型转换。在进行类型转换时,需要特别注意不同数据类型的大小范围和精度,例如将double类型的...
2. Java基础语法:包括数据类型(基本类型和引用类型)、变量、运算符、控制流程语句(if-else, switch, for, while等)、方法定义、类与对象的创建和使用等。 3. 面向对象编程(OOP):Java是一种面向对象的编程...
`int` 是Java中的基本数据类型之一,而 `Integer` 是 `int` 类型的包装类,即引用类型。它们之间的主要区别在于: - **存储方式**:`int` 直接存储数值,而 `Integer` 存储的是指向包含数值的对象的引用。 - **使用...
4. **数据类型的默认值**:Java中有两种数据类型,基本类型和引用类型。基本类型(如int、char、boolean)在未初始化时会有默认值,例如int默认为0,boolean默认为false,而引用类型(如类、接口、数组)默认值为...
在Java基础类型中,String不是一个基本类型,它是一个引用类型,属于不可变的字符序列。Java的基本数据类型包括整型的byte、short、int和long,浮点型的float和double,单个字符型的char,以及布尔型的boolean。引用...
面试题中涉及到的Java面向对象的四大特征是: 1. **抽象**:抽象是通过构建类来概括一类对象的共同特征,包括数据抽象和行为抽象。它关注对象的一般属性和行为,而不涉及具体实现细节。 2. **继承**:继承使得子类...
1. **变量与数据类型**:Java中有两种主要的数据类型——基本类型和引用类型。基本类型包括整型(如int)、浮点型(如float、double)、字符型(char)和布尔型(boolean)。引用类型则包括类(class)、接口...
通过以上分析,我们可以了解到Java中面向对象的基本概念及其重要性,同时也掌握了访问修饰符的使用规则、基本数据类型与引用类型的区别,以及数据类型转换和保留字的概念。这些知识对于深入理解Java语言和编写高质量...
- Java中基本类型与引用类型的区别主要在于存储方式和操作对象的不同,基本类型直接存储值,而引用类型存储的是对象的引用地址。 - Java集合框架中的List、Set和Map接口的区别及其典型实现如ArrayList、LinkedList...
首先,面试问题合集和整理的资料包含了大量Java的基础知识,例如面向对象编程概念(类、对象、封装、继承、多态),数据类型(基本类型与引用类型)、运算符、流程控制(if、switch、for、while)、数组、字符串操作...
本章深入讲解Java的基础语法,包括数据类型(如基本类型和引用类型)、变量、常量、运算符、流程控制语句(如if条件语句、switch选择语句、循环for、while、do-while等)以及方法的定义与调用。 第三章:类与对象 ...
1. **基础概念**:包括变量、数据类型(基本类型如int、char,引用类型如类、接口)、运算符、流程控制(条件语句、循环语句)、异常处理。 2. **面向对象编程**:类、对象、封装、继承、多态是OOP的四大特征。Java...
首先,Java的基础部分包括语法特性,如数据类型(基本类型和引用类型)、变量、运算符、流程控制(条件语句与循环语句)、函数和类的定义。理解面向对象编程是Java的核心,包括封装、继承和多态。此外,异常处理、...
而String类属于引用类型,不是基本数据类型。Java中的String对象一旦创建则不可更改,如需更改字符串内容,则必须创建新的String对象。相对而言,StringBuffer类提供了可修改的字符串对象,适用于需要频繁修改字符串...
基本数据类型是Java中的基础构建块,分为四大类:逻辑类型、整数类型、字符类型和浮点类型。逻辑类型`boolean`只有两个值:`true`和`false`。整数类型包括`byte`、`short`、`int`和`long`,它们分别占据1、2、4和8个...
8. Java数据类型及常量:Java提供多种数据类型,分为基本类型和引用类型。基本类型包括整型、浮点型、字符型和布尔型,它们在内存中拥有固定的存储空间。常量是不可变的量,如整型常量、浮点常量、字符常量和字符串...