iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Java中父子类的加载顺序是什么
  • 808
分享到

Java中父子类的加载顺序是什么

2023-06-20 19:06:04 808人浏览 八月长安
摘要

今天就跟大家聊聊有关Java中父子类的加载顺序是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。1. 静态 > 非静态当且仅当该类在程序中第一次被 new(是第一次被类加载器

今天就跟大家聊聊有关Java中父子类的加载顺序是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

1. 静态 > 非静态

当且仅当该类在程序中第一次被 new(是第一次被类加载器调用时)才会触发(不考虑永久代的回收),但只调用 Main.class 是不会触发的哟。
其实这也是 类优先于对象被加载 的体现。

2. 成员变量 > 成员方法 > 构造方法

  1. 可以这么理解,加载这整个类,需要先知道类具有哪些成员变量,并且这些属性初始化 (private String A = ""; 或者 private String A;) 完毕之后,这个类的对象才算是完整的。

  2. 其实 初始化非静态成员变量 就是 new 对象的准备工作之一,等效于一个不接受任何类外部参数的构造方法。非静态代码块也同理。因此,成员变量 > 非静态代码块 > 构造方法。

3. 子类静态 > 父类非静态

结合第一条,也比较容易得出这一条规律。

测试代码如下:

public class Main { static class A {  static Hi hi = new Hi("A");  Hi hi2 = new Hi("A2");                // 静态代码块  static {   System.out.println("A static");  }                // 非静态代码块  {   System.out.println("A non static");  }  public A() {   System.out.println("A init");  } }        // B 是 A 的子类 static class B extends A {  static Hi hi = new Hi("B");  Hi hi2 = new Hi("B2");                // 静态代码块  static {   System.out.println("B static");  }                // 非静态代码块  {   System.out.println("B non static");  }  public B() {   System.out.println("B init");  } } static class Hi {  public Hi(String str) {   System.out.println("Hi " + str);  } } public static void main(String[] args) {  System.out.println("[First] new B:");  B b = new B();  System.out.println();  System.out.println("[Second] new B:");  b = new B(); }}

运行结果如下:

[First] new B:
Hi A
A static
Hi B
B static
Hi A2
A non static
A init
Hi B2
B non static
B init

[Second] new B:
Hi A2
A non static
A init
Hi B2
B non static
B init

看完上述内容,你们对Java中父子类的加载顺序是什么有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注编程网精选频道,感谢大家的支持。

--结束END--

本文标题: Java中父子类的加载顺序是什么

本文链接: https://www.lsjlt.com/news/299565.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Java中父子类的加载顺序是什么
    今天就跟大家聊聊有关Java中父子类的加载顺序是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。1. 静态 > 非静态当且仅当该类在程序中第一次被 new(是第一次被类加载器...
    99+
    2023-06-20
  • 浅谈Java父子类加载顺序
    先上桌结论,优先被加载的顺序如下: 父类静态成员变量 > 父类静态代码块 > 子类静态成员变量 > 子类静态代码块 > 父类非静态成员变量 > 父类非...
    99+
    2024-04-02
  • Java中类的加载顺序是什么
    本篇文章为大家展示了Java中类的加载顺序是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。具体如下:public class Parent { public static int a = pa...
    99+
    2023-05-31
    java 中类 ava
  • Java子类和父类的初始化执行顺序
      要明白子类和父类的初始化执行顺序,只需要知晓以下三点,就不会再弄错了。  1.创建子类对象时,子类和父类的静态块和构造方法的执行顺序为:父类静态块->子类静态块->父类构造器->子类构造器。深入理解为什么是这个顺序,可...
    99+
    2023-06-02
  • java中子类和父类的关系是什么
    在Java中,子类(也称为派生类)和父类(也称为基类或超类)之间是一种继承关系。子类继承自父类,这意味着子类可以继承父类的属性和方法...
    99+
    2023-08-11
    java
  • 说说@ModelAttribute在父类和子类中的执行顺序
    @ModelAttribute在父类、子类的执行顺序 被 @ModelAttribute 注解的方法会在Controller每个方法执行之前都执行,因此对于一个Controller中...
    99+
    2024-04-02
  • java子类继承父类的方法是什么
    Java中子类继承父类的方法是通过使用关键字`extends`实现的。在子类的声明中,使用`extends`关键字后面跟着父类的名称...
    99+
    2023-08-31
    java
  • java子类调用父类方法是什么
    Java子类调用父类方法是通过使用super关键字来实现的。super关键字可以用来调用父类的构造方法、成员变量和成员方法。通过su...
    99+
    2023-08-09
    java
  • java子类覆盖父类的方法是什么
    Java中子类覆盖父类的方法是通过在子类中定义一个与父类相同签名的方法来实现的。在子类中可以重新实现父类的方法,也可以添加额外的功能...
    99+
    2023-10-08
    java
  • SpringBoot配置加载顺序是什么
    Spring Boot的配置加载顺序如下:1. 首先,加载`application.properties`文件中的配置,这是默认的配...
    99+
    2023-10-07
    SpringBoot
  • Java代码块与代码加载顺序是什么
    本篇内容介绍了“Java代码块与代码加载顺序是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!局部代码块位置:局部位置(方法内部)作用:限...
    99+
    2023-06-02
  • Java类的初始化顺序是什么
    这篇文章主要讲解了“Java类的初始化顺序是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java类的初始化顺序是什么”吧!Java类的初始化顺序 多...
    99+
    2024-04-02
  • html,css,js三者的加载顺序是什么
    这篇文章主要为大家展示了“html,css,js三者的加载顺序是什么”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“html,css,js三者的加载顺序是什么”这...
    99+
    2024-04-02
  • Java中的类加载是什么意思
    本篇内容主要讲解“Java中的类加载是什么意思”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java中的类加载是什么意思”吧!目录类加载<1>.父子类执行的顺序<2>类加...
    99+
    2023-06-20
  • 深入浅析java中的继承关系类的加载顺序
    这篇文章将为大家详细讲解有关深入浅析java中的继承关系类的加载顺序,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。详解java中继承关系类加载顺序问题实例代码:public class So...
    99+
    2023-05-31
    java 继承关系类 ava
  • PHP 函数的加载顺序和执行顺序之间的关系是什么?
    php 函数加载顺序由声明顺序决定,包括脚本中定义、包含文件中的函数、导入命名空间中的函数;执行顺序由函数调用的顺序决定,依次执行脚本中的函数调用。 PHP 函数的加载顺序和执行顺序:...
    99+
    2024-04-18
    php 执行顺序 函数加载顺序
  • Java类的加载机制是什么
    这篇文章主要讲解了“Java类的加载机制是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java类的加载机制是什么”吧!1、什么是类的加载类的加载指的是将类的.class文件中的二进制数...
    99+
    2023-06-17
  • JAVA类的加载过程是什么
    JAVA类的加载过程主要分为加载、链接和初始化三个阶段。 加载:类加载是指将类的.class文件从文件系统或网络加载到内存中,并...
    99+
    2023-10-26
    JAVA
  • java怎么查看jar包加载顺序
    这篇文章给大家分享的是有关java怎么查看jar包加载顺序的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。查看jar包加载顺序查看具体的class从哪个jar保重加载的在JVM启动时,加上如下参数:-verbose...
    99+
    2023-06-22
  • 一文读懂Java中代码的加载顺序
    本篇文章为大家展示了一文读懂Java中代码的加载顺序,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Java中代码的加载顺序所能了解的知识点类的依赖关系static代码块的加载时间继承类中构造器的隐式...
    99+
    2023-05-31
    java 加载顺序 ava
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作