
单例
zl1zl2zl3
这个作者很懒,什么都没留下…
展开
-
关于“如何破坏单例“我说了好几种方式,面试官却说:我其实随便问问,没想到你真会
单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。是一种创建型设计模式。他的定义为:保证一个类仅有一个实例,并提供一个访问它的全局访问点。单例模式一般体现在类声明中,单例的类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。但是其实,单例并不是完完全全安全的,也是有可能被破坏的。以下,是一次面试现场的还原,之所以会聊到这个话题,是因为面试官问了我很多关于单例模式的问题,我回答的还可以,之转载 2020-05-22 10:46:47 · 729 阅读 · 1 评论 -
单例模式反射、序列化漏洞及解决方案!
使用反射技术来获取不同的实例,以下是一个简单的饿汉式的单例模式的代码实现:当我们需要获取Singleton对象的时候,直接调用静态方法getInstance就可以了:但是学过反射的人都知道,通过反射技术也能获取到一个类的实例对象,即使它的构造函数时私有化的,我们也可以通过暴力访问来调用其构造函数,所以以上测试类的运行结果为:可以看出通过调用getInstance方法获...转载 2020-04-02 22:03:06 · 357 阅读 · 1 评论 -
面试官:不使用synchronized和lock,如何实现一个线程安全的单例?
单例,大家肯定都不陌生,这是Java中很重要的一个设计模式。稍微了解一点单例的朋友也都知道实现单例是要考虑并发问题的,一般情况下,我们都会使用synchronized来保证线程安全。那么,如果有这样一道面试题:不使用synchronized和lock,如何实现一个线程安全的单例? 你该如何回答?C类应聘者:可以使用饿汉模式实现单例。如:publicclassSingleton{...转载 2019-04-27 09:45:52 · 1026 阅读 · 1 评论