类加载机制

简介: 类加载机制

1、JVM 和 类

(1)运行java命令: java 带有main方法的类名

■ 命令的作用:启动jvm,并加载字节码,执行程序

  • 当调用java命令来运行某个java程序时,该命令将会启动一个jvm进程(同一个jvm中的所有线程变量都处于处于同一个进程中,共享给jvm的内存区间。)
  • 每次启动一个程序,在任务管理器,就会出现一个进程

(2)jvm退出的情况(jvm进程一旦结束,该进程中内存中的数据会丢失):

  • 程序正常执行结束
  • 使用System.exit(0) 方法
  • 出现异常,没有捕获异常
  • 平台强制结束jvm进程(在任务管理器那里关闭掉java进程)


2、类加载机制:


63.png


(1) 将类加载进内存中(三个步骤:加载、连接、初始化)

■ 当程序主动使用到某个类时,若该类还没有被加载进内存中,则系统会通过加载、连接、初始化三个步骤对该类就那些初始化操作。
  • 在程序中,每次要用到某类,都是需要将该类加载进内容的(将类加载进内存包括了三个步骤:加载、连接、初始化
  • 卸载类:当虚拟机停止工作的时候,该类就从虚拟机中卸载了
  • 类加载进虚拟机的特点当类一旦加载进虚拟机,就不卸载,永驻内存,直到虚拟机停止工作。


(2) 类加载机制【加载、连接、初始化、使用、卸载】:

1)类的加载:是指将类的class文件(字节码文件)载入内存之中,并为之创建一个java.lang.Class对象【字节码对象

  • 万物皆对象,描述对象的类也是一种对象,我们使用java.lang.Class对象【字节码对象】来描述类这种对象。
□ 类的加载过程是由类加载器(ClassLoader)完成,类加载器通常是由jvm提供的,我们称之为系统类加载器,我们也可以自定类加载器(需要继承ClassLoader类)
  • 不同的类加载器可以实现加载本地字节码文件,jar包中的字节码,通过网络加载字节码等等。
□ 为什么已经有系统自带的类加载器,还需要自定义的类加载器?(加载方式不符合需求)
  • 当我们使用框架时,需要加载配置文件时,通过系统加载器的加载方式无法加载配置文件,需要自定义类加载器,重新去定义加载方式。


2) 类的连接:当类被加载进内存之后,系统为之生产了一个对应的Class对象【字节码对象】,接着把类的二进制数据合并到JRE中。

  • 验证:检测被加载的类是否有正确的内部结构。
  • 准备:负责为类的static变量分配内存,并设置默认值。
  • 解析:把类的二进制数据中的符号引用替换为直接引用。


3)类的初始化:在此阶段,jvm负责对类进行初始化,主要就是对static变量进行初始化。

类的初始化包含如下几个步骤:

  • 当类还没被加载和连接,则程序先加载并连接该类
  • 当该类的父类还没有被初始化,则先初始化其父类
  • 当类中有初始化语句(静态代码块---一般用来加载资源),则系统依次执行这些初始化语句


✿ (3) 总结类的加载机制:

■ 程序需要执行某个类,需要将类加载进内存,系统为该类创建字节码对象,然后进行初始化,再使用,最后卸载。

类加载进虚拟机的特点当类一旦加载进虚拟机,就不卸载,永驻内存,直到虚拟机停止工作。



目录
相关文章
|
5天前
|
存储 人工智能 安全
AI 越智能,数据越危险?
阿里云提供AI全栈安全能力,为客户构建全链路数据保护体系,让企业敢用、能用、放心用
|
7天前
|
域名解析 人工智能
【实操攻略】手把手教学,免费领取.CN域名
即日起至2025年12月31日,购买万小智AI建站或云·企业官网,每单可免费领1个.CN域名首年!跟我了解领取攻略吧~
|
6天前
|
数据采集 人工智能 自然语言处理
3分钟采集134篇AI文章!深度解析如何通过云无影AgentBay实现25倍并发 + LlamaIndex智能推荐
结合阿里云无影 AgentBay 云端并发采集与 LlamaIndex 智能分析,3分钟高效抓取134篇 AI Agent 文章,实现 AI 推荐、智能问答与知识沉淀,打造从数据获取到价值提炼的完整闭环。
441 93
|
1天前
|
开发者
「玩透ESA」ESA启用和加速-ER在加速场景中的应用
本文介绍三种配置方法:通过“A鉴权”模板创建函数并设置触发器路由;在ESA上配置回源302跟随;以及自定义响应头。每步均配有详细截图指引,帮助开发者快速完成相关功能设置,提升服务安全性与灵活性。
283 2
|
7天前
|
SQL 人工智能 自然语言处理
Geo优化SOP标准化:于磊老师的“人性化Geo”体系如何助力企业获客提效46%
随着生成式AI的普及,Geo优化(Generative Engine Optimization)已成为企业获客的新战场。然而,缺乏标准化流程(Geo优化sop)导致优化效果参差不齐。本文将深入探讨Geo专家于磊老师提出的“人性化Geo”优化体系,并展示Geo优化sop标准化如何帮助企业实现获客效率提升46%的惊人效果,为企业在AI时代构建稳定的流量护城河。
406 156
Geo优化SOP标准化:于磊老师的“人性化Geo”体系如何助力企业获客提效46%
|
7天前
|
数据采集 缓存 数据可视化
Android 无侵入式数据采集:从手动埋点到字节码插桩的演进之路
本文深入探讨Android无侵入式埋点技术,通过AOP与字节码插桩(如ASM)实现数据采集自动化,彻底解耦业务代码与埋点逻辑。涵盖页面浏览、点击事件自动追踪及注解驱动的半自动化方案,提升数据质量与研发效率,助力团队迈向高效、稳定的智能化埋点体系。(238字)
306 158