1.为什么会有jvm?
2.java虚拟机作用:二进制字节码的运行环境,负责装在字节码到其内部,解释/编译为对应平台上的机器指令执行,每一条java指令,java虚拟机规范中都有详细定义,如怎么取操作数,怎么处理操作数,处理结果放在哪里。
3.特点
一次编译,到处运行
自动内存管理
自动垃圾回收功能
3.jvm的位置
、
jvm整体结构
分为三部分:类装载子系统 运行时数据区 执行引擎
先讲解下类加载子系统
类加载子系统只负责从文件系统或者网络中加载class文件,class文件在文件开头会有特定的文件标识
classLoader只负责class文件的加载,至于它是否可以运行,则由excution Engine决定
加载的类信息存放于方法区,除了类的信息外,还存放运行时常量池信息
5.classLoader有什么作用呢?
Car.class文件---->jvm----->最终成为 Car class 扮演快递员角色。
6.类的加载过程
加载---链接(验证---准备---解析)---初始化
如上加载成Car class 后,需要链接(验证准备解析)
初始化:就是执行<clinit>()的过程 cl代表class init 是初始化
7.类加载器的分类以及双亲委派机制(向上委托,有事找老爸)
我的另一篇博客 https://my.oschina.net/architectliuyuanyuan/blog/3036684