java类加载机制概括

简介: 在我们运行java程序时,java底层进行了一系列的操作,大体有五个操作步骤,分别按照先后顺序为:加载——>验证——>准备——>解析——>初始化,本次分别来解释这五个步骤具体干了什么。

前言



在我们运行java程序时,java底层进行了一系列的操作,大体有五个操作步骤,分别按照先后顺序为:加载——>验证——>准备——>解析——>初始化,下面分别来解释这五个步骤具体干了什么。


加载



jvm将我们写好的类从磁盘加载到内存中。(在我们编写java代码的时候,我们保存是将代码保存到我们的硬盘上,而在我们执行java程序的时候,就会将我们硬盘上的代码拷贝到内存中来进行操作,因为内存中操作速度更快)


验证



jvm验证字节码文件的正确性,如果我们写的代码语法有错误,在这一步就会检测出来。(jvm对代码进行分析验证,如果我们没有按照java语法来开发,例如我们程序没有以class开头,或者我们赋值类型不匹配,jvm都会分析验证出来)


准备



给类的静态变量分配内存,并赋予默认值。(jvm会先将我们定义为静态变量的类型分配内存,并将默认值赋予)


解析



将符号引用替换为直接引用。(首先来讲一下符号引用和直接引用是什么)


符号引用:假如我们main主类中new了一个student类,但是我们在加载的时候并不会去找我们student类在磁盘中的具体地址,而是以一个例如:com.xiaoqi.cn.Student;这样一个包位置来代表我们对student类的引用。


直接引用:当我们main主类中new了一个student类,我们会将student类在磁盘的位置找到,位置例如:0X06HXXXXX,这样我们就可以直接通过磁盘位置找到student类。


初始化



对类的静态变量初始化为指定的值。(在准备阶段我们对类的静态变量分配了内存空间,并赋予了默认值,而在初始化阶段我们将用我们静态变量定义的真实值把默认值替换,如果我们静态变量没有定义初始值,那他就会是默认值,这就是我们为什么new一个变量的时候他会给我们一个默认值,而不是空值)

相关文章
|
7月前
|
安全 Java 程序员
学习Java类加载机制
在Java的世界里,每一个类或者接口,在经历编译器后,都会生成一个个.class文件。
44 0
|
7月前
|
Java
一个表格带你搞懂java的类加载机制
一个表格带你搞懂java的类加载机制,加载->验证->准备->解析->初始化->使用.卸载
|
SQL 前端开发 Java
大数据平台底层技术-JAVA篇-如何动态加载不同版本的 HIVE JDBC 驱动 - 一文读懂JAVA的类加载机制 1
大数据平台底层技术-JAVA篇-如何动态加载不同版本的 HIVE JDBC 驱动 - 一文读懂JAVA的类加载机制
|
4月前
|
存储 Java 数据库连接
Java类文件结构及类加载机制
该文章主要讨论了Java类文件的结构以及Java类的加载机制,并提到了双亲委派模型的相关内容。
Java类文件结构及类加载机制
|
4月前
|
数据库 C# 开发者
WPF开发者必读:揭秘ADO.NET与Entity Framework数据库交互秘籍,轻松实现企业级应用!
【8月更文挑战第31天】在现代软件开发中,WPF 与数据库的交互对于构建企业级应用至关重要。本文介绍了如何利用 ADO.NET 和 Entity Framework 在 WPF 应用中访问和操作数据库。ADO.NET 是 .NET Framework 中用于访问各类数据库(如 SQL Server、MySQL 等)的类库;Entity Framework 则是一种 ORM 框架,支持面向对象的数据操作。文章通过示例展示了如何在 WPF 应用中集成这两种技术,提高开发效率。
63 0
|
4月前
|
安全 前端开发 Java
【JVM 探秘】ClassLoader 类加载器:揭秘 Java 类加载机制背后的秘密武器!
【8月更文挑战第25天】本文全面介绍了Java虚拟机(JVM)中的类加载器,它是JVM的核心组件之一,负责将Java类加载到运行环境中。文章首先概述了类加载器的基本工作原理及其遵循的双亲委派模型,确保了核心类库的安全与稳定。接着详细阐述了启动、扩展和应用三种主要类加载器的层次结构。并通过一个自定义类加载器的例子展示了如何从特定目录加载类。此外,还介绍了类加载器的完整生命周期,包括加载、链接和初始化三个阶段。最后强调了类加载器在版本隔离、安全性和灵活性方面的重要作用。深入理解类加载器对于掌握JVM内部机制至关重要。
162 0
|
5月前
|
Java 程序员 开发者
Java中的类加载机制详解
Java中的类加载机制详解
|
6月前
|
存储 前端开发 Java
深入解析Java类加载机制:原理、过程与实践
深入解析Java类加载机制:原理、过程与实践
213 2
|
5月前
|
前端开发 Java 数据安全/隐私保护
深入理解Java中的类加载机制
深入理解Java中的类加载机制
|
6月前
|
前端开发 Java 开发者
Java中的类加载机制与双亲委派模型
Java中的类加载机制与双亲委派模型