1 谈谈你对JAVA的理解
1.java的平台无关性,即一次编译,到处运行
2.GC垃圾回收机制,有了垃圾回收机制,就不需要手动释放堆内存
3.语言特性:泛型,反射,lamda表达式
4.面向对象:封装、继承、多态
5.类库:集合库、并发库、网络库、IO
6.异常处理
2 平台无关性如何实现
实践:
编译时使用javac,将java源码编译成字节码,并存入对应的.class文件中
运行class文件
使用javap对.class文件进行反汇编
将class文件上传到linux:
在linux上照样可以执行代码。
3 JVM如何加载.class文件
JVM(Java虚拟机):
虚拟机是一种抽象化的计算机,通过在实际的计算机上仿真模拟各种计算机功能来实现的。JVM有自己完善的硬件架构,如处理器,堆栈,寄存器等,还具有相应的指令系统。JVM屏蔽了与具体操作系统相关的信息,使得JAVA程序只需生成在JVM上运行的代码,即字节码,就可以在多种平台上运行。
JVM如何加载.class文件?
JVM由类加载器(Class Loader)、运行时数据区(Runtime Data Area)、执行引擎(Execution Engine)、本地库接口(Native Interface)四个部分组成。通过类加载器将符合其格式要求.class文件加载到内存里,并通过执行引擎解析class文件中的字节码,并提交给操作系统去执行。