Java 中的这个绝对值有点不绝对啊!

12 月 24 日
阅读 5 分钟
41
如果你的结论是 true,那么恭喜你,你掉入到绝对值不绝对的坑里面了。这个方法输出的结果有可能是 true,但是也有可能是 false。比如下面的调用代码将分别输出 true,true,true , false,如下图所示:
封面图

Windows 10 下编译 64 位 OpenJDK 8 并单步调试

12 月 15 日
阅读 11 分钟
88
Windows 10 下编译 64 位 OpenJDK 8软件版本操作系统:Windows 10Cygwin:3.5.4-1Visual Studio:2010 英文版 freetype: 2.7Boot JDK:7编译的 OpenJDK 版本:8安装 boot JDK从下载链接下载 JDK,然后在 Windows 上安装。安装完成后配置 JAVE_HOME 环境变量,如下图所示:在已有的 Path 环境变量加入 %JAVA_HOME%\bin ,...
封面图

哪里有 class 告诉我?

12 月 11 日
阅读 7 分钟
70
Java 程序可以通过CLASSPATH 环境变量,JVM 启动参数 -cp 或者 -classpath 指定用户需要加载的类的路径。这两个配置的优先级从低到高,后面的配置会覆盖前面的配置,默认值是「.」,即当前路径。
封面图

一个 Bug JDK 居然改了十年?

12 月 3 日
阅读 6 分钟
88
问题现象今天偶然看到了一个 JDK 的 Bug,给大家分享一下。假设现在有如下的代码: {代码...} 上面的代码是可以正常支执行的,如下图所示:修改代码为如下代码: {代码...} 再次执行代码,结果就会抛出 ArrayStoreException 异常,这个异常表明这里并不能把一个 Integer 类型的对象存放到这个数组里面。如下图所示:查看...
封面图

Java 泛型详细解析

11 月 30 日
阅读 12 分钟
161
实际使用的时候就可以给这个 T 指定任何实际的类型,比如下面所示,就指定了实际类型为 LocalDate,泛型给了我们一个错觉就是通过个这个模板类 Pair<T>,我们可以在实际使用的时候动态的派生出各种实际的类型,比如这里的 Pair<LocalDate> 类。
封面图

一次 Spring 扫描 @Component 注解修饰的类坑

9 月 28 日
阅读 2 分钟
155
之前遇到过一个问题,在一个微服务的目录下有相同功能 jar 包的两个不同的版本,其中一个版本里面的类有 @Component 注解,另外一个版本的类里面没有 @Component 注解,且按照加载的顺序,没有 @Component 注解的 jar 包顺序还在前面,如下图所示:

Java中SPI机制原理解析

7 月 21 日
阅读 3 分钟
251
加载MySQL对JDBC的Driver接口实现在未使用SPI机制之前,使用JDBC操作数据库的时候,一般会写如下的代码: {代码...} 在使用了SPI机制之后,就直接可以调用DriverManager.getConnection()方法获取连接了。

Java中的NoClassDefFoundError报错解析

2023-11-06
阅读 3 分钟
763
半夜睡得正香的时候,突然接到警告电话,于是翻起身就打卡电脑连上环境查看是什么情况?登录上之后发现有个微服务占用的句柄数量一直在持续上涨,最终导致了微服务内存溢出挂掉了。这个微服务在运行的过程中会建立SSH连接,且之前这个微服务已经遇到过很多次类似的情况了,因此第一反应是哪里建立的连接又没有关闭。