欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

java:static关键字

发布时间:2025/6/15 编程问答 42 豆豆
生活随笔 收集整理的这篇文章主要介绍了 java:static关键字 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

static关键字主要有4种使用情况:成员变量,成员方法,代码块和内部类。

  1.成员变量

      虽然java中没有全局的概念,但可以通过static关键字来达到全局的效果。java类型提供了两种类型的变量,用static关键字修饰的静态变量和不用static关键字修饰的实例变量 静态变量属于类,只要静态变量所在的类被加载,这个静态变量就会被分配空间,因此就可以被使用了。

    不能在方法体中定义static变量。

public static void add(){// static final int i = 0; // 编译失败,只能在类中定义静态变量,不能在方法中定义静态变量}

 

2. 成员方法

    与变量类似,java类同时也提供了static方法与非static方法。static方法是类的方法,不需要创建对象就可以被调用。static不能使用this和super关键字,不能调用非static方法。

  static一个重要的作用是实现单例模式,单例模式的特点是该类只能有一个实例。

public class TestStatic{static{// 加载类时, 执行静态代码块System.out.println("....static......");}private static TestStatic f = new TestStatic(); //加载类时,为静态变量赋初值, 当去掉static,就会造成无限引用,引发栈溢出{System.out.println("..non..static.......");}public TestStatic(){System.out.println("......构造....");}public static void main(String[] args){System.out.println("main");TestStatic ff = new TestStatic();} }

3.static代码块

  静态代码块在类中是独立于成员变量和成员函数的代码块的。它不在任何一个方法体内,jvm在加载类时会执行static代码块,如果有多个static代码块,jvm将会按顺序来执行。这些static代码块只会被执行一次

 

4. static内部类

  static内部类是指被声明为static的内部类,它可以不依赖于外部类实例对象而被实例化,而通常的内部类需要在外部类实例化后才能实例化。静态内部类不能访问外部类的普通成员变量,只能访问外部类中的静态成员和静态方法

 

static经常与final结合使用:

   static final修饰变量,表示变量一旦赋值,不能被修改,并且通过类名可以访问该变量。

   static final修饰方法,表示该方法不可覆盖,并且可以通过类名直接访问。

总结

以上是生活随笔为你收集整理的java:static关键字的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。