static
- static修饰的变量为静态成员变量、方法为静态方法
- 静态成员变量,有static修饰,属于类,加载一次,内存中只有一份,可以被类的所有对象共享(访问、修改)
- 类名.静态成员变量
- 表示在线人数等需要被每个类的所有对象共享的信息时。
- 对象在堆内存中,类加载到方法区的同时会在堆内存中开辟一块这个类的静态变量区,并且只加载一次
- 静态方法不能 ”直接“ 访问实例成员
- 静态方法不可以出现this关键字,this代表本类对象,static属于类
工具类
- 工具类中都是一些静态方法,每个方法都是以完成一个公用的功能为目的
- 好处:一是调用方便,二是提高了代码的复用性,提高了开发效率
- 工具类没有必要被其他类继承,因此将工具类用final修饰为最终类
代码块
- 在启动系统时对静态资源进行初始化
单例设计模式
- 可以保证系统中,应用该模式的这个类永远只有一个实例,即一个类永远只能创建一个对象
- 饿汉单例模式(在用类获取对象的时候,对象已经提前创建好了)
- 在获取对象前,对象已经准备好了,所以天生线程安全
- 懒汉单例模式(在真正需要该对象的时候,采取创建一个对象,延迟加载对象)
- 一开始不去创建对象,等到要用这个实例对象的时候,才判断它存不存在真正的实例对象,如果存在就返回,不存在就创建一个对象,这样就会存在问题,在多个线程都判断它没有实例对象的时候,可能多个线程会多次创建这个实例对象