最近在面试,准备了一些java方面的知识,写出来方便查看。
首先,java要实现一次编译,处处运行,就离不开jvm,jvm帮助java实现了对底层操作系统的透明,只要机器上安装了对应的jvm虚拟机,就可以运行java程序。
jvm是一个进程,系统会分配相应的资源,它有自己的生命周期,每一个java程序对应一个自己的jvm。
jvm加载过程:
jvm的加载是从java XXX.class命令开始的,先是向系统申请资源,资源分配完毕后,找到class文件路径,然后使用classloader加载进class,然后找到静态的公共函数main,执行main方法。
main方法执行完后,jvm结束生命周期,释放资源。
jvm内存区:
jvm内存分为:程序计数区,方法区,系统方法栈,堆,本地方法栈。