通俗说下java中的static

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
 
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值