您当前的位置:首页 > 电脑百科 > 程序开发 > 语言 > JAVA

Java类的加载顺序是怎样的

时间:2024-01-03 13:47:44  来源:今日头条  作者:程序员界的彭于晏

1、虚拟机首次加载类时,会对静态初始块,静态对象,静态方法进行一次初始化。

2、只有调用new方法时才会创建实例。

3、类实例创建过程:首先执行父类初始化块部分,然后是父类的构造方法。然后是子类的初始化快和构造方法。

4、类实例销毁时,先销毁子类部分,在销毁父类部分。

 

 

打印内容:

1
2
3
a
4

实例化对象的过程:

1.检查类是否加载,如果没有加载就加载这个类,要加载所有父类;

懒式加载(按需加载):如果第一次用到加载,只加载一下.通过ClassPath制定的路径寻找类文件(.class) 加载以后是一个对象,类型是class.获得这个类对象:student.class-->class实例

2.在内存堆中分配对象空间.递归分配所有父类和子类属性空间.先父类型再子类型,属性默认自动初始化.自动初始化为"0"值;

3.进行属性的赋值;

4.递归调用父类构造器.(默认调用父类无参构造器);

5.调用本类构造器

JAVA编程思想上是这么描述的:

1、当某个型别为Dog(这里用Dog表示一个类)的对象首次被产生出来,或是当class Dog的static函数或static数据成员首次被访问,java直译器必须查找环境变量classpath所指定的位置,找出Dog.class。

2、一旦Dog.class 被装载,他的所有static动作就会被执行起来。因此他的static初始化动作只会发生一次,就是在class对象首次被装载时。

3、当你new Dog()时,构造过程会先为Dog对象在heap上分配足够的存储空间。

4、这块存储空间会被清为0,并自动将Dog对象内所有隶属基本型别的数据设为缺省值(对数字来说是0),并将references设为null。

5、执行所有出现于数据定义处的初始化动作。

6、执行构造函数。

 

 

控制台输出结果:

this is static method~
0
this is static block
1
this is TestInstanceInit's constructor~

如果有一个变量怎么处理呢:

 

 

控制台输出结果: 静态变量
静态初始化块
变量
初始化块
构造器



