首页 > 代码库 > static详谈
static详谈
Static
静态代码块:
static块可以置于类中的任何地方,类中可以有多个static块。在类初次被加载的时候,会按照static块的顺序来执行每个static块,并且只会执行一次。
静态成员变量:
静态成员变量对所有对象所共享的,在内存中只有一个副本。只初始化一次。
静态方法:
静态方法中只能调用静态方法和静态的成员变量 ,在静态方法中不能使用this关键字,因为它是不需要构造对象就能直接访问的,而this表示的是一个对象。
实例:
package cn.com.net; public class Z extends X{ Y y=new Y(); public static void main(String[] args) { // TODO Auto-generated method stub System.out.println("--start main-----"); new Z(); System.out.println("--end main-----"); } Z(){ System.out.println("Z"); } { System.out.println("方法Z"); } static{ System.out.println("staticZ"); } } class X{ X(){ System.out.println("X"); } { System.out.println("方法X"); } static{ System.out.println("staticX"); } Y y=new Y(); } class Y{ Y(){ System.out.println("Y"); } { System.out.println("方法Y"); } static{ System.out.println("staticY"); } }
运行结果:
staticX
staticZ
--start main-----
方法X
staticY
方法Y
Y
X
方法Y
Y
方法Z
Z
--end main-----
由结果分析可知在运行main方法后,将要加载类Z,后发现继承了X就先去加载X,静态代码块先被加载,然后装载Z,Z的静态代码块也被加载,接着按顺序初始化成员,最后运行构造函数。先父后子,先static,成员变量从上到下,最后构造函数。
static详谈
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。