有人在jdk源码里下毒【class.newInstance() bug复现】

article/2025/9/21 1:15:02

在这里插入图片描述

如图
在这里插入图片描述
在用反射的时候,发现这个方法被idea划横杠了

稍加思索后发现是这方法从jdk9开始弃用了,倒不影响使用,对象还是能正常射出来,就是看着很难受

(最近刚把本地开发机从8升到11,难怪)
在这里插入图片描述
说下我自己对文档的理解

三个重点:

  • 弃用时间:从jdk9开始;
  • 弃用原因:以前的newInstance()有bug,异常抓不到,bug后面会演示;
  • 替代方法:clazz.getDeclaredConstructor().newInstance(),通过把构造方法中的所有异常装进InvocationTargetException来避免异常逃逸;

bug复现:

随便来个类

public class InstanceTest {public InstanceTest() {System.out.println("this is noArgsConstructor");throw new RuntimeException("make a exception");}public static void main(String[] args) {try {InstanceTest instance = InstanceTest.class.newInstance();} catch (InstantiationException e) {System.out.println("catch InstantiationException:" + e.getMessage());} catch (IllegalAccessException e) {System.out.println("catch IllegalAccessException:" + e.getMessage());}}
}

润一下
在这里插入图片描述
一片红,看吧,我们抛的运行时异常没被吃掉

再来润一润新款 class.getDeclaredConstructor().newInstance();
在这里插入图片描述
成功吃掉

不要好奇,注释中说了,所有异常都会被包进 InvocationTargetException


又是一个平平无奇的小知识点送给大家

ok我话说完


http://chatgpt.dhexx.cn/article/x0K9ZsWN.shtml

相关文章

红黑树理解以及Java实现

红黑树本身并不复杂,只是在插入删除的时候情况比较多,如果强行记忆的话会显得比较困难,而且容易忘记。所以以前对红黑树一直没有很好的掌握。恰好这次借着复习数据结构的机会,静下心来仔细的学习了一下红黑树,并用Java…

Java 9 vs Java 8:引入模块化和JShell的全面升级

Java 9 是 Java 语言的一个重大版本升级,带来了许多新的特性和改进。 在本篇博客中,我将为您介绍 Java 9 的一些重要特性。 🏅 欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正! 目录 一、模块化二、JShell三…

HashMap 在 JDK 1.8 后新增的红黑树结构

读完本文你将了解到: 点击查看 Java 集合框架深入理解 系列 - - 乾杯传统 HashMap 的缺点HashMap 在 JDK 18 中新增的数据结构 红黑树HashMap 中关于红黑树的三个关键参数HashMap 在 JDK 18 中新增的操作桶的树形化 treeifyBinHashMap 在 JDK 18 中新增的操作 红黑树…

epoll底层红黑树使用部分源码剖析:为什么使用红黑树以及如何使用红黑树

我们知道epoll的底层使用了红黑树来管理文件描述符,为什么会选择红黑树这种结构呢? 以下是个人理解: epoll和poll的一个很大的区别在于,poll每次调用时都会存在一个将pollfd结构体数组中的每个结构体元素从用户态向内核态中的一…

HashMap在jdk1.8为何引入了红黑树?

原创不易,麻烦点个关注,点个赞,谢谢各位。 二叉查找树 二叉查找树,也称有序二叉树(ordered binary tree),或已排序二叉树(sorted binary tree),是指一棵空树或者具有下列性质的二叉树: 若任意节点的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若任…

从电路的角度理解特征阻抗

传输显得特征阻抗不是真实的电阻,微波技术课程会从波的角度描述特征阻抗,这次试图从电路的角度来理解 无损传输线是分布的L C 网络,假设是无限长传输线 从a,b两点看入的阻抗是相等的,所以可以简化成下图: 化简可得 这…

同轴电缆阻抗总结(电阻、阻抗、特性阻抗)

