首页文章正文

静态内部类实现单例,静态内部类和内部类的区别

静态内部类什么时候加载 2023-12-08 20:12 925 墨鱼
静态内部类什么时候加载

静态内部类实现单例,静态内部类和内部类的区别

静态内部类实现单例,静态内部类和内部类的区别

静态内部类实现单例模式。静态内部类和非静态内部类有一个最大的区别。我们知道,非静态内部类在编译完成后会隐式保存一个引用。这个引用很简单,java项目中包含注释,没有明确的说明。它包含了单例模式的所有实现方法,包括lazystyle、hungrystyle、双重验证、枚举、静态nerclass和其他方法来实现单例。 Java静态实现单例模式

SostaticSingletoninstance=newSingleton();仅当第一次调用时才是新的。 此后获得的所有对象都是第一次执行的对象。 所以它被称为单身人士。 还可以用老的写法,对比静态代码块和静态内部类的加载顺序:当调用外部类的构造函数时,会同时加载外部类的静态代码块,但其内部类不会同时加载;当且仅当内部类的静态字段或其构造函数时

静态内部类不会随着外部类的加载和初始化而初始化。它必须单独加载和初始化,因为它是在内部类加载和初始化时创建的。因此,它是线程安全的,因为jdki在加载类时是线程化的。 5.静态内部类实现单例。使用静态内部类实现的单例本质上是惰性的,因为静态内部类不会在LazyHolder.LAZY语句ingetInstance执行之前加载。 此方法避免了饥饿的中国单身人士的内容

System.out.println("Staticinnerclass:+PrimaryGenerater.getInstance().generatorNextNumber("GD")+""+Thread.currentThread().getName());System.out.println("Staticinnerclass:+Primar因此,static内部类实现的是单例模式,因为第一种情况触发了getstatic方法 ,即访问了类的静态成员变量,此时触发了内部类的初始化。至此,Q2的答案就完成了。线程安全的虚拟机会有保证

静态内部类单例是线程安全的单例实现,利用Java的类加载机制来实现单例模式。 其实现思路是将单例实例放在静态内部类中,并在第一次调用单例静态内部类,从而实现单例线程安全、调用效率高、延迟加载。使用内部类的好处是,静态内部类不会在单例加载时加载,而是在调用getInstance()方法时加载。

后台-插件-广告管理-内容页尾部广告(手机)

标签: 静态内部类和内部类的区别

发表评论

评论列表

黑豹加速器 Copyright @ 2011-2022 All Rights Reserved. 版权所有 备案号:京ICP1234567-2号