Tags:Java类   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
Java类的加载顺序是怎样的
1、虚拟机首次加载类时,会对静态初始块,静态对象,静态方法进行一次初始化。2、只有调用new方法时才会创建实例。3、类实例创建过程:首先执行父类初始化块部分,然后是父类的构造方...【详细内容】
2024-01-03  Search: Java类  点击:(59)  评论:(0)  加入收藏
深入探究Java类继承与接口实现
类索引、父类索引和接口索引是在JavaClass文件中用来确定类的继承关系的重要数据。通过这些索引,Java虚拟机可以准确地建立类之间的继承关系,实现多态性和接口的实现。首先,类...【详细内容】
2023-11-17  Search: Java类  点击:(198)  评论:(0)  加入收藏
Java类加载的护城河:深入探究双亲委派机制
前言关于类加载,有两个非常重要的内容,就是类加载器和双亲委派机制,也是面试时常见考核问题。一、类加载器还是以这个简单的代码为例:arduino复制代码package com.jvm.test; pub...【详细内容】
2023-08-21  Search: Java类  点击:(219)  评论:(0)  加入收藏
为什么Java类不支持多继承而接口可以?
每个用Java的人都知道java不支持多继承,但为什么呢?无论从抽象还是多态等层面思考,感觉都是行得通的,那么为什么不支持呢? 很多人都是分析一旦一个类继承了多个父类,那么父类中如...【详细内容】
2020-09-22  Search: Java类  点击:(204)  评论:(0)  加入收藏
Java类加载机制实现流程及原理详解
这篇文章主要介绍了Java类加载机制实现流程及原理详解,是我在网上看到的,简单易懂,是我喜欢的‘快餐’,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一...【详细内容】
2020-06-16  Search: Java类  点击:(293)  评论:(0)  加入收藏
如何理解JAVA类装载器ClassLoader?高级开发才懂的技术点
类装载器就是录找类的字节码文件并构造出类的JVM内部表示对象的组件,在JAVA中,类装载器把一个类装入JVM中,需要如下步骤:1、装载:查找和导入Class文件2、链接:执行校验,准备和解析...【详细内容】
2019-11-22  Search: Java类  点击:(514)  评论:(0)  加入收藏
Java类的加载机制
1、什么是类的加载类的加载指的是将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个java.lang.Class对象,用来封装类在方法区...【详细内容】
2019-09-12  Search: Java类  点击:(902)  评论:(0)  加入收藏
Java类加载及对象创建过程详解
类加载过程类加载的五个过程:加载、验证、准备、解析、初始化。 加载在加载阶段,虚拟机主要完成三件事: 通过一个类的全限定名来获取定义此类的二进制字节流。 将这个字节流...【详细内容】
2019-07-25  Search: Java类  点击:(1116)  评论:(0)  加入收藏
▌简易百科推荐
Java 8 内存管理原理解析及内存故障排查实践
本文介绍Java8虚拟机的内存区域划分、内存垃圾回收工作原理解析、虚拟机内存分配配置,以及各垃圾收集器优缺点及场景应用、实践内存故障场景排查诊断,方便读者面临内存故障时...【详细内容】
2024-03-20  vivo互联网技术    Tags:Java 8   点击:(14)  评论:(0)  加入收藏
如何编写高性能的Java代码
作者 | 波哥审校 | 重楼在当今软件开发领域,编写高性能的Java代码是至关重要的。Java作为一种流行的编程语言,拥有强大的生态系统和丰富的工具链,但是要写出性能优异的Java代码...【详细内容】
2024-03-20    51CTO  Tags:Java代码   点击:(19)  评论:(0)  加入收藏
在Java应用程序中释放峰值性能:配置文件引导优化(PGO)概述
译者 | 李睿审校 | 重楼在Java开发领域,优化应用程序的性能是开发人员的持续追求。配置文件引导优化(Profile-Guided Optimization,PGO)是一种功能强大的技术,能够显著地提高Ja...【详细内容】
2024-03-18    51CTO  Tags:Java   点击:(23)  评论:(0)  加入收藏
Java生产环境下性能监控与调优详解
堆是 JVM 内存中最大的一块内存空间,该内存被所有线程共享,几乎所有对象和数组都被分配到了堆内存中。堆被划分为新生代和老年代,新生代又被进一步划分为 Eden 和 Survivor 区,...【详细内容】
2024-02-04  大雷家吃饭    Tags:Java   点击:(55)  评论:(0)  加入收藏
在项目中如何避免和解决Java内存泄漏问题
在Java中,内存泄漏通常指的是程序中存在一些不再使用的对象或数据结构仍然保持对内存的引用,从而导致这些对象无法被垃圾回收器回收,最终导致内存占用不断增加,进而影响程序的性...【详细内容】
2024-02-01  编程技术汇  今日头条  Tags:Java   点击:(68)  评论:(0)  加入收藏
Java中的缓存技术及其使用场景
Java中的缓存技术是一种优化手段,用于提高应用程序的性能和响应速度。缓存技术通过将计算结果或者经常访问的数据存储在快速访问的存储介质中,以便下次需要时可以更快地获取。...【详细内容】
2024-01-30  编程技术汇    Tags:Java   点击:(72)  评论:(0)  加入收藏
JDK17 与 JDK11 特性差异浅谈
从 JDK11 到 JDK17 ,Java 的发展经历了一系列重要的里程碑。其中最重要的是 JDK17 的发布,这是一个长期支持(LTS)版本,它将获得长期的更新和支持,有助于保持程序的稳定性和可靠性...【详细内容】
2024-01-26  政采云技术  51CTO  Tags:JDK17   点击:(88)  评论:(0)  加入收藏
Java并发编程高阶技术
随着计算机硬件的发展,多核处理器的普及和内存容量的增加,利用多线程实现异步并发成为提升程序性能的重要途径。在Java中,多线程的使用能够更好地发挥硬件资源,提高程序的响应...【详细内容】
2024-01-19  大雷家吃饭    Tags:Java   点击:(105)  评论:(0)  加入收藏
这篇文章彻底让你了解Java与RPA
前段时间更新系统的时候,发现多了一个名为Power Automate的应用,打开了解后发现是一个自动化应用,根据其描述,可以自动执行所有日常任务,说的还是比较夸张,简单用了下,对于office、...【详细内容】
2024-01-17  Java技术指北  微信公众号  Tags:Java   点击:(95)  评论:(0)  加入收藏
Java 在 2023 年仍然流行的 25 个原因
译者 | 刘汪洋审校 | 重楼学习 Java 的过程中,我意识到在 90 年代末 OOP 正值鼎盛时期,Java 作为能够真正实现这些概念的语言显得尤为突出(尽管我此前学过 C++,但相比 Java 影响...【详细内容】
2024-01-10  刘汪洋  51CTO  Tags:Java   点击:(74)  评论:(0)  加入收藏
站内最新
站内热门
站内头条