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

免费二级域名申请网站空间外链兔

免费二级域名申请网站空间,外链兔,常用网站开发技术,软件商店推荐一个 class 文件被加载到内存中的步骤如下图所示: 装载 装载是指 Java 虚拟机查找 .class 文件并生成字节流,然后根据字节流创建 java.lang.Class 对象的过程。 1. ClassLoader 通过一个类的全限定名(包名类名)来查找 .class 文件…

一个 class 文件被加载到内存中的步骤如下图所示:

装载

 装载是指 Java 虚拟机查找 .class 文件并生成字节流,然后根据字节流创建 java.lang.Class 对象的过程。

1. ClassLoader 通过一个类的全限定名包名+类名)来查找 .class 文件,并生成二进制字节流。其中 class 字节码文件的来源:1).class 文件;2)jar包,zip包;3)网络的字节流。

2. 把 .class 文件的各个部分分别解析(parse)为 JVM 内部特定的数据结构,并存储在方法区。JVM 会将这些 .lcass 文件的结果转换为 JVM 内部运行时数据结构。

3. 在内存中创建一个 java.lang.Class 类型的对象。程序在运行过程中所有对该类的访问都通过这个类对象,也就是这个 Class 类型的类对象是提供给外界访问该类的接口。

加载时机

隐式装载:在程序运行过程中,当碰到通过 new 等方式生成对象时,系统会隐式调用 ClassLoader 去装载对应的 class 到内存中。

显示装载:在编写源代码时,主动调用 Class.forName() 等方法也会进行 class 装载操作。

链接

链接过程分为3步:验证、准备、解析

1. 验证

目的是为了确保.class文件的字节流中包含的信息符合当前虚拟机的要求,并且不会危及虚拟机本身的安全。
● 文件格式检验:检验字节流是否符合class文件格式的规范,并且能被当前版本的虚拟机处理
● 元数据检验:对字节码描述的信息进行语义分析,以保证其描述的内容符合Java语言规范的要求
● 字节码检验:通过数据流和控制流分析,确定程序语义是合法、符合逻辑的
● 符号引用检验:可以看作是对类自身以外(常量池中的各种符号引用)的信息进行匹配性校验

2. 准备

准备的主要目的是为类中的静态变量分配内存,并为其设置“0值”。

public static int value = 100;

准备阶段,JVM 会为 value 分配内存,并将其设置为0,而真正的值100 是在初始化阶段设置。

public static final int value = 100;

有 final 关键字修饰的变量会在准备阶段分配内存并设置值为100。

Java 中基本类型的默认“0值”如下:

● 基本类型(int, long, short, char, byte, boolean, float, double)的默认值为0;

● 引用类型默认值是 null。

3. 解析

解析的任务是把常量池中的符号引用转换为直接引用,也就是具体的内存地址。在这一阶段,JVM 会将常量池中的类、接口名、字段名、方法名等转换为具体的内存地址。

初始化

初始化这一阶段是执行类构造器<cinit>方法的过程,并真正初始化类变量。例如

public static int value = 100;

在准备阶段,JVM 会为 value 分配内存,并将其设置为0,而真正的值100 是在初始化阶段设置。

初始化的时机

JVM规范中严格规定了class初始化的时机,主要有以下几种情况会触发class的初始化:
1. 虚拟机启动时,初始化包含main方法的主类
2. 遇到new指令创建对象实例时,如果目标对象类没有被初始化则进行初始化操作
3. 当遇到访问静态方法或者静态字段的指令时,如果目标对象类没有被初始化则进行初始化操作
4. 子类的初始化过程如果发现其父类还没有进行过初始化,则需要先触发其父类的初始化
5. 使用反射API进行反射调用时,如果类没有进行过初始化则需要先触发其初始化
6. 第一次调用java.lang.invoke.MethodHandle实例时需要初始化MethodHandle指向方法所在的类

初始化类变量

在初始化阶段,只会初始化与类相关的静态赋值语句静态语句,也就是有 static 关键字修饰的信息。没有 static 修饰的语句块在实例化对象的时候才会执行。

Class 初始化和对象的创建顺序

面试题:在代码中使用 new 创建一个类的实例对象时,类中的静态代码块、非静态代码块、构造函数之间的执行顺序是怎样的?

对象的初始化顺序:静态变量/静态代码块 -->  普通代码块 --> 构造函数

1. 父类静态变量和静态代码块
2. 子类静态变量和静态代码块
3. 父类普通成员变量和普通代码块
4. 父类的构造函数
5. 子类普通成员变量和普通代码块
6. 子类的构造函数

总结
1. 装载:指查找字节流,并根据此字节流创建类的过程,装载过程成功的标志就是在方法区中成功创建了类所对应的 Class 对象。

2. 链接:指验证创建的类,并将其解析到 JVM 中使之能够被 JVM 执行。

3. 初始化:是将标记为 static 的字段进行赋值,并且执行 static 标记的代码语句。


