百天打卡计划第四天-Thread之类的加载过程

类的加载过程

类的加载过程一般分为三个大阶段,加载阶段、连接阶段、初始化阶段。

1加载阶段:主要是负责查找并加载类的二进制数据文件,其实就是class文件。
2连接阶段:连接阶段的工作主要分为三个阶段

  • 验证:主要是确保类文件的正确性。
  • 准备:为类的静态变量分配内存,并为其初始化。
  • 解析:把类中的符号引用转换为直接引用。

3初始化阶段:为静态变量赋予正确的初始值(代码编写阶段给定的值)

类的主动加载与被动加载

jvm中每个类或者接口被java程序首次主动使用时才会对其进行初始化。

6种主动使用类的场景:

  1. 通过new关键字会导致类的初始化
  2. 访问类的静态变量会导致类的初始化
  3. 访问类的静态方法
  4. 对某个类进行反射操作
  5. 初始化子类会导致父类的初始化
  6. 启动类

除了上述六种情况,其余的都被称为被动使用,不会导致类的初始化。

  • 引用类的静态常量不会导致类的初始化。
  • 构造某个类的数组时不会引起该类的初始化。

热门文章

暂无图片
编程学习 ·

Qt 文件路径操作

//mSaveName = "C:/aaaa/fff.txt"; auto info = QFileInfo(mSaveName); QString pathName = info.absolutePath();// "C:/aaaa" QString baseName = info.baseName(); //"fff" QString fileName = info.fileName(); //"fff.txt"
暂无图片
编程学习 ·

C语言 介绍

一.C的历史 编程语言的发展过程: 第1代语言 机器语言↓ 第2代语言 汇编语言↓ 第3代语言 高级语言——结构化:C,Fortran,Basic,Pascal↓分界线:1980s面向对象(OO):Algo,Simula67,Ada,SmallTalkC++,Java,C#结构化语言的缺陷: 操作和数据是分离的C语言的起源: 1969…
暂无图片
编程学习 ·

CnPlugin是PL/SQL Developer工具插件使用

CnPlugin是PL/SQL Developer工具插件,支持PL/SQL Developer 7.0以上版本。1、安装2、拷贝文件安装结束后,得到一个 CnPlugin.dll 和 “CnPlugin”的文件夹,把这两个拷贝到 PL/SQL Developer的安装路径下的 “PlugIns”目录下,重启PL/SQL Develop可以使用了,打开的时候 会在…
暂无图片
编程学习 ·

『杭电1251』统计难题

Problem DescriptionIgnatius最近遇到一个难题,老师交给他很多单词(只有小写字母组成,不会有重复的单词出现),现在老师要他统计出以某个字符串为前缀的单词数量(单词本身也是自己的前缀).Input输入数据的第一部分是一张单词表,每行一个单词,单词的长度不超过10,它们代表的是老师…
暂无图片
编程学习 ·

vs2017试用期满了无法登陆怎么办

VS2017出现许可证过期解决方法 vs2017是免费社区,但是第一次试用的时候没有登录账户,提示试用期满不能进行操作。 查到有一下几种方法: 1、在帮助栏里输入序列号进行激活,此时必须处于许可证未过期状态进行激活,否则只能退出visual。 2、重新安装vs,对于一部分人来说是有…
暂无图片
编程学习 ·

Fincy究竟如何成为东南亚值得信赖的首选支付平台?

“去中心化”的区块链网络提供了低成本的信用解决机制,基础规则在被写入区块链协议后,可以一直保障链上合约按规则运行,而不需要特定的中心化机构维护。区块链技术带来的“共同账簿”有潜力实现全球市场的跨场所实时结算,大幅提高交易后处理环节的运行效率,为全球支付的拓…
暂无图片
编程学习 ·

[UML] 类图之间的关系 | 4.接口与实现关系

[UML] 类图之间的关系 | 4.接口与实现关系 4.接口与实现关系接口之间也可以有与类之间关系类似的继承关系和依赖关系接口和类之间存在一种实现(Realization)关系,在这种关系中,类实现了接口,类中的操作实现了接口中声明的操作在UML中,类与接口之间的实现关系用带空心三角形…
暂无图片
编程学习 ·

leetcode 718.最长重复子数组

