> 文档中心 > jvm听课随记01

jvm听课随记01

1、 JVM架构图

2、类加载

下边第一个得到是 c++语言写的(启动类加载器 Bootstrap)

第二个得到的是扩展类加载器(Extension )

第三个是应用程序类加载器 也叫系统类加载器

这里需要掌握小维度的点

2.1 有哪几种类加载器 3种类加载器

2.2 双亲委派 我爸是李刚 有事找我爹 俗称往上捅 也就是先从根加载找的到直接用 找不到再从扩展加载器  扩展里边找的到直接用 找不到就再往下找  一直到你自己的  如果自己也找不到  就报类没有找的异常

2.3 沙箱安全制 以上这么做的理由 往上捅 理由是沙箱安全机制

3、Native

场景

当我们线程strat 就是立刻启动线程吗  答案不是的    他是新建完成到就绪状态  他得调用底层c++的方法才能启动  也就是说start不一定是启动线程  那么什么时候启动  待cpu和操作系统调度

3.1  Native是关键字

3.2  声明有,实现无 why  因为凡是Native的方法 代表java的势力范围  接下来他的实现是靠的C语言(也就是第三方函数库) 

接下来由于Native方法的装载和运行在一个叫栈里边 这时候我们衍生出一个栈叫 Native Method Stack  普通放在在栈里边  标志着Native方法走另外一条绿色通道

4、pc寄存器

4.1 记录了方法之间的调用和执行情况,类似于排班值日表;他就是一个指针;他只是记录一个内存地址;我们说了pc寄存器是一个硬件 他在哪  他是在CPU里边的 他用来存储指向下一条指令的地址,也就是将要执行的指令代码 他是当前线程所执行的字节码行号指示器