java中static 关键字

本文详细介绍了Java中static关键字的应用,包括静态变量、静态代码块、静态方法和单例模式等,帮助读者理解如何利用static关键字优化代码结构。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

static关键字的作用:

1 静态变量

在定义一个类时,只是在描述某类事物的特征和行为,并没有产生具体的数据。只有通过new关键字创建类的实例对象后,系统才能为每个对象分配空间,存储各自的数据,有时候我们希望某些特定的数据在内存中只有一份,而且被一个类的所有实例所共享,这是java中提供了static关键字来修饰成员变量,给变量被称为静态变量静态变量被所有实例所共享,可以使用类名.变量名来访问。 如下例:

    class Student{
         static String schoolName;
}
  public class Demo{
       public static void mian(String[] args){
           Student.schoolName="java";
           Student s1=new Student();
          Student s2=new Studengt();
           Sysotem.out.println("s1.schoolName");
           Sysotem.out.println("s2.schoolName");
     }
}
运行结果:java
                   java

注意:static只能用于修饰成员变量,不能用于修饰局部变量,否则编译报错。


2静态代码块

在java类中,用一对大括号括起来的代码称为代码块,用static修饰的代码块称为静态代码块。。当类被加载时静态代码块执行,由于类只加载一次,所以静态代码块只执行一 次。 例:

   

  class Demo {
    static{
            Sysotem.out.println("静态代码块");
    }
    public static void mian(String[] args){
                Person p1=new Person();
                Person p2=new Person();
  }
}
  class Person{
      static{
          Sysotem.out.println("person类的静态代码块");
   }
 }
结果:静态代码块
            person类的静态代码块


3静态方法

 有时我们希望在不创建对象时就可以调用某个方法,要实现这样的效果,只需要在类中定义的方法前面加上static关键字即可,即为静态方法。例:

 class Person{
     public void eat(){
             Sysotem.out.println("吃饭");
    }
 class Demo{
   public static void main(String[] args){
     Person.eat();
  }
}
结果:吃饭


4单例模式(饿汉单例设计模式)

class Single{
  //自己创建一个对象
      private static Single INSTANCE=new Single();
      private Single(){   //类的构造方法使用private修饰,这样就不能再类的外部使用new关键字来创建实例对象了。
      }
      public static Single getInstance(){
           return INSTANCE;
      }
}
   class Demo{
     public static void main(String[] args){
        Single s1=Single.getInstance();
        Single s2=Single.getInstance();
        Sysotem.out.println(s1==s2);
   }
}
结果:true。 


说明只创建了一个对象
















评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值