java
文章平均质量分 52
看山也看水
这个作者很懒,什么都没留下…
展开
-
怎么防止反射、序列化问题,实现一个完美的单例?
1、编码实现的单例静态内部类方式(JVM类加载实现)public class Singleton { private Singleton() {} private static class SingleTonHolder { static final Singleton INSTANCE = new Singleton(); } // 调用 getInstance 方法,才获取加载 SingleTonHolder,JVM保证只会有一个线程对类进行加载原创 2021-04-22 18:05:28 · 215 阅读 · 0 评论 -
都是类找不到,ClassNotFoundException和NoClassDefFoundError有什么区别?
在开发部署时,启动出现了这个问题。有java.lang.NoClassDefFoundError 和 java.lang.ClassNotFoundException ,看名字都大概是类找不到,那他们它们有什么区别?ClassNotFoundExceptionClassNotFoundException 从后缀可以看出是Exception 的子类。javadoc说明:当应用程序尝试使用其字符串名称通过其字符串名称加载类时抛出,但是找不到指定类名对应的类定义,包括1、Class 的 forName原创 2021-04-12 11:33:29 · 121 阅读 · 0 评论 -
HashMap遍历顺序在JDK7和JDK8中的不同
起源于看到一篇文章HashMap的为啥用尾插法?HashMap使用存储对象的hash值来确定在hash表中的存放位置,会遇到hash冲突的情况,即两个不同的对象所计算的hash值相同。JDK7使用链表结构解决hash冲突,JDK8使用链表和红黑树(只有冲突的hash链表长度大于8且hash表长度大于64才会转化)解决hash冲突。虽然相同点都是使用了链表来解决冲突,但是链表插入数据的方法却不同。JDK7使用了头插法,即对象添加都链表的头部;JDK8使用了尾插发,对象添加到链表的尾部。HashMap的遍原创 2021-03-31 09:35:54 · 335 阅读 · 0 评论 -
java security
查看@Bean(destroyMethod="xxx")等同于DisposableBean的destroy(),用于bean销毁后的后置操作。查看相关调用,发现DisposableBeanAdapter 中调用if (System.getSecurityManager() != null) { AccessController.doPrivileged((PrivilegedExceptionAction<Object>) () -> { ((DisposableB原创 2021-03-26 13:56:49 · 576 阅读 · 0 评论 -
关于 String
String是java中常用的类之一,属于不可变的类。java规范中对String类型也进行了特殊的处理。先从例子开始:String str = "kanshan";String str1 = "kan" + "shan"; //1String prefix= "kan"; String str2 = prefix + "shan"; //2System.out.println(str == str1);System.out.println(str == str2);结果为:原创 2020-11-26 22:30:57 · 82 阅读 · 0 评论 -
Configuration Full模式与Lite模式
Configuration Full模式与Lite模式原创 2020-11-26 20:55:09 · 503 阅读 · 0 评论