原题 718.最长重复子数组 2020年7月1日 每日一题题解 方法一 暴力法。 /*暴力法 @v7fgg 执行用时:2265 ms, 在所有 Java 提交中击败了5.00%的用户 内存消耗:39.3 MB, 在所有 Java 提交中击败了100.00%的用户 2020年7月1日 8:03 */ class Solution {public int findLength(int…
暂无图片
编程学习 ·

致敬建党99年 | 不忘初心,砥砺前行

致敬建党99年 | 不忘初心,砥砺前行 七一建党节(1921-2020) 听风雨飘摇,看沧桑巨变 一个民族的图存、崛起、强盛 离不开一代代中华儿女的奋斗与牺牲 在此 热烈庆祝中国共产党成立99年共产党一路走来,始终坚持了为中国人民谋幸福、为中华民族谋复兴的初心和使命。 这一份不忘…
暂无图片
编程学习 ·

安装Ubuntu系统时遇见的问题:

安装双系统,在已有win10的基础上安装Ubuntu18.04相关设备:1)Rufus 3.112) Ubuntu18.04.4的镜像文件通过使用rufus来制作U盘启动器,因为网上有详细教程就不介绍了。由于之前有多次安装Ubuntu的经历,磁盘分区比较乱,以及因为在之后的选择安装里如果卸载之前安装的Ubuntu就不…
暂无图片
编程学习 ·

Hadoop----HDFS的API操作

HDFS文件上传 1、源代码` @Test public void testCopyFromLocalFile() throws IOException,InterruptedException,URISyntaxException{//1、获取文件系统Configuration configuration = new Configuration();configuration.set("dfs.replication","2");//副…
暂无图片
编程学习 ·

Android视频的操作

上节课我们着重介绍了Android中的音频的处理,通过学习,我们已经熟悉并掌握了多媒体开发的几个操作,大致可以分为:a播放和采集编解码处理算法处理,实现特殊功能标准协议以及播放器工具类的开发 本节课我们来看一下Android的视频的相关操作。Android提供了常见的视频的编码、…
暂无图片
编程学习 ·

java学习基础:Math类

记录学习java路程将与风雨相伴!!! Math类(数学类) 算术计算 Math.sqrt():计算平方根 Math.cbrt():计算立方根 Math.pow(a,b):计算a的b次方 Math.max(,):计算最大值 Math.min(,):计算最小值 Math.abs():取绝对值 进位 Math.ceil():天花板的意思,就…
暂无图片
编程学习 ·

HDU3342 Legal or Not(拓扑排序)

HDU3342 Legal or Not(拓扑排序) Description ACM-DIY is a large QQ group where many excellent acmers get together. It is so harmonious that just like a big family. Every day,many “holy cows” like HH, hh, AC, ZT, lcc, BF, Qinz and so on chat on-line to ex…
暂无图片
编程学习 ·

pyspark_聚合操作groupby_sum

print(*****************整体变化:) print(DF_temp.groupby().agg({deposit_increase:sum}).collect()) print(***************存款人均变化:) print(DF_temp.groupby().agg({deposit_increase:mean}).collect())
暂无图片
编程学习 ·

手把手教你理解Volatile关键字

volatile关键字volatile 关键字是java提供的一种轻量级同步机制。他能够保证可见性和有序性,但是不能保证原子性。volatile可见性可见性表示被这个关键字所修饰的实例,在被修改后,其他的线程均可见。class MyData { // 如果没有volatile关键字的话,那我们在修改number的…
暂无图片
编程学习 ·

LeetCode 237. 删除链表中的节点

目录结构1.题目2.题解1.题目请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点,你将只被给定要求被删除的节点。现有一个链表 -- head = [4,5,1,9],它可以表示为:示例:输入: head = [4,5,1,9], node = 5 输出: [4,1,9] 解释: 给定你链表中值为 5 的第二个节点,那…
暂无图片
编程学习 ·

操作URL的黑科技

处理URL的query的接口:URLSearchParams// 处理URL的query的接口:URLSearchParams // 简单使用 let url = ?wd=胡歌&love=fx&year=2020; let searchParams = new URLSearchParams(url); for (let p of searchParams) {console.log(p); } // ["wd", "胡…