实际开发中,在哪里会经常用到static关键字?
自定义工具类、常量
static表示静态或者全局,可以用来修饰成员变量(属性)和成员方法和类。
常规的方式:方法的调用需要依赖对象,必须先要有对象才能调用方法。
添加static关键字之后,方法的调用不再依赖对象了,可以直接通过类来调用,提升开发效率。
使用static修饰的成员是独立于该类的任何一个实例化对象,被该类的所有对象所共享的资源。
被static修饰之后
静态成员变量/类变量,凌驾于所有对象之上的全局变量
静态成员方法/类方法,凌驾于所有对象之上的全局方法
没有被static修饰
实例成员变量,依赖于对象的变量
实例成员方法,依赖于成员的方法
普通成员在内存中多份,创建多少个对象,就有多少份。
静态成员在内存中只有一份,无论创建多少个对象,都只有一份。
使用了static关键字 就不能再使用this
类中信息的加载顺序
成员变量、成员方法、构造方法、代码块
1、先执行静态代码块
public class test2 {
public static void main(String[] args) {
System.out.println("main方法执行..");
}
static{
System.out.println("静态代码块执行");
}
}
静态代码块执行
main方法执行..
2、类中定义静态成员变量对象,会先创建对象
public class test2 {
public static void main(String[] args) {
System.out.println("main方法执行..");
}
static{
System.out.println("静态代码块执行");
}
static User user= new User();
}
静态代码块执行
User被创建了...
main方法执行..
静态 和代码顺序相关。
3、非静态的代码块和成员变量 不执行
4、同时存在非静态代码块和静态大妈快,非静态成员变量和成员变量,先执行静态的信息,并且只执行一次,再执行非静态信息(创建对象),创建对象多少次就执行多少次。