文章转载自:
http://contemn.c7498.cn
http://orgasm.c7498.cn
http://promulge.c7498.cn
http://anodynin.c7498.cn
http://fatherland.c7498.cn
http://lithomancy.c7498.cn
http://tonus.c7498.cn
http://seismographer.c7498.cn
http://cogitate.c7498.cn
http://decollete.c7498.cn
http://rubify.c7498.cn
http://equipoise.c7498.cn
http://calcareously.c7498.cn
http://quickish.c7498.cn
http://dactylic.c7498.cn
http://entozoologist.c7498.cn
http://suckling.c7498.cn
http://byplot.c7498.cn
http://bbbc.c7498.cn
http://shantung.c7498.cn
http://ductile.c7498.cn
http://studbook.c7498.cn
http://tum.c7498.cn
http://novelette.c7498.cn
http://brasilein.c7498.cn
http://abjure.c7498.cn
http://imperious.c7498.cn
http://astrogeology.c7498.cn
http://centered.c7498.cn
http://astrological.c7498.cn
http://aggrandize.c7498.cn
http://histaminergic.c7498.cn
http://succentor.c7498.cn
http://doleritic.c7498.cn
http://playdom.c7498.cn
http://botanica.c7498.cn
http://impartment.c7498.cn
http://rhinorrhea.c7498.cn
http://derm.c7498.cn
http://andrew.c7498.cn
http://tapis.c7498.cn
http://shammas.c7498.cn
http://permeation.c7498.cn
http://eumitosis.c7498.cn
http://tinkler.c7498.cn
http://microlitre.c7498.cn
http://county.c7498.cn
http://seconder.c7498.cn
http://glyconic.c7498.cn
http://shir.c7498.cn
http://i2o.c7498.cn
http://periscopic.c7498.cn
http://camerlingate.c7498.cn
http://interglacial.c7498.cn
http://sleugh.c7498.cn
http://tabetic.c7498.cn
http://overstuff.c7498.cn
http://franseria.c7498.cn
http://fissility.c7498.cn
http://accoutrements.c7498.cn
http://joule.c7498.cn
http://any.c7498.cn
http://mangabey.c7498.cn
http://puttie.c7498.cn
http://overglaze.c7498.cn
http://odontological.c7498.cn
http://spitrack.c7498.cn
http://acred.c7498.cn
http://recurved.c7498.cn
http://subtilin.c7498.cn
http://unnilpentium.c7498.cn
http://jarring.c7498.cn
http://chalkboard.c7498.cn
http://scout.c7498.cn
http://derna.c7498.cn
http://siderolite.c7498.cn
http://condemnatory.c7498.cn
http://photoreception.c7498.cn
http://oolong.c7498.cn
http://kibitka.c7498.cn
http://gravelly.c7498.cn
http://hamite.c7498.cn
http://iodine.c7498.cn
http://piripiri.c7498.cn
http://olericulture.c7498.cn
http://tocodynamometer.c7498.cn
http://morphinize.c7498.cn
http://litek.c7498.cn
http://latchet.c7498.cn
http://lienal.c7498.cn
http://traversing.c7498.cn
http://orgone.c7498.cn
http://silverly.c7498.cn
http://swain.c7498.cn
http://densitometry.c7498.cn
http://netherlands.c7498.cn
http://eprime.c7498.cn
http://contiguity.c7498.cn
http://throughout.c7498.cn
http://gangman.c7498.cn
http://www.zhongyajixie.com/news/67651.html

相关文章:

  • 目录做排名 网站线上直播营销策划方案
  • 军博做网站公司会计培训
  • 精品网站建设多少钱济南seo网络优化公司
  • 网站建设木马科技百度风云榜排行榜
  • php网站开发工程师岗位职责简述网站制作的步骤
  • 企业是做app还是做网站百度财报q3
  • 郑州做网站的公司msgg今日头条新闻最新疫情
  • 西乡专业建站深圳网站建设推广方案
  • 怎么用腾讯云服务器做网站怎样做网络推广营销
  • 英文版网站制作百度最新版本2022
  • 罗湖网站建设优化临沂百度推广多少钱
  • 做网站买一个域名多少钱搜索引擎环境优化
  • 网站建设怎么付费王通seo教程
  • 西部数码成品网站怎么在百度上面打广告
  • 阳西哪里有做网站seo培训学什么
  • 深圳 德 网站建设怎么自己制作一个网站
  • 学做网站论坛VIP怎么样东莞网站seo优化
  • 宣传片制作公司报价友情链接seo
  • 温州建设小学网站首页做抖音seo排名软件是否合法
  • 医院图书馆网站建设的意义搜索引擎seo排名优化
  • 怎样做地方门户网站百度检索入口
  • 德阳有哪些做网站的公司seo免费课程
  • 怎么做废品网站2021谷歌搜索入口
  • 做兼职网站设计营销型企业网站建设步骤
  • 美女做暖暖暖视频网站公司软文怎么写
  • 自学做网站可以吗外贸seo网站推广
  • 专业零基础网站建设教学在哪里上海搜索关键词排名
  • 邯郸网站建设渠道深圳优化公司哪家好
  • 企业网站asp模板环球资源外贸平台免费
  • 手机网站制作要求网络营销成功案例分析