Java学习笔记-static用法

static是学习java时最基础的关键字用法了,但好久没用了,都忘记了用法,mark下

1.特性

static关键字修饰的方法或者变量不需要依赖于对象来进行访问,只要类被加载了,就可以通过类名去进行访问。   

static可以用来修饰类的成员方法、类的成员变量,另外可以编写static代码块来优化程序性能。

2.用法

1.静态方法

解释:在静态方法中不能访问类的非静态成员变量和非静态成员方法,因为非静态成员方法/变量都是必须依赖具体的对象才能够被调用。

但是在非静态方法中,可以调用静态方法和静态变量。

public class Test {

    public String name="xxx";
    public static String hobby="play";

    public static void test_static(){
        System.out.println(hobby);
        //静态方法中不能访问非静态变量
        System.out.println(name);

    }
}

2.静态变量

静态变量被所有的对象所共享,在内存中只有一个副本,它当且仅当在类初次加载时会被初始化。而非静态变量是对象所拥有的,在创建对象的时候被初始化,存在多个副本,各个对象拥有的副本互不影响。

3.静态类

如果一个类要被声明为static的,只有一种情况,就是静态内部类。

1.静态内部类跟静态方法一样,只能访问静态的成员变量和方法,不能访问非静态的方法和属性,但是普通内部类可以访问任意外部类的成员变量和方法

2.静态内部类可以声明普通成员变量和方法,而普通内部类不能声明static成员变量和方法。

3.静态内部类可以单独初始化

搜了一圈资料,说静态类一般是用来扩展方法,具体怎么扩展,还是要再看下

4.静态代码块

静态代码块可以放在代码中任何地方,可以优化性能,只会在类加载的时候执行一次

public class Test {

    static{
        System.out.println("test");
        System.out.println("static");
    }
}

猜你喜欢

转载自blog.csdn.net/mumuwang1234/article/details/115181525