zoukankan      html  css  js  c++  java
  • Static变量和方法的一些理解

      静态变量:static,用static修饰符修饰的域是仅属于类的静态变量。静态变量是类中每个对象共享的变量,他们是类的变量,不属于任何一个类的具体对象,是一个公共的存储单元,任何一个类的对象访问它时,取到的都是相同的数值。

      静态初始化器:static,静态初始化器是又static关键字引导的一对大括号括起的语句组,其作用是在加载的时候,初始化类的静态变量。

      与构造函数的相同,都是为了初始化,但是又有所不同

      1.构造函数时对每个新创建的对象进行初始化,而静态初始化器是对类自身进行初始化。

      2.构造函数在用new运算符产生新对象时由系统自动执行,而静态初始化器则是在它所属的类加载到内存时由系统调用执行。

      3.不同于构造函数,静态初始化器不是方法,没有返回值,方法名,和参数。

      当在一个类中定义构造函数和静态初始化器时的调用顺序为,先调用静态初始化器,然后再调用构造函数

      当子类和父类都含有各自的构造函数和静态初始化器时,先调用父类的静态初始化器,然后调用子类的静态初始化器,接着再调用父类的构造函数,最后调用子类的构造函数。

     2 
     3 public class StaticMethod {
     4     public StaticMethod()
     5     {
     6         System.out.println("StaticMethod construter");
     7         
     8     }
     9     
    10     static{
    11         System.out.println("StaticMethod static method");
    12     }
    13     public static void main(String[] args) {
    14         StaticMethod sm = new StaticMethod();
    15     }

    结果为:

    StaticMethod static method
    StaticMethod construter

    当有子类和父类时情况如下:

     1 public class StaticMethod {
     2     public StaticMethod()
     3     {
     4         System.out.println("StaticMethod construter");
     5         
     6     }
     7     
     8     static{
     9         System.out.println("StaticMethod static method");
    10     }
    11 
    12 
    13 }
    14 public class StaticSun extends StaticMethod {
    15     public StaticSun()
    16     {
    17         System.out.println("Sun construter");
    18     }
    19     static{
    20         System.out.println("Sun static method");
    21     }
    22 
    23     public static void main(String[] args) {
    24         // TODO Auto-generated method stub
    25         StaticMethod sm = new StaticSun();
    26 
    27     }
    28 
    29 }

    结果为:

    StaticMethod static method
    Sun static method
    StaticMethod construter
    Sun construter
  • 相关阅读:
    Java 中的 volatile 关键字
    Java 隐式锁
    导致并发程序出问题的根本原因是什么?
    BZOJ_2434_[Noi2011]阿狸的打字机_AC自动机+出栈入栈序+树状数组
    BZOJ_5368_[Pkusc2018]真实排名_组合数
    CF上的3道小题(2)
    BZOJ_4199_[Noi2015]品酒大会_后缀自动机
    BZOJ_4566_[Haoi2016]找相同字符_后缀自动机
    BZOJ_3172_[Tjoi2013]单词_后缀自动机
    BZOJ_3998_[TJOI2015]弦论_后缀自动机
  • 原文地址:https://www.cnblogs.com/luoweiKnowledge/p/4208194.html
Copyright © 2011-2022 走看看