摘要:
使用jpackage 本次使用jdk16.0.1,在命令行输入命令jpackage xxx,可能会提醒需要安装的软件,下载安装即可 创建一个文件夹source-file(名字随意),把jar放进去,如果项目需要其他文件,也放进去,会被统一打包到exe/msi中 本次打包命令: jpackage -i 阅读全文
摘要:
引入lombok <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.16</version> </dependency> 代码中使用 在类上添加@Slf4j注 阅读全文
摘要:
定义Aspect @Aspect @Slf4j public class myaspect { @Pointcut("execution(* site.yalong.controller..*.*(..))") public void webLog() { } @Before("webLog()") 阅读全文
摘要:
类加载器有哪些 实现通过类的权限定名获取该类的二进制字节流的代码块叫做类加载器。 启动类加载器(Bootstrap ClassLoader)用来加载java核心类库,无法被java程序直接引用。 扩展类加载器(extensions class loader):它用来加载 Java 的扩展库。Java 阅读全文
摘要:
方式一 这种方式效率最高,先获取entrySet,然后遍历entrySet,可以同时拿到key和value 使用for循环不能删除元素,会报出ConcurrentModificationException,并发修改异常.如果要删除,可以改成生成器,使用**iterator.remove()**删除元 阅读全文
摘要:
注: 本文谈论的是基于JDK1.8版本 ArrayList的底层数据结构:数组。 LinkedList的底层数据结构:链表。既实现了List接口,又实现了Queue接口,在使用的时候,如果我们把它当作List,就获取List的引用,如果我们把它当作Queue,就获取Queue的引用 CopyOnWr 阅读全文
摘要:
双检锁/双重校验锁(DCL,即 double-checked locking) 这种方式是懒汉式加载,采用双锁机制,安全且在多线程情况下能保持高性能。 public class Singleton { // 关闭无参构造访问 private Singleton() { } // 要加上volatil 阅读全文
摘要:
相同类型比较 基本类型比较,基本数据类类型存的是数值本身,直接使用值比较 引用类型比较,引用类型变量在内存放的是数据的引用,使用地址比较 int 和 integer比较 会把integer转成int,然后进行值比较 integer和integer比较 -128~127 之间的数,会被缓存,超过这个范 阅读全文
摘要:
概念 用<T>等大写字母标识泛型类型,用于表示未知类型。 用<T extends ClassA & InterfaceB …>等标识有界泛型类型,用于表示有边界的未知类型。 用<?>标识通配符,用于表示实例化时的未知类型。 用<? extends 父类型>标识上边界通配符,用于表示实例化时可以确定父 阅读全文
摘要:
什么是逃逸分析(Escape Analysis) 是一种算法,用来分析某个对象(变量)是否会发生逃逸 通俗的讲,在 JIT 编译过程中,发现某个对象它的动态作用域仅在某个方法中,其他的方法无法访问到这个变量(方法逃逸),其他的线程无法访问到这个变量(线程逃逸),这个对象不是全局变量(全局逃逸),那么 阅读全文