目前,互联网上 Java 的
2025年07月09日
这篇文章是之前学习Arthas和jvm-sandbox的一些心得和总结,希望能帮助到大家。本文字较多,可以根据目录进行对应的阅读。
2025年07月09日
fastjson大家一定都不陌生,这是阿里巴巴的开源一个JSON解析库,通常被用于将Java Bean和JSON 字符串之间进行转换。
前段时间,fastjson被爆出过多次存在漏洞,很多文章报道了这件事儿,并且给出了升级建议。
但是作为一个开发者,我更关注的是他为什么会频繁被爆漏洞?于是我带着疑惑,去看了下fastjson的releaseNote以及部分源代码。
最终发现,这其实和fastjson中的一个AutoType特性有关。
从2019年7月份发布的v1.2.59一直到2020年6月份发布的 v1.2.71 ,每个版本的升级中都有关于AutoType的升级。
2025年07月09日
在技术日新月异的今天,真正应该花费时间学习的是那些不变的编程思想,今天我们来接着上一篇文章来聊一下锁思想,我们上一篇”读写锁“详细的分析了读写锁解决线程饥饿的思想。那么今天我们再来聊另一个思想: 自旋。
提到自旋锁,很多Java开发者第一时间可能会想到CAS,因为CAS 其实是面试中的常客,而且在底层原理和我们实际应用中也是比较常出现的一种思想。比如: ConcurrentHashMap,原子类,Mysql乐观锁的实现等,我们接下来会详细的探讨。为了能说明问题,我们从以下几个问题由浅入深的来一一解答一下,在看之前自己也多思考思考为什么。
2025年07月09日
来源于万猫学社 ,
作者程绪源
类加载器简介
在介绍双亲委托模型之前,先介绍一下类加载器。类加载器通过一个类的全限定名来转换为描述这个类的二进制字节流。
对于任意一个类,被同一个类加载器加载后都是唯一的,但如果被不同加载器加载后,就不是唯一的了。即使是源于同一个Class文件、被同一个JVM加载,只要加载类的加载器不同,那么类就不同。
2025年07月09日
1.升级动因
oOracle长期支持策略
o现代特性需求:协程、模式匹配、ZGC等
o安全性与性能的需求
oAI新技术引入的版本要求
2025年07月09日
类加载的基本机制和过程
运行Java程序,就是执行java这个命令,指定包含main方法的完整类名,以及一个classpath,即类路径。类路径可以有多个,对于直接的class文件,路径是class文件的根目录,对于jar包,路径是jar包的完整名称(包括路径和jar包名)。
Java运行时,会根据类的完全限定名寻找并加载类,寻找的方式基本就是在系统类和指定的类路径中寻找,如果是class文件的根目录,则直接查看是否有对应的子目录及文件;如果是jar文件,则首先在内存中解压文件,然后再查看是否有对应的类。
2025年07月09日
最近在 Kotlin 项目中发现,定义的 data class(成员变量都声明不可控)经过在 Gson 解析后,可以得到成员变量为空的对象,而不是得到解析失败,那么就很容易造成后续代码的非预期运行,因为成员变量都按不可空的情况来处理,最终喜提 NullPointerException。