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

什么类型的网站好做子域名大全查询

什么类型的网站好做,子域名大全查询,网站域名要实名认证吗,济宁市松岳建设机械有限公司网站目录 1.加载阶段2.连接阶段1.验证2.准备3.解析 3.初始化阶段4.总结 类的生命周期 1.加载阶段 ⚫ 1、加载(Loading)阶段第一步是类加载器根据类的全限定名通过不同的渠道以二进制流的方式获取字节码信息。 程序员可以使用Java代码拓展的不同的渠道。 ⚫ 2、类加载器在加载完类…

目录

  • 1.加载阶段
  • 2.连接阶段
    • 1.验证
    • 2.准备
    • 3.解析
  • 3.初始化阶段
  • 4.总结

在这里插入图片描述
类的生命周期
在这里插入图片描述

1.加载阶段

⚫ 1、加载(Loading)阶段第一步是类加载器根据类的全限定名通过不同的渠道以二进制流的方式获取字节码信息。
程序员可以使用Java代码拓展的不同的渠道。
⚫ 2、类加载器在加载完类之后,Java虚拟机会将字节码中的信息保存到方法区中。
⚫ 3、类加载器在加载完类之后,Java虚拟机会将字节码中的信息保存到内存的方法区中。
生成一个InstanceKlass对象,保存类的所有信息,里边还包含实现特定功能比如多态的信息。
在这里插入图片描述
⚫ 4、同时,Java虚拟机还会在堆中生成一份与方法区中数据类似的java.lang.Class对象。
作用是在Java代码中去获取类的信息以及存储静态字段的数据(JDK8及之后存放在堆区中)。在JDK8以前是静态字段存放在方法区中
主要作用:在实现反射的时候需要先拿到类的基本的信息(class对象)通过其获取其内的方法和字段,进行一系列的操作。
在这里插入图片描述
⚫ 对于开发者来说,只需要访问堆中的Class对象而不需要访问方法区中所有信息。
这样Java虚拟机就能很好地控制开发者访问数据的范围。

  1. instanceKlass是使用C++语言编写的对象,Java语言不能直接去操作这个对象,
  2. Java.lang.Class类中包含的字段要少于instanceKlass中的,instanceKlass中的许多字段是开发者用不到的,为了保护这些数据,Java.lang.Class类中只包含开发者需要用到的方法等字段。

在这里插入图片描述

2.连接阶段

在这里插入图片描述

1.验证

⚫ 连接(Linking)阶段的第一个环节是验证,验证的主要目的是检测Java字节码文件是否遵守了《Java虚拟机规
范》中的约束。这个阶段一般不需要程序员参与。
⚫ 主要包含如下四部分,具体详见《Java虚拟机规范》:

  1. 文件格式验证,比如文件是否以0xCAFEBABE开头,主次版本号是否满足当前Java虚拟机版本要求。
  2. 元信息验证,例如类必须有父类(super不能为空)。
  3. 验证程序执行指令的语义,比如方法内的指令执行到一半强行跳转到其他方法中去。
  4. 符号引用验证,例如是否访问了其他类中private的方法等

2.准备

⚫ 准备阶段为静态变量(static)分配内存并设置初始值。
⚫ 注意:涉及到的内存结构只讨论JDK8及之后的版本
在这里插入图片描述

⚫ 准备阶段只会给静态变量赋初始值,而每一种基本数据类型和引用数据类型都有其初始值。
注: final修饰的基本数据类型的静态变量,准备阶段直接会将代码中的值进行赋值在这里插入图片描述

3.解析

⚫ 解析阶段主要是将常量池中的符号引用替换为直接引用。
⚫ 符号引用就是在字节码文件中使用编号来访问常量池中的内容在这里插入图片描述
⚫ 直接引用不在使用编号,而是使用内存中地址进行访问具体的数据。在这里插入图片描述

3.初始化阶段

⚫ 初始化阶段会执行静态代码块中的代码,并为静态变量赋值。
⚫ 初始化阶段会执行字节码文件中clinit部分的字节码指令。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
⚫ 以下几种方式会导致类的初始化:
1.访问一个类的静态变量或者静态方法,注意变量是final修饰的并且等号右边是常量不会触发初始化。
2.调用Class.forName(String className)。
3.new一个该类的对象时。
4.执行Main方法的当前类。
在这里插入图片描述
在这里插入图片描述
⚫ clinit指令在特定情况下不会出现,比如:如下几种情况是不会进行初始化指令执行的。
1.无静态代码块且无静态变量赋值语句。
2.有静态变量的声明,但是没有赋值语句。
3.静态变量的定义使用final关键字,这类变量会在准备阶段直接进行初始化。在这里插入图片描述
⚫ 直接访问父类的静态变量,不会触发子类的初始化。
⚫ 子类的初始化clinit调用之前,会先调用父类的clinit初始化方法。
在这里插入图片描述
在这里插入图片描述
数组的创建不会导致数组中元素的类进行初始化。
在这里插入图片描述
final修饰的变量如果赋值的内容需要执行指令才能得出结果,会执行clinit方法进行初始化。
在这里插入图片描述

4.总结

在这里插入图片描述
在这里插入图片描述
几个要点:
1.静态变量的定义使用final关键字,这类变量会在准备阶段直接进行初始化
(除非要执行方法)。
2.直接访问父类的静态变量,不会触发子类的初始化。子类的初始化cinit调用之前,
会先调用父类的cinit初始化方法。
在这里插入图片描述

http://www.hkea.cn/news/380481/

相关文章:

  • 做网站都要掌握什么网页模版
  • 网站怎么做qq微信登陆长沙优化网站哪家公司好
  • 为什么上不了建设银行个人网站漳州网络推广
  • 天津手机网站建站培训代运营公司可靠吗
  • 网站制作的一般步骤长春网站优化平台
  • Python做网站 性能上海seo培训中心
  • 网上投诉平台公众号排名优化
  • 网页模板网站推荐媒体公关是做什么的
  • 泰安的网站建设公司爱站网域名查询
  • 台州椒江网站制作公司广告推销
  • 南康做网站合肥seo招聘
  • 成都网站建设定长沙专业网站制作
  • 有什么网站是python做的如何自己开发一个平台
  • 网站建设标志设计北京网站优化公司
  • 图标使用wordpress杭州seo博客
  • 企业网站如何做推广竞价推广托管公司介绍
  • 网站如何做微信登录seo公司 杭州
  • 中山里水网站建设软文广告案例分析
  • 做外贸是用什么网站做新型网络营销方式
  • 心理咨询网站开发百度手机seo软件
  • 17网站一起做网批seo营销优化
  • 做赚钱网站程序员培训班要多少钱
  • 已经收录大规模修改收录页面对网站有影响吗什么软件可以推广自己的产品
  • 丁香园做科室网站厦门网络推广
  • 免费的企业网站制作提高网站权重的方法
  • 兰州网站制作怎么样网页在线生成
  • 自建网站网址雅虎搜索引擎首页
  • 注册科技有限公司可以做网站吗百度搜索排名机制
  • 武汉做网站好网站制作多少钱一个
  • 安阳网站建设怎么从网上找客户