文章目录 同轴电缆电阻、阻抗、特性阻抗电阻阻抗(Impedance)特性阻抗 总结 同轴电缆 同轴电缆是一种电线及信号传输线,一般是由四层物料造成:最内里是一条导电铜线,线的外面有一层塑胶(作绝缘体、电介质之…

传输线阻抗方程的推导

在传输线理论中,当一段特征阻抗为 Z 0 Z_0 Z0​ 的传输线的终端连接了一个阻抗为 Z L Z_L ZL​ 的负载时,看向这段传输线的输入阻抗 Z i n Z_{in} Zin​ 将不再是 Z 0 Z_0 Z0​。 传输线阻抗方程 (Transmission Line Impedance Equation) 就是计算…

PCB阻抗计算

阻抗匹配是指在能量传输时,要求负载阻抗要和传输线的特征阻抗相等,此时的传输不会产生反射,这表明所有能量都被负载吸收了。反之则在传输中有能量损失。在高速PCB设计中,阻抗的匹配与否关系到信号的质量优劣,下面简单介…

特征阻抗和阻抗匹配_没有诸如对象关系阻抗不匹配之类的东西

特征阻抗和阻抗匹配 过去十年来,ORM的许多批评都错了这一点,因为它不准确。 到本文结尾,我们将得出以下结论: 关系(数据)模型和面向对象的模型之间没有显着差异 如何得出这个结论? 继续阅读&a…

传输线特征阻抗计算

一直有很多人问我阻抗怎么计算的. 人家问多了,我想给大家整理个材料,于己于人都是个方便.如果大家还有什么问题或者文档有什么错误,欢迎讨论与指教! 在计算阻抗之前,我想很有必yi要理解这儿阻抗的意义 传输线阻抗的由来以及意义 传输线阻抗是从电报方程推导出来(具体可以查询微…

PCB特征阻抗计算

见教程:链接:https://pan.baidu.com/s/1V4UbEoKfMD1bilwu-Qwdyg 密码:ml6t

射频特征阻抗

Characteris Impendance(特性阻抗,也称为‘特征阻抗’)是我们经常看到并使用自己的术语之一,但非常模糊且难以解释。以下是来自几个不同来源的Characteris Impendance(特性阻抗)的一些定义。 (如果您检查10个不同的来源,您会看到1…

高速PCB的特征阻抗设计

我们在高速PCB设计当中,经常对高速信号线做特征阻抗控制来优化信号质量。那特征阻抗是什么东西呢? 1.传输线原理 介绍特征阻抗之前,我们复习下《信号完整性视频》介绍的传输线基本原理。如下图左边是低频电路采用集总参数的RLGC模型,右边高频电路采用分布参数的RLGC模型。…

传输线的波阻抗与特征阻抗

以上是时域方程,而我们的“波阻抗”是定义在频域下的(正弦激励)。 1)“相电压/电流”的第一、二项分别代表了前向传输、反向传输分量; 2)前向传输和反向传输分量两者无必然联系。 补充修改: 1&…

PCB寄生参数和特征阻抗

1、微带线Microstrip 相同情况下,PCB板厚H越厚(影响很大): 特征阻抗越大(H↑ > ln()↑ > Z0↑)传输延时几乎不变(与H无关)寄生电感越大(H↑ > ln()↑ > L…

传输线的特征阻抗

要理解特征阻抗首先要建立一个模型。传输线零阶模型 在这个模型中,每一个步长是△X,单位长度的电容为CL,所以每个步长的电容 CCL*△X 然后我们根据电荷量 QU*CI*t ,电流I Q / t C * U / t,其中t △X / v得到 电流 …

阻抗,特征阻抗与等效阻抗

目录 一、阻抗 二、 特征阻抗 三、等效阻抗 射频的黄金三角之一就是阻抗,我们在射频设计中,会经常与阻抗打交道,比如特征阻抗,负载阻抗,阻抗匹配等等。更多的时候,我们所设计的射频电路就是一个阻抗匹配…

特性阻抗介绍

特性阻抗:又称“特征阻抗”,它不是直流电阻,属于长线传输中的概念。在高频范围内,信号传输过程中,信号沿到达的地方,信号线和参考平面(电源或地平面)间由于电场的建立,会产生一个瞬间电流,如果传输线是各向同性的,那么只要信号在传输,就始终存在一个电流I,而如果信…

单播、广播和多播地址以及组播ip与组播mac间的换算

转自:https://www.cnblogs.com/songdada/articles/4039468.html 除地址类外,还可根据传输的消息特征将IP地址分为单播、广播或多播。主机使用IP地址进行一对一(单播)、一对多(多播)或一对所有(…