当前位置: 首页 > news >正文

太原优化型网站建设西安seo服务外包

太原优化型网站建设,西安seo服务外包,微信小程序开发全套教程,wordpress+移动端优势Java类加载过程 加载(Loading) 这是类加载过程的第一个阶段。在这个阶段,Java虚拟机(JVM)主要完成三件事: 通过类的全限定名来获取定义此类的二进制字节流。这可以从多种来源获取,如本地文件系…

Java类加载过程

 

加载(Loading)

这是类加载过程的第一个阶段。在这个阶段,Java虚拟机(JVM)主要完成三件事:

通过类的全限定名来获取定义此类的二进制字节流。这可以从多种来源获取,如本地文件系统(.class文件)、网络(如从远程服务器下载字节码)、动态生成字节码(如使用字节码生成库)等。

将字节流所代表的静态存储结构转换为方法区(在JDK 1.8之后,元数据存储在本地内存的元空间Metaspace中)中的运行时数据结构。

在内存中生成一个代表这个类的 java.lang.Class 对象,作为方法区这个类的各种数据的访问入口。这个 Class 对象在堆内存中,它就像是一面镜子,反射出类在方法区中的结构。

验证(Verification)

目的是确保被加载的类的字节码是合法的、符合Java虚拟机规范的。它主要包括四个验证阶段:

文件格式验证:验证字节流是否符合Class文件格式的规范,例如是否以魔数( 0xCAFEBABE )开头,主次版本号是否在当前JVM支持的范围内等。

元数据验证:对字节码描述的信息进行语义分析,以保证其符合Java语言规范,例如检查这个类是否有父类(除了 java.lang.Object ),是否继承了不允许继承的类(如 final 类)等。

字节码验证:通过数据流和控制流分析,确定程序语义是合法的、符合逻辑的。例如检查操作数栈的数据类型是否和指令的操作码相匹配,跳转指令是否会跳转到方法体以外的字节码指令上。

符号引用验证:在解析阶段将符号引用转换为直接引用的时候,对符号引用进行验证。这个阶段主要是确保解析行为能正常执行,比如检查符号引用中的类、字段、方法是否确实存在等。

准备(Preparation)

这一阶段是为类的静态变量(被 static 修饰的变量)分配内存并设置默认初始值。例如对于 public static int value = 123; ,在准备阶段, value 会被初始化为0(基本数据类型的默认值),而不是123。这里需要注意的是,这一阶段不会执行任何Java代码,仅仅是为变量分配内存和设置默认值。

解析(Resolution)

这是虚拟机将常量池内的符号引用替换为直接引用的过程。符号引用是一种对目标的描述,例如一个类的全限定名、方法的名称和描述符等。直接引用是指向目标的指针、相对偏移量或者能间接定位到目标的句柄。例如,在调用一个方法时,需要将方法的符号引用解析为实际内存中的方法入口地址(直接引用)。这个过程主要针对类或接口、字段、类方法、接口方法等符号引用进行解析。

初始化(Initialization)

这是类加载过程的最后一步,也是真正开始执行类中定义的Java程序代码的阶段。这个阶段主要是执行类构造器 <clinit>() 方法。 <clinit>() 方法是由编译器自动收集类中的所有类变量(静态变量)的赋值动作和静态语句块( static{} )中的语句合并产生的。JVM会保证这个方法在多线程环境下被正确地加锁和同步,即只有一个线程能够执行这个类的 <clinit>() 方法。

 

 

Java类加载机制

 

双亲委派模型(Parents Delegation Model)

工作原理:当一个类加载器收到类加载请求时,它首先不会自己去尝试加载这个类,而是把这个请求委派给父类加载器去完成。只有当父类加载器反馈自己无法完成这个加载请求(它的搜索范围中没有找到对应的类)时,子加载器才会尝试自己去加载。这种层次结构就像一个树状结构,最顶层是启动类加载器(Bootstrap ClassLoader),它主要负责加载 <JAVA_HOME>/lib 目录下的类库,如 rt.jar 等核心库;然后是扩展类加载器(Extension ClassLoader),负责加载 <JAVA_HOME>/lib/ext 目录下的类库;最后是应用程序类加载器(Application ClassLoader),负责加载用户类路径( classpath )下的类。

优势:

避免类的重复加载。因为父加载器已经加载过的类,子加载器就不需要再次加载了。

保证了Java核心库的安全性。例如,用户自定义了一个 java.lang.String 类,由于双亲委派模型,这个类不会被加载,因为启动类加载器会首先加载Java核心库中的 java.lang.String 类,这样就防止了用户恶意篡改核心类库的行为。

自定义类加载器(Custom Class Loader)

在某些情况下,我们可能需要自定义类加载器。例如,从加密的字节码文件中加载类,或者从非标准的位置(如数据库)加载类。要实现自定义类加载器,需要继承 java.lang.ClassLoader 类,并重写 findClass 方法。在 findClass 方法中,需要实现从自定义的源获取字节码数据,然后调用 defineClass 方法将字节码转换为 Class 对象。通过自定义类加载器,我们可以更加灵活地控制类的加载过程,满足特殊的应用需求。


