美文网首页
Java中static关键字的作用

Java中static关键字的作用

作者: WangJing6 | 来源:发表于2018-04-28 16:33 被阅读13次

static关键字主要有两种作用:

第一,为某特定数据类型或对象分配单一的存储空间,而与创建对象的个数无关。

第二,实现某个方法或属性与类而不是对象关联在一起

具体而言,在Java语言中,static主要有4中使用情况:成员变量、成员方法、代码块和内部类

  • static成员变量:

    Java类提供了两种类型的变量:用static关键字修饰的静态变量和不用static关键字修饰的实例变量。==静态变量属于类,在内存中只有一个复制,只要静态变量所在的类被加载,这个静态变量就会被分配空间==,因此就可以被使用了。对静态变量的引用有两种方式,分别是“类.静态变量"和”对象.静态变量"

    实例变量属于对象,只有对象被创建后,实例变量才会被分配内存空间,才能被使用,它在内存中存在多个复制,只有用“对象.实例变量”的方式来引用。

  • static成员方法:

    Java中提供了static方法和非static方法。static方法是类的方法,不需要创建对象就可以被调用,而非static方法是对象的方法,只有对象被创建出来后才可以被使用

    static方法中不能使用this和super关键字,不能调用非static方法,只能访问所属类的静态成员变量和成员方法,因为当static方法被调用时,这个类的对象可能还没被创建,即使已经被创建了,也无法确定调用哪个对象的方法。同理,static方法也不能访问非static类型的变量。

    单例设计模式:

    static一个很重要的用途就是实现单例设计模式。==单利模式的特点是该类只能有一个实例==,为了实现这一功能,必须隐藏类的构造函数,即把构造函数声明为private,并提供一个创建对象的方法,==由于构造对象被声明为private,外界无法直接创建这个类型的对象,只能通过该类提供的方法来获取类的对象==,要达到这样的目的只能把创建对象的方法声明为static,程序实例如下:

    class Singleton{  
        private static Singleton instance=null;  
        private Singleton(){}  
        public static Singleton getInstance(){  
            if(instance==null){  
                instance=new Singleton();  
            }  
            return instance;  
        }  
    } 
    
  • static代码块:

    static代码块在类中是独立于成员变量和成员函数的代码块的。注意:==这些static代码块只会被执行一次==

  • static与final结合使用表示的意思:

    对于变量,若使用static final修饰,表示一旦赋值不能修改,并且通过类名可以访问。
    对于方法,若使用static final修饰,表示该方法不可被覆盖,并且可以通过类名直接访问。

    public class Test{  
        public static int testStatic(){  
            static final int i=0;  
            System.out.println(i++);  
              
        }  
        public static void main(String[] args){  
            Test test=new Test();  
            test.testStatic();  
        }  
    }  
    

    上述程序运行的结果:

    A 0
    B 1
    C 2
    D 编译失败

    答案:D

    ==在Java语言中,不能在成员函数内部定义static变量==

相关文章

  • java面试问题总结与分享,很乱

    java中static关键字的作用 在Java中static表示“全局”或者“静态”的意思,用来修饰成员变量和成员...

  • Java中static关键字的作用

    static关键字主要有两种作用: 第一,为某特定数据类型或对象分配单一的存储空间,而与创建对象的个数无关。 第二...

  • Java中关键字static的作用

    静态字符(域) 以下为一个简单的类。name为一个常规的变量,id特殊一点,由static修饰。为了简单,省略pr...

  • 1.3 static 关键字

    static 关键字 《Java编程思想》 中:static方法就是没有this的方法 static 修饰的方法或...

  • static关键字

    到目前为止我们在Java程序的入口 - main方法多次使用到static关键字,它有什么作用呢? Java中的s...

  • Kotlin学习2

    1.Kotlin中static在kotlin中 没有static关键字,但是有类似java中static的用法例如...

  • Java static关键字

    声明static属性 static是Java中定义的一个关键字,主要是描述全局的概念,所以利用static关键字可...

  • Java中的static和final

    java中的static和final 此篇文章是记录我在学习Java中static和final关键字的笔记。 st...

  • Java static关键字

    Java之美[从菜鸟到高手演变]之Java中static关键字

  • 复习Java基础资料

    Java中面向字符的输入流 Java中的static关键字解析 Java中的main()方法详解 Java中普通代...

网友评论

      本文标题:Java中static关键字的作用

      本文链接:https://www.haomeiwen.com/subject/jieglftx.html