JVM 疑题解答

在这里插入图片描述

1. JVM 调优

在这里插入图片描述

重写这个类,实现 jvm 调优,他是ClassLoader 是抽象的
在这里插入图片描述

2. 双亲委派机制

在这里插入图片描述

  1. 虚拟机自带的加载器
  2. 启动类(根)加载器
  3. 扩展类加载器
  4. 应用程序加载器
    在这里插入图片描述
  • 加载main 的调用会从 root加载器中找 ,如果没有再去扩展加载器中找,最后才去 当前应用加载器下找。
  • toString 在内置root 包下有这个方法,所以会报错
    在这里插入图片描述
  • 而,如果给列加上实现的@接口,jvm就知道了她是不是root 里面的方法,是实现了某个类的方法。
    在这里插入图片描述
  • 在我们的start 方法里,有一个start0 的native类别的方法。这是线程级别的东西。Java只是在 C++ 的基础上去除了指针和把内存交给 jvm 来管理,如果要关闭start ,就要用到C++底层,这属于操作系统上的本地方法库native 。
    在这里插入图片描述

3. 沙箱安全机制

在这里插入图片描述

  1. 机器人类,会自动控制鼠标操着
    在这里插入图片描述

在这里插入图片描述

  1. class对象是在编译后生成的(存在同名.class文件中)既然编译后就生成了class对象为什么JVM加载时又生成个?

1.编译时生成的class类是一个文件,用来存储jvm能执行的指令集和类的信息.
2.JVM要运行程序就要在jvm中找到执行的指令,没有class对象就没有相应的指令.所有要加载class,把class加载到了JVM就会在JVM的方法区里生成类信息也就是class对象,等你在代码里有new操作时,就会在JVM的堆区里生成一个实例每个new都会有不同的实例.
所以class类的class对象只是一个概念,

JVM把class文件加载到内存中方法区,并在堆区生成了相应的class对象。但是编程思想在解释RTTI是说:每当编写并且编译了一个新类,就会产生一个class对象(被保存在一个同名的.class文件中),在加载的时候也是先查找新类的class对象是否被加载。
这样的话明显这两个class对象不是同一个对象。例如对于A.class文件Class.forName(A) 这里的A应该就是所说的class对象是代表字节码二进制文件的,是用来判断是否被加载用的吧?
追答
是老外写的书被国人翻译的,老外的思想和我们有区别,翻译的水平也有不同.不要尽信书,要有自己的判断和理解.
对于JAVA来说,老外喜欢把其说成是面对象的语言,所以什么都以对象来称呼.他们认为万物皆对象.所以,编译生成的文件也是对象,文件里的内容也是对象,内容是对于不同类的信息描述也是不同的对象等等.
如果非要用对象来解译你的问题,那就是.A.class是一个文件对象,对象的内容是JVM的指令和类的描述信息.Class.forName(A);是一个动作把文件加载到JVM,而JVM加载的一个文件对象,加载后会在方法区里生成一个对象,这个对象是内存对象,其内容也是JVM的指令和类的描述,但存放的方式不同

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一些常见的 JVM 面试题及其解答: 1. 什么是 JVM? - JVMJava 虚拟机)是 Java 程序的运行环境,它负责将 Java 字节码解释或编译为机器码并执行。 2. JVM 的主要组成部分有哪些? - JVM 主要由类加载器、运行时数据区域、执行引擎和本地库接口等组成。 3. 类加载器的作用是什么? - 类加载器负责将字节码文件加载到内存中,并生成对应的 Class 对象。 4. 运行时数据区域包括哪些部分? - 运行时数据区域包括方法区、堆、栈、程序计数器和本地方法栈等。 5. 什么是垃圾回收(Garbage Collection)? - 垃圾回收是指自动回收不再使用的内存资源,以便给其他对象使用,从而减少内存泄漏和提高程序性能。 6. 垃圾回收算法有哪些? - 常见的垃圾回收算法有标记-清除算法、复制算法、标记-整理算法和分代收集算法等。 7. JVM 中的方法区是用来存储什么信息的? - 方法区主要用于存储类的结构信息、常量池、静态变量和常量等。 8. JVM 内存模型中的栈和堆有什么区别? - 栈用于存放局部变量和方法调用,是线程私有的;堆用于存放对象实例和数组,是线程共享的。 9. JVM 的 JIT 编译器是什么? - JIT(Just-In-Time)编译器是一种动态编译器,它将热点代码(频繁执行的代码)编译为本地机器码,以提高程序的执行效率。 以上是一些常见的 JVM 面试题及其解答,希望能对您有所帮助。如果您还有其他问题,请继续提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值