1 谈谈你对JAVA的理解

1.java的平台无关性,即一次编译,到处运行

2.GC垃圾回收机制,有了垃圾回收机制,就不需要手动释放堆内存

3.语言特性:泛型,反射,lamda表达式

4.面向对象:封装、继承、多态

5.类库:集合库、并发库、网络库、IO

6.异常处理

 

2 平台无关性如何实现

 

JAVA面试准备之JVM JVM基础

JAVA面试准备之JVM JVM基础

 

实践:

编译时使用javac,将java源码编译成字节码,并存入对应的.class文件中

JAVA面试准备之JVM JVM基础

JAVA面试准备之JVM JVM基础

运行class文件

JAVA面试准备之JVM JVM基础

使用javap对.class文件进行反汇编

JAVA面试准备之JVM JVM基础

JAVA面试准备之JVM JVM基础

JAVA面试准备之JVM JVM基础

JAVA面试准备之JVM JVM基础

将class文件上传到linux:

JAVA面试准备之JVM JVM基础

在linux上照样可以执行代码。

 

3 JVM如何加载.class文件

JVM(Java虚拟机):

虚拟机是一种抽象化的计算机,通过在实际的计算机上仿真模拟各种计算机功能来实现的。JVM有自己完善的硬件架构,如处理器,堆栈,寄存器等,还具有相应的指令系统。JVM屏蔽了与具体操作系统相关的信息,使得JAVA程序只需生成在JVM上运行的代码,即字节码,就可以在多种平台上运行。

JAVA面试准备之JVM JVM基础

JVM如何加载.class文件?

JVM由Class Loader、Runtime Data Area、Execution Engine、Native Interface四个部分组成。通过Class Loader将符合其格式要求.class文件加载到内存里,并通过Execution Engine解析class文件中的字节码,并提交给操作系统去执行。

相关文章: