`
下溪下
  • 浏览: 10209 次
社区版块
存档分类
最新评论

关于java 实例化 构造函数 ,static代码块 属性 执行顺序

    博客分类:
  • java
阅读更多
package com.domain;

public class A {
static{
System.out.println("A的static方法");
}
public static void main(String[] args) {
System.out.println("main 方法 打印!");
new B();
new B();

}
}

class B extends C{
static{
System.out.println("B 的 static 代码块!");
}
public B(){
System.out.println("B 的构造函数!");
}
{
System.out.println("B的普通代码块!");
}
}
class C{
static{
System.out.println("C 的 static 代码块!");
}
public C(){
System.out.println("C 的构造函数!");
}
{
System.out.println("C的普通代码块!");
}
}


输出结果为:
A的static方法
main 方法 打印!
C 的 static 代码块!
B 的 static 代码块!
C的普通代码块!
C 的构造函数!
B的普通代码块!
B 的构造函数!
C的普通代码块!
C 的构造函数!
B的普通代码块!
B 的构造函数!


得出结论:

对于一个类,先加载static代码块。然后加载main方法, 对于实例化一个对象,先从继承关系入手,执行父类,子类,的static方法,且只执行一次,然后加载普通代码块,然后加载构造函数。按照继承关系最后到子类。
分享到:
评论

相关推荐

    java 静态非静态 字段方法 子类父类构造_初始化顺序!

    java 静态_非静态 字段_方法_代码块 子类父类构造_初始化顺序! 三个class 让你清清楚楚 第一个class java代码如下: package initialOrder; class Parent { // 静态变量 public static String p_StaticField...

    Java开发技术大全(500个源代码).

    代码范例列表 第1章 示例描述:本章演示如何开始使用JDK进行程序的开发。 HelloWorldApp.java 第一个用Java开发的应用程序。 firstApplet.java 第一个用Java开发的Applet小程序。 firstApplet.htm 用来装载...

    java编程基础,应用与实例

    5.11 构造函数 79 5.12 类的初始化 83 5.12.1 静态块 84 5.12.2 实例块 84 5.13 巩固练习 85 第6章 数组 86 6.1 基本数据类型数组 86 6.2 一维数组的初始化 88 6.3 对象数组 88 6.4 二维数组 ...

    java 面试题 总结

    Static Nested Class是被声明为静态(static)的内部类,它可以不依赖于外部类实例被实例化。而通常的内部类需要在外部类实例化后才能实例化。 22、JSP中动态INCLUDE与静态INCLUDE的区别? 动态INCLUDE用jsp:...

    JAVA面试题最全集

    一、Java基础知识 1.Java有那些基本数据类型,String是不是基本数据类型,他们有何区别。 2.字符串的操作: 写一个方法,实现字符串的反转,如:输入abc,输出cba 写一个方法,实现字符串的替换,如:输入...

    超级有影响力霸气的Java面试题大全文档

    Static Nested Class是被声明为静态(static)的内部类,它可以不依赖于外部类实例被实例化。而通常的内部类需要在外部类实例化后才能实例化。 25、JSP中动态INCLUDE与静态INCLUDE的区别?  动态INCLUDE用jsp:...

    javaSE代码实例

    10.6 Java程序的加载过程 190 10.7 小结 192 第三篇 高级基础篇 第11章 异常处理——Java世界的医生 195 11.1 异常处理的基本知识 195 11.1.1 try和catch捕获异常 195 11.1.2 异常的传播过程 198 ...

    C++编程思想习题

    4.1用构造函数确保初始化 4.2用析构函数确保清除 4.3清除定义块 4.3.1for循环 4.3.2空间分配 4.4含有构造函数和析构函数的stash 4.5含有构造函数和析构函数的stack 4.6集合初始化 4.7缺省构造函数 4.8小结 4.9练习 ...

    Java面试宝典-经典

    11、有数组a[n],用java代码将数组元素顺序颠倒 80 12.金额转换,阿拉伯数字的金额转换成中国传统的形式如:(¥1011)->(一千零一拾一元整)输出。 81 三. html&JavaScript&ajax部分 82 1. 判断第二个日期比第一...

    谭浩强C语言程序设计,C++程序设计,严蔚敏数据结构,高一凡数据结构算法分析与实现.rar )

    13.4.3 数据块读写函数fread 和fwtrite 209 13.4.4 格式化读写函数fscanf和fprintf 201 13.5 文件的随机读写 202 13.5.1 文件定位 202 13.5.2 文件的随机读写 203 13.6 文件检测函数 204 13.6.1 文件结束检测函数 ...

    Java面试宝典2010版

    11、有数组a[n],用java代码将数组元素顺序颠倒 80 12.金额转换,阿拉伯数字的金额转换成中国传统的形式如:(¥1011)->(一千零一拾一元整)输出。 81 三. html&JavaScript&ajax部分 82 1. 判断第二个日期比第一...

    java经典面试2010集锦100题(不看你后悔)

    System.out.println("我是构造函数"); count++; number++; } } class test { public static void main(String[] args) { A t1= new A(); A t2 = new A(); A t3 = new A(); System.out.println(t3....

    Java精华(免费版)

    编程实例:在java程序中启动一个windows记事本程序的运行实例,并在该运行实例中打开该运行程序的源文件,启动的记事本程序5秒后关闭。 public class Property { public static void main(String[] args) { Process ...

    c#学习笔记——学习心得

    向方法传递结构时,是通过传值方式传递的,结构实例化可以不用new,结构可以声明构造函数,但必须带参数,且声明的构造函数是用来对成员初始化的,必须包含每个字段。结构不能从另一个结构或类继承而来,但可以实现...

    【05-面向对象(下)】

    如果代码块只有包含一条语句,Lambda表达式允许省略代码块的花括号,如果省略了代码块的花括 号,这条语句不要用花括号表示语句结束。Lambda代码块只有一条return语句,甚至可以省略return关键字。 Lambda表达式...

    谭浩强C语言程序设计,C++程序设计,严蔚敏数据结构,高一凡数据结构算法分析与实现.rar

    13.4.3 数据块读写函数fread 和fwtrite 209 13.4.4 格式化读写函数fscanf和fprintf 201 13.5 文件的随机读写 202 13.5.1 文件定位 202 13.5.2 文件的随机读写 203 13.6 文件检测函数 204 13.6.1 文件结束检测函数 ...

    java面试题大全(2012版)

    11、有数组a[n],用java代码将数组元素顺序颠倒 80 12.金额转换,阿拉伯数字的金额转换成中国传统的形式如:(¥1011)->(一千零一拾一元整)输出。 81 三. html&JavaScript;&ajax;部分 82 1. 判断第二个日期比第...

    C++ Primer中文版(第5版)李普曼 等著 pdf 1/3

     16.1.5 控制实例化 597  16.1.6 效率与灵活性 599  16.2 模板实参推断 600  16.2.1 类型转换与模板类型参数 601  16.2.2 函数模板显式实参 603  16.2.3 尾置返回类型与类型转换 604  16.2.4 函数指针和实参...

    C++Primer(第5版 )中文版(美)李普曼等著.part2.rar

     16.1.5 控制实例化 597  16.1.6 效率与灵活性 599  16.2 模板实参推断 600  16.2.1 类型转换与模板类型参数 601  16.2.2 函数模板显式实参 603  16.2.3 尾置返回类型与类型转换 604  16.2.4 函数指针和实参...

Global site tag (gtag.js) - Google Analytics