扫码关注官方订阅号
隐式加载是通过new等途径生成的对象时jvm把相应的类加载到内存中 显示加载是通过Class.forName(..)等方式由程序员自己控制加载
new
Class.forName(..)
今天学到这里不明白, 这两种加载方式有什么不同吗?难道仅仅只是一个由系统完成,另一个由人为方式完成吗?
欢迎选择我的课程,让我们一起见证您的进步~~
new是硬编码,然而在大部分情况下,new这种硬编码够用了。
Class.forName(String)可以动态加载,这增强了java的动态性。也就是说你可以在运行时选择加载A类或者B类。
Class.forName(String)
if (condition_a) { Class cls = Class.forName("A"); else if (condition_b) { Class cls = Class.forName("B"); } else { Class cls = Class.forName("Other"); }
补充一点。利用反射来创建实例时,可绕过jvm的权限检查机制。
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
new是硬编码,然而在大部分情况下,new这种硬编码够用了。Class.forName(String)可以动态加载,这增强了java的动态性。也就是说你可以在运行时选择加载A类或者B类。补充一点。利用反射来创建实例时,可绕过jvm的权限检查机制。