
Java
Kenny走码观花
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Java中的static关键字整理
特点: 被static修饰的方法或变量在内存中只有一个副本,被所有对象共享。 不依赖于任何对象就可以进行访问。 使用 static变量 当且仅当类加载时被初始化 初始化顺序按照定义的顺序初始化 static方法 不能访问非静态成员变量和非静态成员方法 main方法 程序在执行main方法是没有创建任何对象,因此只有通过类名访问 静态方法与实例方法区别: (1)Java中“静态”有...原创 2018-07-01 19:54:36 · 265 阅读 · 0 评论 -
利用反射机制破坏单例(1)
前言 今天突然有个想法,既然单例类通过私有化构造函数来实现单例,而java中通过反射可以获取类中任意的属性和方法,那么可以利用java反射机制获取单例类的私有构造函数来实例化对象,从而获取到新的对象。下面用代码进行实践。 代码实现 单例类 Singleton : public class Singleton { private static Singleton singleton ...原创 2018-08-02 16:21:24 · 849 阅读 · 0 评论 -
利用反射机制破坏单例(2)
前言 在博客上看到一篇《防止单例模式被JAVA反射攻击》的文章,通过一个静态布尔变量记录下单例类是否是第一次初始化,然后在构造函数内抛出异常来防止反射破坏。看起来合情合理,但细想,通过反射来修改那个静态变量,再调用构造函数进行实例化,同样可以破坏。按照上面的原理,我换了另一种方式实现单例类,并进行破坏。下面进行代码演示。 代码实现 单例类: public class Singleton...原创 2018-08-03 15:19:29 · 721 阅读 · 0 评论