static关键字
概念:java中可以使用static修饰属性,方法,表示该资源为静态资源,与实例无关.
static修饰属性
特点:
1. static修饰的属性称为静态属性,静态变量
2. 静态属性和类相关与实例无关,通常保存在JVM中静态块中.
3. 静态属性与实例无关,访问静态资源通常通过类名直接访问.
static修饰代码块
特点:static修饰的代码块称为静态块,静态块在类加载的时候执行.通常使用静态块初始化资源.
static修饰方法
特点:static修饰的方法称为静态方法,在静态方法中只能直接调用当前类中的静态资源.
单例(单子)设计模式
特征:在同一个内存中保证只能有一个实例对象,核心在于构造器私有.
public class Single{
//提供一个static的属性,在类加载时调用构造器实例化对象
private static Single s=new Single();
/**
单例设计模式最为核心:构造器私有,防止外部调用构造器实例化对象
*/
private Single(){
}
/*
提供一个静态方法获得实例对象
*/
public static Single newInstance(){
return s;
}
}
final
特点:final表示最终的,可以用于修饰类,属性,方法,局部变量.
final修饰类
特点:final修饰的类不能被继承的.如:String类,在实际开发中由于final修饰类,会影响该类的扩展性,不推荐使用.
public final class 类名{ }
final修饰方法
特点:final修饰的方法不能被重写,可以被继承:如:Object#getClass,在实际应用中由于final修饰的方法不能被重写,所以很少使用.
public final 返回值类型 方法名(参数类型列表){ ... }
final修饰属性
特点:final修饰的属性,系统不再提供初始化操作,必须手动初始化
final修饰属性的初始化时机
实例变量:非static的变量
- 在声明fianl属性的同时就进行初始化 private final int a=1;
- 在声明之后,通过构造器进行初始化
- final修饰的属性一旦初始化之后值不能改变
静态变量:static修饰的变量
- final修饰的静态变量称为常量,常量的命名建议全部大写.
public static final double PI=3.1415;
- 可以在声明常量的同时进行初始化
- 可以在静态块中对其进行初始化
- 对于常量而言通常使用public修饰
- final修饰的静态变量称为常量,常量的命名建议全部大写.
final修饰局部变量
特点:final修饰局部变量,在初始化之后不能改变