07 2024 档案
摘要:困境 泛型不可能三角 泛型困境的本质是,关于泛型,你想要缓慢的程序员、缓慢的编译器和臃肿的二进制文件,还是缓慢的执行时间。简单来说就是:要么苦了程序员,要么苦了编绎器,要么降低运行时效率。 不同语言对泛型的考量 以C、C++和Java为例,它们在泛型的设计上有着不同考量: C语言:是系统级的编程语言
阅读全文
摘要:把依赖包放入lib/目录,再启动添加JVM参数loader.path eg: /jdk-21.0.1/bin/java -Dloader.path=lib/ -jar app.jar
阅读全文
摘要:环境 windows、graalvm(内置有JDK,可以不用再单独下载jdk了) 项目pom.xml ... <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</ar
阅读全文
摘要:介绍 AES(高级加密标准,Advanced Encryption Standard)是一种广泛使用的对称密钥加密算法,由比利时密码学家Vincent Rijmen和Joan Daemen设计,他们设计的算法最初被称为Rijndael。AES于2001年被美国国家标准与技术研究院(NIST)选为官方
阅读全文
摘要:import java.util.concurrent.Flow; import java.util.concurrent.Flow.Publisher; import java.util.concurrent.Flow.Subscriber; public class ReactiveExampl
阅读全文
摘要:public class FileZipUtil { public static void unzip(String zipFilePath, String destDir) throws IOException { File dir = new File(destDir); if (!dir.ex
阅读全文
摘要:引入依赖 <dependency> <groupId>jakarta.mail</groupId> <artifactId>jakarta.mail-api</artifactId> </dependency> <dependency> <groupId>org.springframework</g
阅读全文
摘要:<repositories> <repository> <id>spring-milestones</id> <name>Spring Milestones</name> <url>https://repo.spring.io/milestone</url> <snapshots> <enabled
阅读全文
摘要:定义 public class MyClass<T> { private Class<T> clazz; public MyClass() { Type type = this.getClass().getGenericSuperclass(); if (type instanceof Parame
阅读全文
摘要:默认情况下,打出来的jar包都是给其他项目依赖的。如果本身该jar要独立运行,则需要打包成executable jar jar --create --file App.jar --main-class com.example.App -C build . App.jar: jar包名 com.exa
阅读全文
摘要:引言 java里,json框架何其多,常见的有jackson、fastjson、gson等。各自的api互不相通,与代码耦合度高,切换json库的代码修改工作量非常大。如果使用json的api为统一的入口,各家再进行实现,代码与实现类不耦合,像slf4j一样,切换log框架(log4j/logbac
阅读全文