1
0
mirror of https://github.com/Snailclimb/JavaGuide synced 2025-06-25 02:27:10 +08:00

Merge pull request #2144 from zouzanyan/zouzanyan-patch-1

Update unsafe.md
This commit is contained in:
Guide 2023-08-24 10:20:00 +08:00 committed by GitHub
commit 4b1827c1fb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -417,7 +417,7 @@ public void objTest() throws Exception{
} }
``` ```
打印结果分别为 1、1、0说明通过`allocateInstance`方法创建对象过程中,不会调用类的构造方法。使用这种方式创建对象时,只用到了`Class`对象,所以说如果想要跳过对象的初始化阶段或者跳过构造器的安全检查,就可以使用这种方法。在上面的例子中,如果将 A 类的构造函数改为`private`类型,将无法通过构造函数和反射创建对象,但`allocateInstance`方法仍然有效。 打印结果分别为 1、1、0说明通过`allocateInstance`方法创建对象过程中,不会调用类的构造方法。使用这种方式创建对象时,只用到了`Class`对象,所以说如果想要跳过对象的初始化阶段或者跳过构造器的安全检查,就可以使用这种方法。在上面的例子中,如果将 A 类的构造函数改为`private`类型,将无法通过构造函数和反射创建对象可以通过构造函数对象setAccessible后创建对象,但`allocateInstance`方法仍然有效。
#### 典型应用 #### 典型应用