解决方案 »
- 帮忙看看,谢谢咯
- ### 【光荣榜】感谢 kokobox 一段时间以来对Java版的共享,奖励专家分200
- 连接SQLServer时需要导入什么包?
- 输入输出简单问题请求大家的答案...
- 如何关闭打开的所有interframe或者选种的一个
- 有研究入侵检测的朋友吗
- java里面有没有这样一个方法阿???
- 让JBuilder有XP的风格
- 为什么我的Mysql不能进行数据查询
- exception in thread "main" java.lang.NoClassDeffoundError:FindMax/class出现这种错误提示,我错在哪呢?
- 一个关于JAVA 直接调用.js 文件的问题。
- java多个线程是共享同一个对象的方法??(多线程的局部变量)
同一个类被两个不同的ClassLoader加载的话,对于java虚拟机来说实际上认为是两个类。
2、既然设计成单例的,那就不应该实现Serializable接口。其实说的这两个问题都是人为故意破坏程序的设计,程序不管怎么设计,都总是有问题的。
不是有人说,从helloword程序中都能找到bug吗?没有十全十美的设计,比如说设计一个汽车,驾驶员硬是要往水里开,那能怪汽车设计人员说为什么不设计成禁止往水里开?
2、关于Classloader对于单例的冲突,大多数时候,多Classloader并不会造成所谓的单例模式冲突,因为觉得大多数的时候Classloader不会自己去实现,而默认实现都是有父子层级关系的(有关Classloader的类加载机制可以自己去查),因此加载的类几乎都在同一个域中,所以绝大多数情况不存在同一个类装载不同域的特殊情况。
3、关于序列化是否会造成单例模式冲突,那么还是第一个观点的问解释,反序列化生成对象是无法阻止的,但是对应的你也可以用其它方式来完成单例模式的设计来规避这种风险,这只是具体实现的问题,问题在于你如何处理你所给定范围中设计的正确执行。
创建对象的方式有很多种,普通的单例只是防止通过new的方式产生第二实例。
Unsafe只能在hotspot上用,不靠谱,早已舍弃
Unsafe只能在hotspot上用,不靠谱,早已舍弃
Unsafe不是Java规范包,因此不再考虑范围内,而且在1.7以后似乎已经弃用,非sun版本jdk也没这个玩意。
Unsafe只能在hotspot上用,不靠谱,早已舍弃
Unsafe不是Java规范包,因此不再考虑范围内,而且在1.7以后似乎已经弃用,非sun版本jdk也没这个玩意。
java8可用且功能更强大,但还是不建议用