通俗说下java中的static

    xiaoxiao2026-08-13  13

    1.static 当他是修饰的方法的时候

     如:public static void person()

           {

          }

        public  void  A()

        {

         person();//直接调用,不需要new,必须实现,但占用内存

        }

    2.static修饰变量时候

    其实质上就是一个全局变量。如果某个内容是被所有对象所共享,那么该内容就应该用静态修饰;没有被静态修饰的内容,其实是属于对象的特殊描述。

    示例:

    class Person{       //成员变量,实例变量       String name;       //静态变量,类变量       //所有对象共享的属性用static修饰       static String country = "CN";       public void show(){             System. out.println(country + ":" + name);             //等效语句:System.out.println(Person.country+ ":" + this.name);       } } class StaticDemo{       public static void main(String[]args){             Personp = new Person();             System. out.println(p.country);             //可以用类名直接调用             System. out.println(Person.country);       } }

    结果:

    CN

    CN 

    3.static修饰类时候

    静态类主要是共享,静态类内部成员必须是静态的。 静态一般在程序加载的时候被构造。 我个人用静态类最多的地方的是程序配置部分,因为他的共享特性,在多个窗体中都需要调用,更主要的就是他在程序启动的时候就被初始化了。 静态类可以有构造函数,但是只被调用一次。 就上面说的程序配置数据部分,如果使用非静态类,那么你需要在任何有可能访问到他的代码前手动初始化他,并且还要将他赋给一个静态变量后才能使用。 费事不费事另说,假若你需要在他构造前某个位置来调用它,那还需要修改你构造他的代码的位置。 非静态类使用完成后系统会自动销毁释放,所以非静态类相对来说比较安全,而静态类是在程序结束后销毁的,在销毁前一直驻留在内存中,因此出现错误的可能性会大些。 建议不要过多的使用静态类,适时使用。 4.static 和final同时使用 public static final string user="china";//有静态变量的好处,同时这个变量不能修改  static final用来修饰成员变量和成员方法,可简单理解为“全局常量”!        对于变量,表示一旦给值就不可修改,并且通过类名可以访问。        对于方法,表示不可覆盖,并且可以通过类名直接访问 5.static修饰代码块时候

     static代码块也叫静态代码块,是在类中独立于类成员的static语句块,可以有多个,位置可以随便放,它不在任何的方法体内,JVM加载类时会执行这些静态的代码块,如果static代码块有多个,JVM将按照它们在类中出现的先后顺序依次执行它们,每个代码块只会被执行一次。例如:

    public  class  Test5 { private  static  int  a; private  int  b;   static { Test5.a= 3 ; System.out.println(a); Test5 t= new  Test5(); t.f(); t.b= 1000 ; System.out.println(t.b); } static { Test5.a= 4 ; System.out.println(a); } public  static  void  main(String[] args) { // TODO 自动生成方法存根 } static { Test5.a= 5 ; System.out.println(a); } public  void  f(){ System.out.println( "hhahhahah" ); } }

      运行结果:

    3 hhahhahah 1000 4 5

    转载请注明原文地址: https://ju.6miu.com/read-1311144.html
    最新回复(0)