java基础之static关键字 java 中static
我真是个莫得感情的更新机器
关于static的使用,之前学习接触过的场景如下:
静态修饰符,(作用于变量,方法,代码块)
有位大神说过:“static方法就是没有this的方法。在static方法内部不能调用非静态方法,反过来是可以的。而且可以在没有创建任何对象的前提下,仅仅通过类本身来调用static方法。这实际上正是static方法的主要用途。”
这句话表明了static的使用方法,可以用于脱离对象而独立存在得变量及方法等。
静态方法只需要通过类名即可访问,当然,有杠精一定要用对象来访问,也是可以的,且效果一样。
静态变量在内存中只有一份,不同于对象,可以存在多个,且在类加载时就初始化了。
静态代码块是另一种使用方式,将一块代码用static注释,在类加载时执行一次。
静态内部类:
一个类要被声明为static,只有一种情况,就是静态内部类。外部类是不能被static修饰的。
静态内部类的使用:
1、静态内部类和静态方法一样,只能访问外部类的静态的成员和方法。静态内部类可以定义普通的成员变量和方法。
2、静态内部类可以单独初始化而不依赖外部的类
3、静态内部类不持有外部类的引用,所以只能访问外部类的静态方法和静态的属性
静态内部类的使用场景是:
当外部类要使用一个内部类,且内部类无需外部类的资源,而这个内部类可以单独创建的时候,考虑使用静态内部类。
静态导包:
java包的静态导入,用import static导入包的静态变量和方法。
其实没什么用,就是使用时静态变量和方法时可以少写个类名
不对,可以在面试时拿来吹牛,估计很多面试官都一脸懵逼,压根没用过。