• java _static 关键字


    • 在类中,用static声明的成员变量为静态成员变量 ,或者叫做: 类属性,类变量.

       • 它为该类的公用变量,属于类,被该类的所有实例共享,在类被载入时被显式初始化,

      • 对于该类的所有对象来说,static成员变量只有一份。被该类的所有对象共享!!

    • 优先于对象存在,随着类的加载而加载  

      • 可以使用”对象.类属性”来调用。不过,一般都是用“类名.类属性”

      • static变量置于方法区中!

      如果一个类中所有的成员都是静态的。那么它的构造函数应该设置成 private 的,这样以避免 这个类 被创建成对象

                    


    • 用static声明的方法为静态方法

      • 不需要对象,就可以调用(类名.方法名)

      • 在调用该方法时,不会将对象的引用传递给它,所以static方法中不可访问非static的成员。只能访问静态成员变量和静态成员方法;

        而非静态方法,既可以访问静态成员也可以访问非静态成员

      • 静态方法不能以任何方式引用this和super关键字;(随着类加载而加载,而this是随着对象的创建而存在)

    public class TestStatic { 
    
        int a; 
        static int width; 
    
        static void gg(){
             System.out.println("gg"); } 
    
        void tt(){ 
            System.out.println("tt"); } 
    
        public static void main(String[] args){ 
            TestStatic hi = new TestStatic(); 
            TestStatic.width = 2; 
            TestStatic.gg();  //gg(); 
            hi.gg();    //通过引用也可以访问static变量或static方法。不过,一般还 是使用类名.static成员名来访问。 
            gg(); 
           } 
    }

    静态初始化块

    • 如果希望加载后,对整个类进行某些初始化操作,可以使用static初始化块。

    类第一次被载入时先执行static代码块;类多次载入时,static代码块只执行一次;Static 经常用来进行static变量的初始化。

    • 是在类初始化时执行,不是在创建对象时执行。

    • 静态初始化块中不能访问非static成员。

    public class TestStaticBlock { 
        static { 
            System.out.println("此处,可执行类的初始化工作!"); 
            }
         public static void main(String[] args) { 
         System.out.println("main方法中的第一句");
         }
     }            
  • 相关阅读:
    在ASP.NET MVC中使用DropDownList引用。呵呵。
    获取泛型对象
    Tomcat JVM 初始化加大内存
    Tomcat6.0 连接池的配置
    @ResponseBody与Ajax
    c3po数据库连接池中取出连接
    SpringMVC
    JQuery发送Ajax请求
    Java生成验证码
    Spring初学
  • 原文地址:https://www.cnblogs.com/gaoyang666/p/10802940.html
Copyright © 2020-2023  润新知