文章预览
1. 前言 在线源码查看网站。 https://code.yawk.at/java/ jdk各版本下载(需注册)。 https://www.oracle.com/java/technologies/downloads/archive/ 在了解JDK17对java安全的影响之前,需要了解高版本JDK有哪些新特性,这些新特性都基于JDK9开始的模块化。 分析过JDK源码的人会发现,在 < =JDK8时,JDK核心代码位于rt.jar。 在>=JDK9时,JDK核心代码位于modules。 用jimage解压。 jimage extract modules 这就是模块化,每个模块都有一个核心配置文件,module-info.class。 一般而言,只有exports声明包名的类,才能使用,只有opens声明包名的类,才能反射其私有属性。但这些在JDK17之前,都没有正式上线,只是会提示不安全。 (实际上是JDK16开始的,但由于JDK16不是LTS版本,所以一般不提它) JDK17之后,进行了强封装,所以当你想new一个没有 exports的类,会报错。 当你想反射一个私有属性,也会报错。
………………………………