0%

Java中绕过语法限制的途径

对于Java语言,存在一些途径可绕过语法限制,有些途径是官方的,有些途径是非官方的,下表罗列一些途径。

途径名称 官方/非官方 绕过的语法限制
反射 官方 “不可访问的方法可访问化”,“能够对final域进行二次赋值”等
JDK序列化 官方 能够对final域进行二次赋值(本质是通过反射实现的)
官方原生方法 官方 理论上可以对Java进程所占有的内存做任何操作,比如“通过System.setIn()System.setOut()System.setErr()方法修改System类的inouterr这3个public final static变量”
非官方原生方法 非官方 理论上可以对Java进程所占有的内存做任何操作

参考文献

[1]https://docs.oracle.com/javase/specs/jls/se7/html/jls-17.html#jls-17.5.1

您的支持将鼓励我继续分享!