反射的实现原理思考
问题描述:
学完这节后引发了我如下几个问题:
1、Java在编译阶段,如果发现程序中有import某个类,或者new某个类是不是就会创建.class文件
2、如果运用反射技术在编译阶段是不会产生某个.class类的
3、如果程序第一次运行到反射的语句,是不是就就会动态创建.class类
4、第二次运行到反射的语句,如果之前加载过的类还会被再次创建吗,还是虚拟机会首先寻找内存中有没有这个类有的话直接用,没有的话动态加载
15
收起
正在回答
1回答
同学你好,1、是的,会创建.class文件。我们编写的java文件都是保存着业务逻辑代码。java编译器将 .java 文件编译成扩展名为 .class 的文件。.class 文件中保存着java转换后,虚拟机将要执行的指令。当需要某个类的时候,java虚拟机会加载 .class 文件,并创建对应的class对象,将class文件加载到虚拟机的内存,这个过程被称为类的加载。
综上所述,在编译阶段不管是反射还是普通类,都会创建.class文件。
2、在反射中是创建class对象,并不是创建.class文件。并如果之前编译过的类是不会重新创建的.class文件的。
祝学习愉快!
java工程师2020版
- 参与学习 人
- 提交作业 9393 份
- 解答问题 16556 个
综合就业常年第一,编程排行常年霸榜,无需脱产即可学习,北上广深月薪过万 无论你是未就业的学生还是想转行的在职人员,不需要基础,只要你有梦想,想高薪
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星