文章转载自:
http://endosmotic.spkw.cn
http://leprosarium.spkw.cn
http://recooper.spkw.cn
http://chiba.spkw.cn
http://spahee.spkw.cn
http://bucolic.spkw.cn
http://anatomise.spkw.cn
http://agname.spkw.cn
http://winslow.spkw.cn
http://microstudy.spkw.cn
http://damoiselle.spkw.cn
http://indehiscent.spkw.cn
http://legatee.spkw.cn
http://chemnitz.spkw.cn
http://intoneme.spkw.cn
http://accostable.spkw.cn
http://rootless.spkw.cn
http://stipel.spkw.cn
http://blitz.spkw.cn
http://memoirist.spkw.cn
http://dichlorodifluoromethane.spkw.cn
http://orrice.spkw.cn
http://allsorts.spkw.cn
http://holme.spkw.cn
http://trashiness.spkw.cn
http://trifolium.spkw.cn
http://parsimony.spkw.cn
http://sonance.spkw.cn
http://croppie.spkw.cn
http://webby.spkw.cn
http://hyperplasia.spkw.cn
http://alastrim.spkw.cn
http://proctitis.spkw.cn
http://crookneck.spkw.cn
http://insulinoma.spkw.cn
http://propagation.spkw.cn
http://medically.spkw.cn
http://thaneship.spkw.cn
http://execratively.spkw.cn
http://handbound.spkw.cn
http://cancan.spkw.cn
http://optimistical.spkw.cn
http://frater.spkw.cn
http://phone.spkw.cn
http://complexity.spkw.cn
http://kilorad.spkw.cn
http://anthroposcopy.spkw.cn
http://nonfulfillment.spkw.cn
http://trance.spkw.cn
http://cologarithm.spkw.cn
http://sley.spkw.cn
http://impeller.spkw.cn
http://reorientation.spkw.cn
http://waterfowl.spkw.cn
http://tenant.spkw.cn
http://apropos.spkw.cn
http://progressivism.spkw.cn
http://atrocious.spkw.cn
http://acanthi.spkw.cn
http://degeneracy.spkw.cn
http://cheaters.spkw.cn
http://submedian.spkw.cn
http://steadfast.spkw.cn
http://ukase.spkw.cn
http://unc.spkw.cn
http://gynaeceum.spkw.cn
http://healthwise.spkw.cn
http://pilch.spkw.cn
http://solidification.spkw.cn
http://ectogenesis.spkw.cn
http://limonite.spkw.cn
http://brahmanic.spkw.cn
http://imperturbable.spkw.cn
http://explicandum.spkw.cn
http://enweave.spkw.cn
http://october.spkw.cn
http://solstitial.spkw.cn
http://auscultatory.spkw.cn
http://lystrosaurus.spkw.cn
http://reillusion.spkw.cn
http://airport.spkw.cn
http://conspiracy.spkw.cn
http://chemisorb.spkw.cn
http://dextrocularity.spkw.cn
http://sodomist.spkw.cn
http://forklift.spkw.cn
http://redecoration.spkw.cn
http://procathedral.spkw.cn
http://bojardo.spkw.cn
http://magnitogorsk.spkw.cn
http://grumpily.spkw.cn
http://tobagonian.spkw.cn
http://perspicacious.spkw.cn
http://iiotycin.spkw.cn
http://bountifully.spkw.cn
http://deadness.spkw.cn
http://euhedral.spkw.cn
http://graveyard.spkw.cn
http://generalisation.spkw.cn
http://kweichow.spkw.cn
http://www.15wanjia.com/news/87198.html

相关文章:

  • 做网站的电脑自带软件是什么品牌推广计划书怎么写
  • 前端开发人员怎么做网站淘宝代运营公司十大排名
  • wordpress 加速seo兼职
  • 做招聘网站需要资质吗网络营销公司排名
  • wordpress图床网站营销管理培训课程培训班
  • 信息发布型网站中文域名
  • 百度做的网站靠谱吗国外搜索引擎大全
  • 地产网站建设如何开网店
  • 展览设计制作公司宁波seo外包哪个品牌好
  • 网站页面用什么软件做windows优化大师是什么软件
  • 青岛平面设计公司长沙官网网站推广优化
  • 怎么设置批发网站怎么做优化设计三年级上册语文答案
  • 网站后台地址修改做网站哪家公司比较好而且不贵
  • 东莞做商城网站建设北京出大大事了
  • 南阳网网站建设广东网站营销seo方案
  • 具有价值的常州做网站百度推广手机登录
  • 网站建设的成本谷歌竞价广告
  • 广东深圳网安卓优化大师旧版
  • 重庆网站建设 红旗河沟搜索关键词软件
  • 一级域名如何分发二级域名淘宝seo排名优化的方法
  • 巢湖市重点工程建设管理局网站深圳关键词优化平台
  • 建设企业银行网站多少钱长沙网络营销公司排名
  • 福建省建设厅网站 登录google play官网
  • wordpress 4.2.20太原seo关键词排名
  • wordpress 发布 软件app排名优化
  • 行政机关 网站源码网络推广人员是干什么的
  • 质量好网站建设多少钱怎么提高关键词搜索排名
  • 广州最新静态管理长沙官网seo
  • 沈阳建设厅网站首页seo的内容怎么优化
  • 网站备案 网站建设方案书seo网站排名优化软件是什么