`
伊瑟卡斐
  • 浏览: 217 次
  • 性别: Icon_minigender_1
  • 来自: 西安
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

类的静态加载顺序简单测试

 
阅读更多
public class A {
static {
System.out.println("A的静态块");
}
public A(){
System.out.println("构造A");
}
}
public class B extends A{
public static B b = new B();
public static int numB = 10;
static {
System.out.println("B的静态块,当前numB="+numB);
}
public B(){
System.out.println("构造B,当前numB="+numB);
}
public static void b(){
System.out.println("B的静态方法,当前numB="+numB);
}
}
public static void main(String[] args) {
B.b();
}
执行结果:
A的静态块
构造A
构造B,当前numB=0 //因为在B b = new B()时立马执行了B的构造,所以numB只是默认的初始值0;
B的静态块,当前numB=10
B的静态方法,当前numB=10
public static void main(String[] args) {
B b = new B();
b.b();
}
执行结果:
A的静态块
构造A
构造B,当前numB=0
B的静态块,当前numB=10
构造A
构造B,当前numB=10
B的静态方法,当前numB=10

父类的静态->子类的静态->父类的初始化块->父类的构造方法->子类的初始化块->子类的构造方法
(静态间按顺序执行,且只加载一次)
分享到:
评论

相关推荐

    类加载机制与动态代理的测试题

    - **调用static方法**(C):如果程序中直接调用了某个类的静态方法,则会触发该类的加载。 - **main()方法所在类**(D):程序入口的主类在运行时会被加载。 因此,选项A、B、C、D均正确。 ##### 3. Java虚拟机...

    Rational 测试工具-性能测试 课程大纲

    4. **使用IBMRationalPerformanceTester进行一个简单的性能测试** - **准备阶段:** 设置测试环境,明确测试目标。 - **录制脚本:** 使用工具录制用户的典型操作。 - **配置参数:** 调整脚本中的参数,如并发...

    TestNg测试ppt

    - **创建测试类**:通过 File -> New -> Other... -> TestNG class 来创建一个新的测试类。 - **编写测试方法**:使用 `@Test` 注解标记测试方法,并根据需要使用其他注解进行配置。 #### 六、测试用例的执行顺序 ...

    java类重载,可以用于热更新

    Java类重载是面向对象编程中的一个重要概念,它允许我们在同一个类中定义多个同名方法,...如果你需要更深入地学习这个主题,建议查阅相关的Java教程,实践编写和测试类重载的方法,同时探索如何配置和使用热更新工具。

    Linux静态库和动态库

    **Linux库的分类**:Linux下的库主要分为两大类——静态库与动态库,它们的核心区别在于代码的加载时机。静态库在编译阶段即与目标程序结合,而动态库则是在程序运行时动态加载。 #### 静态库与动态库的生成与使用 ...

    java代码块测试

    为了进行代码块测试,你可以创建一个Action类,使用实例或静态初始化块来设置初始值,然后在execute()方法中执行特定的业务逻辑。同时,可以编写一个finally代码块来确保任何资源的正确关闭。 例如: ```java ...

    LoadingAnimation 动画 加载动画

    - **固定帧动画**:由一系列静态图像按顺序播放构成,常用于创建简单的连续动画效果。在Android中,这可以通过`AnimationDrawable`类实现。 2. **AnimationTest**: - 这个文件名可能对应的是一个测试项目或者一...

    关于前端页面的一些性能测试总结

    综上所述,前端页面性能优化涉及多个方面,包括DOM和渲染树的构建、资源加载顺序、文件压缩合并、缓存策略以及对老旧浏览器的兼容处理。理解并应用这些原则有助于提高页面加载速度,提升用户体验。

    JDBC详解 JDBC详解

    在这种情况下,测试驱动程序的顺序至关重要,因为 DriverManager 将使用它所找到的第一个可以成功连接到给定 URL 的驱动程序。 安全方面 由于安全方面的原因,JDBC 管理层将跟踪哪个类加载器提供哪个驱动程序。...

    JMeter Manual

    总的来说,JMeter是一个强大且灵活的性能测试工具,适用于多种测试需求,无论是简单的网页加载测试还是复杂的分布式压力测试,都能提供详尽的测试数据和分析,帮助开发者和运维人员找出系统的瓶颈,提升应用性能。

    java笔试题大全

    ### Java笔试题大全知识点解析 #### 一、方法重写(Overriding)与方法重载(Overloading) **方法重写(Overriding)** 和 **方法重载...- **类的初始化:** 加载类的同时也会触发类的初始化,如执行静态初始化块等。

    面向对象UML系列第二次作业指导书1

    类图是UML中的一种静态结构图,它描绘了类、接口、协作以及它们之间的关系,如继承、实现、关联、依赖等。在类图中,类通常由三部分组成:类名、属性和操作。属性表示类的数据成员,操作则代表类的方法或行为。 ...

    EasyMock and PowerMock入门PPT

    EasyMock是一个强大的Java库,用于创建模拟对象(Mock Objects),它使得单元测试变得更加简单。在测试过程中,模拟对象可以替代真实的依赖,这样我们就可以专注于测试单个方法,而不用担心其他部分的复杂性。...

    Linux静态and动态链接库 创建和使用

    库文件分为静态库和动态库两大类。静态库在编译阶段被链接进最终的可执行文件中,因此静态库的代码会成为可执行文件的一部分;而动态库则是在程序运行时才被加载和链接的,不会成为最终可执行文件的一部分,这使得...

    安卓动画效果相关-android仿照美团正在加载的动画.rar

    3. **自定义动画**:为了仿制美团的加载动画,开发者可能创建了自定义动画类。这通常涉及到继承自Animation或者Animator类,然后重写关键方法如`applyTransformation()`来定义动画的行为。 4. **帧动画**:另一种...

    Ratpack一个简单干练工具包用于创建高性能的Web应用程序

    此外,Ratpack还集成了Gradle作为其构建工具,使得项目配置和依赖管理变得更加简单。 在实际开发中,Ratpack提供了丰富的API来处理常见的Web任务,如路由、模板渲染、文件上传、WebSocket支持等。例如,通过Ratpack...

    javaSE代码实例

    15.3.3 静态/非静态内部类的区别 333 15.4 匿名内部类 334 15.4.1 基于继承的匿名内部类 334 15.4.2 基于接口实现的匿名内部类 335 15.4.3 匿名内部类的初始化 337 15.4.4 匿名内部类作用的体现 337 ...

    Android安卓应用源码-引导页面类源代码(12例).zip

    - **静态图片**:最简单的引导页形式,通常使用一组静态图片按顺序显示。 - **动画效果**:通过动画增加视觉吸引力,如渐变、滑动等。 - **自定义视图**:开发者可以创建自定义布局和动画,以实现独特的引导效果...

    SimpleJava.pdf

    - **类加载时机**:类在首次主动使用时被加载,例如通过反射调用、实例化、静态字段引用等方式触发。 - **初始化过程**:包括父类初始化、静态块执行、静态变量赋值等步骤。 - **类初始化与类加载的区别**:类加载...

Global site tag (gtag.js) - Google Analytics