静态内部类在java的单例用法

2026-01-29 0 18,814

我们对于线程的应用时,一直都在寻找能够安全运行的方法。而java内部类中,有一种方法就可以实现单例的安全,那就是静态内部类的存在。在声明上有static的出现,对于外部类的引用方面比较不容易出现问题。下面我们就静态内部类的概念、特点与普通内部类区别逐个介绍,然后展示创建单例线程的用法实例。

1.概念

又叫嵌套类,在成员内部类前面加了static。声明为static的类不会持有外部类的引用,可以通过软引用的方式保存外部类的了引用,只有静态内部类不可能造成内存泄漏。

2.特点

1)静态内部类中可以声明静态变量,非静态内部类中不可以。

2)静态内部类不可以使用外部类的非静态成员变量。

3)创建静态内部类对象,不需要其外部类对象引用。

3.和普通内部类的区别

1)普通内部类对象隐式地保存了一个引用,指向创建它的外部类对象。而嵌套类创建对象,并不需要外部类对象。

2)不能从嵌套类的对象中访问非静态的外部类对象。

3)普通内部类不能有static数据和static字段,也不能包含嵌套类,但是嵌套类可以包含所有这些东西。

4.实例

静态内部类一个很好的用途是,用来创建线程安全的单例模式:

public class Singleton {  
    private static class SingletonHolder {  
        private static final Singleton INSTANCE = new Singleton();  
    }  
    private Singleton (){}  
    public static final Singleton getInstance() {  
        return SingletonHolder.INSTANCE; 
    }  
}

以上就是静态内部类在java的单例用法,可以说由于静态内部类本身用法的特性,保证了线程创建的安全。大家有线程创建需求时,可以选择静态内部的方法。

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:以上部本文内容由互联网用户自发贡献,本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。投诉邮箱:3758217903@qq.com

ZhiUp资源网 java教程 静态内部类在java的单例用法 https://www.zhiup.top/10970.html

相关