博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java知识积累——静态代码块,非静态代码块,构造器的执行顺序和次数
阅读量:6319 次
发布时间:2019-06-22

本文共 836 字,大约阅读时间需要 2 分钟。

看如下程序

1 class A { 2    static{ 3       System.out.println("A static"); 4    }    5  6    { 7       System.out.println("A not static");  8    }    9 10    public A(){11       System.out.println("A new");12    }13 }14 15 class B extends A{16    static{17       System.out.println("B static");18    }   19 20    {21       System.out.println("B not static"); 22    }  23 24    public B(){25       System.out.println("B new");26    }27 } 28 29 public class MainTest {30    public static void main(String[] args) {31       A ab= new B();32       ab= new B();33    }34 }

输出如下:

A static

B static

A not static

A new

B not static

B new

A not static

A new

B not static

B new

 

结论: 

静态代码块只有类首次加载进内存时调用一次,只此一次。

非静态代码块,每次创建对象时,会在构造函数之前被调用。

构造函数,每次创建对象时,最后调用。

创建子类对象时,先创建父类对象,再创建子类对象。

转载于:https://www.cnblogs.com/FlameRen/archive/2013/01/31/2886703.html

你可能感兴趣的文章
【poj 1962】Corporative Network(图论--带权并查集 模版题)
查看>>
使用AngularJS学习MVC的基础知识分享
查看>>
UDP template 代码
查看>>
爬虫 高性能
查看>>
使用React、Node.js、MongoDB、Socket.IO开发一个角色投票应用的学习过程(二)
查看>>
干吧跌!~brothers!~~
查看>>
linux 0.11 源码学习(七)
查看>>
函数模板的简单用法
查看>>
利用 LINQ的skip和Take 方法对List实现分页效果
查看>>
python 中的列表解析和生成表达式 - 转
查看>>
jQuery数组的遍历 function的加载
查看>>
杂记~~~MFC SOCKET
查看>>
AWK文本处理工具(Linux)
查看>>
完成评论功能
查看>>
VC 输入法注入源码
查看>>
BinaryTree I
查看>>
IE6-IE9兼容性问题列表及解决办法_补充之四:HTC (Html Components) 功能逐渐被IE抛弃...
查看>>
Verilog与C/C++的一些区别
查看>>
DIV焦点事件详解 --【focus和tabIndex】
查看>>
vim php代码规范
查看>>