JVM初步理解(一)

1.JVM是什么

JVM(Java Virtual Machine)
JVM本质上来说就是一个软件,可以让JAVA编译器所产生的class文件在其上面运行的虚拟机,正因为如此,JAVA才有了这么强大的可移植性。但是一般我们学习JVM的原因都是因为调优的问题。

2.JVM的结构

JVM
首先在完成java文件之后会经过javac命令生成对应的字节码文件
,再由类加载器加载到JVM中去执行。JVM本质上分为五大块:堆、方法区、JAVA栈、本地方法栈、程序计数器。外带一些本地的接口,可以用其他语言去写入。栈中存的都是对象的名字和引用,真正的数据都是在堆中,所以优化应该是在堆中,储存独享的过程可以这么形容,栈是这本书的目录,可以通过站的引用去找到相应堆中的对象

3.类加载器

类加载器是用来加载class文件到JVM中的。
class相当于表示这个对象的来源是哪里,所以一个类所产生的的不同的对象的class都是一样的,在类加载器加载初始化之后,每一个对象都是被这个class文件实例化出来的
在这里插入图片描述在这里插入图片描述

4.双亲委派机制

其实双亲委派机制是一种JAVA保护的一种方式,在加载类的时候,会一层一层的向上委托,APP(应用)–>EXC(扩展)–>BOOT(根),到达最高层时,先看看最高层有没有这个类,如果有就加载,如果没有就继续往下,直到最底层,要是还是找不到就会报出一个Class Not Found的异常。
Bootstrap classLoader:主要以一些JAVA比较重要的一些类(例如java.lang)
ExtClassLoader:以加载jre中的一些扩展的jar(JDK1.8\jre\lib\ext)
AppClassLoader:又叫System Classloader,用来加载指定目录的jar包在这里插入图片描述
(自己的理解,不够深刻,主要看其中的思想)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值