zoukankan      html  css  js  c++  java
  • 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,成员变量从上到下,最后构造函数。

  • 相关阅读:
    Android开发加快sdk更新速度
    Java 解决约瑟夫问题
    单例模式之我见
    用Java来写常见的排序算法
    一位大牛写的单例
    watchdog监控文件变化使用总结——转载
    python-tkinter使用方法——转载(二)
    python-tkinter使用方法——转载(一)
    python中字符串操作
    python中os模块操作目录与文件名小结
  • 原文地址:https://www.cnblogs.com/jing58/p/6001109.html
Copyright © 2011-2022 走看看