jvm学习知识大全

本文由用户“如梦970216”分享发布 更新时间:2021-10-26 00:45:15 举报文档

以下为《jvm学习知识大全》的无排版文字预览,完整格式请下载

下载前请仔细阅读文字预览以及下方图片预览。图片预览是什么样的,下载的文档就是什么样的。

1. JVM之PC寄存器

PC寄存器( PC register ):每个线程启动的时候,都会创建一个PC(Program Counter,程序计数器)寄存器。PC寄存器里保存有当前正在执行的JVM指令的地址。 每一个线程都有它自己的PC寄存器,也是该线程启动时创建的。保存下一条将要执行的指令地址的寄存器是 :PC寄存器。PC寄存器的内容总是指向下一条将被执行指令的地址,这里的地址可以是一个本地指针,也可以是在方法区中相对应于该方法起始指令的偏移量。

当前线程指向代码的行号

每个线程都有一个程序计数器,是线程私有的,就是一个指针,指向方法区中的方法字节码(用来存储指向下一条指令的地址,也即将要执行的指令代码),由执行引擎读取下一条指令,是一个非常小的内存空间,几乎可以忽略不记。

这块内存区域很小,它是当前线程所执行的字节码的行号指示器,字节码解释器通过改变这个计数器的值来选取下一条需要执行的字节码指令。

如果执行的是一个Native方法,那这个计数器是空的。

举例:如值日表,又如test1()调用test2(),test2()调用test3(),肯定顺序执行,就是pc寄存器的作用。

2.为什么可以使用object

双亲委派与沙箱安全机制



双亲委派:当一个Hello.class这样的文件要被加载时,不考 内容过长,仅展示头部和尾部部分文字预览,全文请查看图片预览。 z = String.class; System.out.println(clazz.getName()); // java.lang.String 这个方法可以直接获得与指定类关联的Class对象,而并不需要有该类的对象存在。

使用Class.forName方法 Class有一个著名的static方法forName:public static Class forName(String className) throws ClassNotFoundException 该方法可以根据字符串参数所指定的类名获取与该类关联的Class对象。如果该类还没有被装入,该方法会将该类装入JVM。 该方法声明抛出ClassNotFoundException异常。顾名思义,当该方法无法获取需要装入的类时(例如,在当前类路径中不存在这个类),就会抛出这个异常。

Classloader的根加载器是Bootstrap Class Loader



Object为什么是所有类的父类

在虚拟机启动的时候,类加载器(所有类加载器的根加载器)Bootstrap ClassLoader 会加载rt.jar包中的类,Object是lang包下的类(rt.jar中的类)













































[文章尾部最后300字内容到此结束,中间部分内容请查看底下的图片预览]请点击下方选择您需要的文档下载。

  1. Java高级编程实验报告
  2. 提高运球能力训练课教案
  3. 稍复杂的分数乘法问题(整体与部分的关系教学设计
  4. 防雷检测技术方案
  5. 中医健康素养
  6. “文经我手无差错、事交我办请放心”
  7. 查阅文献资料并写出评论_0
  8. 赚钱的七大定律
  9. 软件设计师知识点
  10. 苏教版数学三年级下册知识点汇总

以上为《jvm学习知识大全》的无排版文字预览,完整格式请下载

下载前请仔细阅读上面文字预览以及下方图片预览。图片预览是什么样的,下载的文档就是什么样的。

图片预览