当前位置:首页 > JAVA > 正文内容

java学习引用类型之强引用

高老师3年前 (2023-07-14)JAVA638

在Java中,强引用(Strong Reference)是最常见、默认的引用类型。它是一种正常的对象引用,如果一个对象具有强引用与之关联,那么即使内存紧张,垃圾回收器也不会回收该对象。

下面是使用强引用的示例:

public class StrongReferenceExample {
    public static void main(String[] args) {
        // 创建一个字符串对象,并用强引用进行关联
        String str = new String("Hello World");

        // 显示强引用的值
        System.out.println("Strong Reference: " + str);
    }
}

在这个示例中,我们创建了一个字符串对象,并使用强引用 str 与之关联。强引用可以通过变量 str 直接访问对象,而且只要 str 存在,垃圾回收器就不会回收被引用的字符串对象。

强引用的特点包括:

  • 强引用可以直接访问对象。
  • 强引用不会在内存充足的情况下被垃圾回收器回收。
  • 强引用可以避免对象被提前回收,但也可能导致内存泄漏问题。

需要注意的是,当一个对象不再被引用时,即没有任何强引用指向它时,它将成为垃圾回收的候选对象。然后,垃圾回收器将根据需要来确定何时回收这些对象以释放内存。

强引用是Java中最常用的引用类型,大多数情况下,我们使用的都是强引用。

强引用类型只有显式地设置o为null,或超出对象的生命周期范围(如非全局变量),则gc认为该对象不存在引用,这时就可以回收这个对象。

扫描二维码推送至手机访问。

版权声明:本文由高久峰个人博客发布,如需转载请注明出处。

本文链接:https://blog.20230611.cn/post/457.html

分享给朋友:

“java学习引用类型之强引用” 的相关文章

java一个类可以有多个构造方法

java一个类可以有多个构造方法

java一个类可以有多个构造方法,根据传参类型和个数来匹配执行哪个构造方法。public class Member {     public Member(){      ...

java final 修饰符,java通过final修饰符创建常量,,java通过final修饰符声明方法不可被修改

java final 修饰符,java通过final修饰符创建常量,,java通过final修饰符声明方法不可被修改

(1).final 修饰符通常和 static 修饰符一起使用来创建类常量。(2).父类中的 final 方法可以被子类继承,但是不能被子类重写,声明 final 方法的主要目的是防止该方法的内容被修改。public class Member {   ...

java匹配一个字符串在另外一个字符串中出现的次数,java正则start,java正则end

java匹配一个字符串在另外一个字符串中出现的次数,java正则start,java正则end

java匹配一个字符串在另外一个字符串中出现的次数,java正则start,java正则end// 正则 String pattern = "\\bgao\\b"; // 字符串 String content ...

java lookingAt匹配字符串和java matches匹配字符串,java正则replaceAll,java正则replaceFirst

java lookingAt匹配字符串和java matches匹配字符串,java正则replaceAll,java正则replaceFirst

(4).java lookingAt匹配字符串和java matches匹配字符串lookingAt不要求整个字符串全匹配,例如me和me_you都是匹配的,但是lookingAt从第一个字符串开始匹配,匹配失败了也不会继续匹配,意味着me和you_me是无法匹配的matches匹配字符串要求全部匹...

java正则appendReplacement方法和java正则appendTail

java正则appendReplacement方法和java正则appendTail

假如有个字符串为"fatcatfatcatfat",正则为“cat”当调用appendReplacement(sb, "dog")时appendReplacement方法都会把匹配到的内容替换为dog,并把匹配到字符串的前面几个字符串+dog送给sb里,所以第...

java 可变参数

java 可变参数

java 可变参数// 定义方法 public static int sum(int... number) {     int result = 0;  &nb...