您的位置:首页 > 其它

动态加载类和静态加载类

2015-07-23 11:30 190 查看
今天看反射,遇到了动态加载类和静态加载类的问题,上网搜答案,自己有了理解。

动态加载类:在运行阶段加载类。

典型的例子是:Class.forName("java.lang.Number");

静态加载类:在编译时刻加载类。

典型的例子是:new Number();

两者有什么区别呢?

静态加载的类,在编译阶段就需要提供,不提供编译器会报错。比如源程序中Student s = new Student();,如果源程序中没有定义Student类,那么编译器就会报错。

动态加载的类,在编译阶段可以缺席,编译器不会报错,在运行阶段需要提供。比如源程序中Class c = Class.forName("com.shawn.student");,如果源程序中并没有定义Student类,编译器并不会报错,可以通过编译。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: