Java

一次编译 ,到处运行

java源码首先被编译成字节码(.class后缀的文件),再由不同平台的(ios、Windows等)的JVM进行解析,java语言在不同的平台上运行时不需要重新编译,Java虚拟机在执行字节码的时候,会自动把字节码转换成具体平台上的机器指令。

为什么先转成字节码在交由其他系统的虚拟机编译,而不是直接给虚拟机编译?

1.节约代码编译错误,在编译成字节码将先把错误找出来,这样就能节约大量时间。

2.兼容性,其他的语言解析成字节码后,也能被多个系统编译

 

JVM如何加载.class文件

 

 

 

 

首先类加载器Class Loader 将class 文件加载到内存中,并通过Execution Engine去解析class文件里的字节码并提交给操作系统去执行,在执行期间也会调用系统的原生代码

什么是反射?

java反射机制是在运行状态中对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能调用它的任意方法和属性,这种动态获取信息以及动态调用对象方法的功能称为java的反射机制

。(例如getDeclaredMthods能获取私有的方法但不能得到继承和实现接口的方法,public Method[] getMethods()返回某个类的所有公用(public)方法包括其继承类的公用方法,当然也包括它所实现接口的方法。)

 

posted @ 2019-06-21 12:33  JustRun1  阅读(137)  评论(0编辑  收藏  举报