`
yqfly2008
  • 浏览: 17035 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

java 初始化的加载顺序问题

阅读更多
总结一下java里面关于初始化的加载顺序问题:
考虑有一个基类和一个子类的情况
那么,当实例化一个子类的对象或者访问子类的静态域或静态方法时,会进行类的加载.
1)完成基类的static域和static块的初始化.
2)完成子类的static域和static块的初始化.
至此,如果只是访问子类的静态域或静态方法,到此初始化工作已经完成.如果是实例化子类的对象,那么还要继续初始化.
3)完成基类非static成员的默认初始化,即基本数据类型为0,对象类型为null,然后完成基类非static成员的指定初始化,最后完成构造器的初始化.
4)完成子类的初始化,流程跟基类的一样.
注:同一类型元素的初始化,按声明顺序进行.如果还有聚合复用的情况,先完成继承复用的初始化,再完成聚合复用的初始化.

本文出自 “停不了的V” 博客,请务必保留此出处http://2024486.blog.51cto.com/339445/181986

================================================
分享到:
评论

相关推荐

    java面试题静态加载顺序构造方法

    java面试题静态加载顺序构造方法 继承与static 面试题目如下:请写出程序执行完成之后的结果。 package extend; public class X { Y y=new Y(); static{ System.out.println("tttt"); } X(){ System....

    JavaWeb中web.xml初始化加载顺序详解

    本篇文章主要介绍了JavaWeb中web.xml初始化加载顺序详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    Java类加载初始化的过程及顺序

    今天小编就为大家分享一篇关于Java类加载初始化的过程及顺序,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧

    类,对象,成员加载的顺序

    java程序在执行过程中,类,对象以及它们成员加载、初始化的顺序

    Java类加载顺序笔试题-Nicobar:尼科巴

    Java类加载顺序笔试题 Nicobar:Java 的动态脚本和模块加载器框架 Nicobar 是一个 Java 动态脚本框架,由强大的基于 . 脚本可以是源代码,用 JVM 兼容语言(如 Groovy)编写,也可以是编译后的字节码,以 .class ...

    【Java高频面试题】–类的初始化过程以及实例的初始化过程

    要创建一个类的实例,必须加载和初始化该类。 main()方法所在的类,会被优先加载并初始化 子类初始化前,会先加载并初始化它的父类 初始化一个类,其实质上就是执行了()方法 ()方法包含了,静态变量显式赋值代码以及...

    Java实例域初始化方法及顺序

    主要介绍了Java实例域初始化方法及顺序,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

    Java虚拟机类加载机制浅谈

    Java语言是一种编译后再经过解释器执行的过程, 解释器主要是如何处理解释Class文件的二进制字节流。JVM主要包含三大核心部分:运行时...  加载,验证,准备,初始化和卸载在开始的顺序上是固定的,但是可以交叉进行。

    Java 基础核心总结 +经典算法大全.rar

    类的初始化 成员初始化 构造器初始化初始化顺序 数组初始化 对象的销毁 对象作用域 this 和 super 访问控制权限继承 多态组合代理 向上转型static final 接口和抽象类接口 抽象类异常 认 识 Exception 什么是 ...

    疯狂JAVA讲义

    5.3.2 成员变量的初始化和内存中的运行机制 128 5.3.3 局部变量的初始化和内存中的运行机制 130 5.3.4 变量的使用规则 130 5.4 隐藏和封装 132 5.4.1 理解封装 132 5.4.2 使用访问控制符 132 5.4.3 package和...

    Java类加载机制浅析

     5.2、加载顺序  5.3、打破双亲委派机制 所谓类加载机制就是 虚拟机把Class文件加载到内存 并对数据进行校验,转换解析和初始化 形成可以虚拟机直接使用的Java类型,即java.lang.Class   1、装载(Load)  查找和...

    JAVA基础课程讲义

    静态初始化块(经常用来初始化类,加载类信息时执行!) 67 package 68 JDK中的主要包 68 import 68 eclipse的使用 69 继承(extend, inheritance) 70 为什么需要继承?继承的作用? 70 继承介绍 70 如何实现继承? ...

    java深入解析

    248 话题34 不胜枚举——枚举的神秘 258 话题35 按部就班——加载、链接与初始化 265 话题36 择优录取——类型及其成员的选择 283 内容简介 本书分为5章,分别为“基本概念”,“运算符与表达式”,“String类”,...

    java初学者必看

    3.5.2 变量赋值和初始化 3.5.3 常量 3.6 类型转化 3.6.1 数值类型之间的转换 3.6.2 强制类型转换 3.7 运算符 3.7.1 算术运算符 3.7.2 关系运算符 3.7.3 逻辑运算符 3.7.4 位运算符 3.7.5 自动递增和递减 ...

    java面试800题

    (3)按顺序分别调用类成员变量和实例成员变量的初始化表达式; (4)调用本身构造函数。" Q0053 "Public class Servlet extends HttpServlet{ int i; doget(){ i++; out.print(i); } } 每次访问时i是否变化?...

    杰普学习corejava总结笔记

    类加载,同时初始化类中静态的属性(赋默认值) 2.执行静态代码块 3.分配内存空间,同时初始化非静态的属性(赋默认值) 4.调用父类构造器(注意调用父类构造器之前已经给父类的非静态的属性显示赋值,如果有显示赋值的话...

    关于JVM的总结

    生命周期包含: 加载,验证,准备,解析,初始化,使用,卸载 7个阶段,加载,验证,准备,初始化和卸载这5个顺序是确定的,解析阶段则不一定,他在某些情况下可以在初始化阶段之后在开始,这是为了支持Java语言的...

    基于JAVA的推箱子游戏+LW资源+PPT+讲解视频

    将游戏地图做成通用的关卡设计,关卡用二维数组实现,在二维数组中设置值域来表示不同对象,运用二维数组的遍历算法来加载对应图片实现了游戏图片初始化状态。同时,通过初始化多个不同二维数组实现了游戏地图关卡的...

    java 面试题 总结

    以下程序使用内部类实现线程,对j增减的时候没有考虑顺序问题。 public class ThreadTest1{ private int j; public static void main(String args[]){ ThreadTest1 tt=new ThreadTest1(); Inc inc=tt.new Inc(); ...

    javacore:java核心 运算符,控制语句,函数,异常,集合,线程,数组,IO流,网路编程,设计模式,java8,面试相关

    Java基础 java控制流程语句 数据交换 左(右)移 加密 java控制流程语句 switch语句 季节判断 while循环 1+...+100 do while循环 ...jvm类加载顺序决定代码执行顺序 super关键字 方法重写 instanceof关键字 fi

Global site tag (gtag.js) - Google Analytics