1. 谈谈你对 java 的理解
java 怎么做到一次编译, 处处运行的呢?(平台无关性)
为什么 JVM 不直接将源码解析成机器码去执行?
因为 javac 编译成字节码的时候就要检查语法错误, 如果跳过这一环节的话, 每次 JVM 都要进行语法的检查, 大大的降低了执行的效率
JVM 怎么加载.Class 文件
首先由 jvm 的 classLoader(类加载器)把.class 文件加载到内存中, 然后由 Excution Engine(解释器)去解析指令, 最后交给操作系统去执行。
我们所写的程序都会被加载到运行数据区里面。
什么叫做反射?
例子
getMethod: 可以获取 public 修饰的属性和方法, 也可以获取继承或实现父类的方法, 但是不能访问 private
getDeclareMethod: 可以访问 private 修饰的属性和方法, 但是不能获取继承或实现父类的方法