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

it行业培训机构一般多少钱郑州seo培训

it行业培训机构一般多少钱,郑州seo培训,怎样做企业网站,青岛网红打卡景点文章目录 1、什么时候一个类会被加载?1、包含 main 方法的主类2、非 包含 main 方法的主类,什么时候去加载? 3、类加载器如何加载一个类?1、验证阶段:2、准备阶段:3、解析阶段:4、初始化&#x…

002_类加载过程 (1).png

文章目录

    • 1、什么时候一个类会被加载?
      • 1、包含 main 方法的主类
      • 2、非 包含 main 方法的主类,什么时候去加载?
    • 3、类加载器如何加载一个类?
      • 1、验证阶段:
      • 2、准备阶段:
      • 3、解析阶段:
      • 4、初始化:
    • 4、父类什么时候加载和初始化?
    • 4、双亲委派机制
      • 1、类加载器类型
      • 2、双亲委派机制原理

1、什么时候一个类会被加载?

1、包含 main 方法的主类

public class Kafka{public static void main(String[] args){}
}

答案:包含 main 方法的主类, 会在JVM 进程启动之后,将 main 方法所在的主类加载到内存里。然后从 main 方法的入口代码开始。

2、非 包含 main 方法的主类,什么时候去加载?

public class KafkaManager{}
public class Kafka{public static void main(String[] args){KafkaManager kafkaManager = new KafkaManager();       }
}

答案:当你需要使用到某个类(KafkaManager.class)去实例化一个对象的时候,类加载器会把 “KafkaManager.class” 字节码文件中的这个类加载到内存中。

3、类加载器如何加载一个类?

1、验证阶段:

答案:根据java虚拟机规范,校验你加载进来的 “.class”文件中的内容,是否符合规范。

2、准备阶段:

答案:加载一个类到内存里,首先需要给这个 “ReplicaManager”类分配一定的内存空间,然后给他里面的类变量(也就是 static 修饰的变量)分配内存空间,来一个默认的初始值。

3、解析阶段:

答案:将符号引用 替换为 直接引用

4、初始化:

答案:执行真正的初始化代码逻辑,static静态代码块中的内容也是在这里执行。

通过 “new ReplicaManager()”实例化类的对象的时候,会触发类的加载到初始化的全过程,然后实例化一个对象出来。

另外,初始化一个类的时候,如果发现他的父类还没有初始化,那么必须先初始化他的父类。

4、父类什么时候加载和初始化?

答案:初始化一个类的时候,发现他的父类还没初始化,那么必须先初始化他的父类

public class KafkaManager extends AbstractDataManager{public static int flushInterval = Configuration.getInt("replicate.flush.interval");public static Map<Integer, Replica> replies;static{loadReplicaFromDisk();}public static void loadReplicaFromDisk(){this.replies = new HashMap<>();}
} 

如果你要 “new ReplicaManager()” 初始化这个类的实例,那么就会加载这个类,然后初始化这个类,但是初始化这个类之前,发现 AbstractDataManager 还没有加载和初始化,就需要先加载这个父类,并且初始化这个父类。

4、双亲委派机制

002_2_类加载器.png

1、类加载器类型

1、启动类加载器:Bootstrap ClassLoader, 负责加载机器上安装java目录下的核心类(java安装目录下有一个lib目录,里面就是java最核心的一些类库)

2、扩展类加载器:Extension ClassLoader, 负责加载java安装目录下的 “lib\ext”目录下的一些类

3、应用类加载器:Application ClassLoader, 负责加载“classPath”环境变量锁指定路径中的类,大概就是加载你写好的java代码。

4、自定义类加载器:根据你自己的需求加载你的类

2、双亲委派机制原理

假设你的应用程序需要去加载一个类,他首先会委派给自己的父类加载器去加载,经过层层床底,最终传递到顶层的类加载器去加载。

但是如果父类加载器在自己负责范围加载的范围内没有找到这个类,就会将加载的权利给自己的子类加载器去进行加载。

简单一点:先去找父类去加载,父类加载不到,就交给儿子来加载,这样可以避免多层级的加载器结构重复加载某些类。

http://www.ritt.cn/news/919.html

相关文章:

  • 宁晋网站建设公司百度广告点击软件
  • 阿里云网站建设怎么样做一个app平台需要多少钱
  • 公司网站没备案如何推广我的网站
  • 做网站好还是做安卓app好seo排名教程
  • 导购类网站建设多少钱腾讯云域名注册
  • 个人阿里云账号可以做网站备案网上推广用什么平台推广最好
  • 廊坊网站自助建站线上销售渠道有哪几种
  • 电池外贸一般在哪些网站做调价智能关键词软件
  • 菏泽手机网站建设网站优化的方法与技巧
  • 做文案图片上什么网站近期时事新闻10条
  • 企石镇做网站国通快速建站
  • 中铁航空港建设集团网站北京seo顾问外包
  • 创建站怎么上传网站怎么办百度怎么转人工客服
  • 南京优质网站建设方案大数据技术主要学什么
  • 百度推广竞价结构优化设计
  • 漂亮公司网站源码打包下载百度的排名规则详解
  • 适合翻译做兼职的网站seo课程
  • 昆明哪个公司做网站建设最好大一html网页制作作业简单
  • 官网型网站开发什么叫seo网络推广
  • 网站导航栏字体资源链接搜索引擎
  • 来个网站吧好人一生平安2021掉发脱发严重是什么原因
  • 做网站做app区别百度网盘app下载安装手机版
  • 做网站公众号短视频推广策略
  • 音乐网站的音乐怎么做音乐试听郑州网站营销推广
  • 做汉字的教育网站外贸网络营销推广
  • 全景网站如何做注册城乡规划师好考吗
  • 仿素材下载网站源码软文写作公司
  • 学校网站建设要求最近三天发生的重要新闻
  • 湖南做网站 都来磐石网络长春网站推广公司
  • 西安哪里有做网站的seo优化服务是什么