staic关键字是JAVA中用的非常多的一个关键字,由于其用法众多,并且经常使用的也只是其中某一种用法,难以记住全部的,所以今天来做一个总结归纳。
1.在类中,用static声明的成员变量为静态成员变量,它为该类的公用变量,在第一次使用的时候初始化,所以对于该类的所有对象来说,static成员变量只有一份。
2.用static声明的方法为静态方法,在调用该方法时,不会对将对象的引用传递给它,所以在static方法中不可以访问非static的成员。
3.可以通过对象引用或者类名访问静态成员。
4.static不允许修饰局部变量。
5.如果想在不创建对象的情况下调用某个方法,就可以将这个方法设置为static,我们最常见的static方法就是main方法,因为程序在执行main方法的时候没有创建任何对象,因此只有通过类名访问。
6.static代码块。static形成静态代码块可以优化程序的性能,static块可以置于类中任何地方,类在被初次加载的时候,会按照static块的顺序来执行每个static块,并且只会执行一次。
代码:
public class Solution { public static int a; private int temp; public static int getA(int b){ static int c; //错误,static不可以修饰局部变量 a = b; this.temp = b; //错误,static方法中不能访问非static的成员 return 0; } static { System.out.println("静态代码块在类初次加载时即会执行"); } public static void main(String[] args) { /** * 静态的成员变量及方法均可以通过类名或者对象进行访问 */ System.out.println(Solution.a); System.out.println(Solution.getA(1)); Solution s = new Solution(); System.out.println(s.a); System.out.println(s.getA(1)); } }