
文章插图
首先 , JDK
JDK(Java Development Kit)是Java语言的软件开发工具包(SDK) 。JDK安装目录下有一个jre目录 , 包含bin和lib两个文件夹 。这里可以认为bin是jvm , lib是jvm需要的类库 , jvm和lib合在一起称为jre 。
那我们再来看看JRE 。
JRE(Java运行时环境)包括JVM标准实现和Java核心类库 。JRE是Java运行时环境 , 不是开发环境 , 所以不包含任何开发工具(比如编译器和调试器) 。
最后 , JVM是清楚的 。
JVM是Java虚拟机(Java Virtual Machine)的缩写 。JVM是计算设备的规范 。它是一台虚拟的计算机 , 是在一台实际的计算机上模拟各种计算机功能而实现的 。
从上图可以看出:
JDK是整个Java的核心 , 包括Java运行时环境JRE、Java工具和Java基础类库 。JRE是运行Java程序的必要环境的集合 , 包括JVM标准实现和JAVA核心类库 。JVM是整个java跨平台实现的核心部分 , 可以运行用Java语言编写的程序 。
JVM架构和工作原理:
用Java编写的源程序被编译成一个平台无关的‘字节码程序’( 。类文件 , 即0 , 1二进制程序) , 然后在OS上的Java解释器中解释和执行 。

文章插图
整个JVM类加载过程的步骤:
1.装货
加载过程负责找到二进制字节码并将其加载到JVM中 。JVM通过类名加载类 , 通过类加载器加载类的包名 。类似地 , 上面的三个元素用于标识一个加载的类:类名、包名、类加载器实例ID 。
2.链接
链接过程负责检查二进制字节码的格式 , 初始化加载类中的静态变量 , 并解析类中调用的接口和类 。
验证之后 , JVM初始化类中的静态变量 , 并将它们的值赋为默认值 。
最后 , 对类中的所有属性和方法进行验证 , 以确保需要调用的属性和方法存在并具有适当的权限(如公共和私有域权限等) 。)会导致NoSuchM红豆博客ethodError和NoSuchFieldError之类的错误信息 。
3.初始化
初始化过程是执行类中静态初始化代码、构造函数代码和静态属性的初始化 。初始化过程将在以下四种情况下触发执行:
调用新的;;
反射调用了类中的方法;
一个叫做初始化的子类;
JVM启动期间指定的初始化类 。
ClassLoader抽象类的几个关键方法:
(1)荷载等级
此方法负责加载具有指定名称的类 。ClassLoader的实现方法是先搜索已经加载的类 , 如果没有 , 从父类加载器继续搜索 , 如果还是没有找到 , 从系统类加载器搜索 , 最后调用红豆博客findClass方法进行搜索 。如果要更改类的加载顺序 , 可以重写此方法 。
(2) findLoadedClass
该方法负责从当前类加载器实例对象的缓存中查找加载的类 , 并调用本机方法 。
(3)查找类别

文章插图
这个方法直接抛出ClassNotFoundException , 所以需要通过重写loadClass或者这个方法 , 以自定义的方式加载相应的类 。
(4) findSystemClass
这个方法负责从系统类加载器中找到类 。如果没有找到 , 它将继续从Bootstrap ClassLoader中找到该类 。如果仍然找到 , 它将返回null 。
【jv是什么缩写 jv是什么意思】
推荐阅读
- 电脑如何才可以用平板模式
- 如何取消被保护的单元格,Excel受保护的范围如何才可以解除
- 快手如何才可以隐藏作品,快手怎么让一个人看不到我的作品点赞
- mdi的化学名称是什么 mdi是什么
- 苹果手机如何才可以拉黑,苹果手机怎么把人拉黑电话和短信
- 支付宝怎么揍好友小鸡视频,蚂蚁庄园如何才可以揍别人小鸡
- 自己在家怎么练口才 如何训练口才
- PS如何才可以去皱纹,如何使用ps去除照片上的皱纹
- 樱花牌开关插座_什么开关插座最好
