96SEO 2026-02-20 03:36 7
【理解】枚举B友:https://www.bilibili.com/video/BV1QG4y1J76q/

VIP服务课程:https://edu.51cto.com/course/32767.html
当程序要使用某个类时,如果该类还未被加载到内存中,则系统会通过类的【加载】,【连接】,【初始化】
如果不出现意外情况,JVM将会连续完成这三个步骤,所以有时也把这三个步骤统称为类加载或者类初始化。
“加载”、“验证”、“准备”、“解析”、“初始化”、“使用”、“卸载”
当程序主动使用某个类时,如果该类还未被加载到内存中,则系统会通过如下三个步骤来对该类进行初始化。
类的加载就是指将class文件读入内存,并为之创建一个Class对象。
任何类被使用时系统都会建立一个Class对象,用于加载二进制数据,类的加载主要做三件事情:
首先会根据各种途径(比如网络下载、数据库提取、从jar,zip中读取等)获取类的二进制数据
放入方法区(将这个字节流所代表的静态存储结构转化为方法区的运行时数据结构)
这些二进制数据所代表的存储结构会被转化为方法区中运行时的数据结构
开个入口(生成一个代表此类的java.lang.Class对象,作为访问方法区这些数据结构的入口)
在方法区中创建相应的Class对象(这里的Class对象与平时所说的对象是不一样的,
当使用new创建实例对象时,就会通过Class对象在堆中创建实例对象)用来封装保存在方法区内的数据结构
【验证阶段】:用于检验被加载的类是否有正确的内部结构,并和其他类协调一致
文件格式验证:验证字节流是否符合class文件的规范,确保输入的字节流能正确解析并存储到方法区
元数据验证:对字节码描述的信息进行语义分析,保证其描述的信息符合规范要求。
字节码验证:这个阶段是比较复杂的,通过数据流和控制流分析,对类的方法体进行校验,确保程序的合法性。
对常量池中各种符号引用的信息进行匹配性校验,确保解析动作正确执行
此时赋给value的值是123。
【解析阶段】:将类的二进制数据中的符号引用替换为直接引用
假如类还未被加载和连接,则程序先加载并连接该类假如该类的直接父类还未被初始化,则先初始化其直接父类假如类中有初始化语句,则系统依次执行这些初始化语句注意:在执行第2个步骤的时候,系统对直接父类的初始化步骤也遵循初始化步骤1-3类的初始化时机
创建类的实例调用类的类方法访问类或者接口的类变量,或者为该类变量赋值使用反射方式来强制创建某个类或接口对应的java.lang.Class对象初始化某个类的子类直接使用java.exe命令来运行某个主类类加载器
对象。
虽然我们不用过分关心类加载机制,但是了解这个机制我们就能更好的理解程序的运行!
就是当一个类加载器负责加载某个Class时,该Class所依赖的和引用的其他Class也将由该类加载器负责载入,除非显示使用另外一个类加载器来载入
就是当一个类加载器负责加载某个Class时,先让父类加载器试图加载该Class,只有在父类加载器无法加载该类时才尝试从自己的类路径中加载该类
保证所有加载过的Class都会被缓存,当程序需要使用某个Class对象时,类加载器先从缓存区中搜索该Class,只有当缓存区中不存在该Class对象时,系统才会读取该类对应的二进制数据,并将其转换成Class对象,存储到缓存区
当前ClassLoader首先从自己已经加载的类中查询是否此类已经加载,如果已经加载则直接返回原来已经加载的类。
每个类加载器都有自己的加载缓存,当一个类被加载了以后就会放入缓存,等下次加载的时候就可以直接返回了。
当前ClassLoader的缓存中没有找到被加载的类的时候,委托父类加载器去加载,父类加载器采用同样的策略,首先查看自己的缓存,然后委托父类的父类去加载,
当所有的父类加载器都没有加载的时候,再由当前的类加载器加载,并将其放入它自己的缓存中,以便下次有加载请求的时候直接返回。
1.避免重复加载。
当父亲已经加载了该类的时候,就没有必要子ClassLoader再加载一次。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dntytLVb-1692620952897)(asseits/1de2c4d28014486fa71fdcd0938cd31a.png)]
比如:System.String等,jre的lib下rt.jar文件中
它也被称为应用程序类加载器(系统类加载器)(Application
系统类加载器通常用于定义应用程序类路径,模块路径和JDK特定工具上的类
负责在jvm启动时加载来自java命令的class文件,以及classpath环境变量所指定的jar和类路径
如果核心包中没有项目所需要的jar,还有一个扩展加载器:将扩展的jar进行加载
类加载器的继承关系:System的父加载器为Platform,而Platform的父加载器为Bootstrap
JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;对于这种动态的获取信息以及动态调用对象的方法的功能称为:java语言的反射机制。
可以通过这个对象拿到字节码文件,通过子节码文件还原到类的本身(也就是说你拿到类的Class对象去使用这个类的成员方法,成员变量,构造方法)
类名.class属性对象名.getClass()方法Class.forName(全限定类名)方法public
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback