1.自增变量
i = 4, j = 1, k = 11
2.单例模式
饿汉式:不存在线程安全的问题
/**
直接实例化
**/
public class SingleTon1 {
public static final SingleTon1 INSTANCE = new SingleTon1();
private SingleTon1(){
}
}
/**
* 枚举
*/
public enum SingleTon2 {
INSTANCE
}
/**
* 内部代码块
*
*/
public class SingleTon3 {
public static final SingleTon3 INSTANCE;
private String info;
static {
Properties pro = new Properties();
try {
pro.load(SingleTon3.class.getClassLoader().getResourceAsStream("xxx.properties"));
} catch (Exception e) {
e.printStackTrace();
}
INSTANCE = new SingleTon3(pro.getProperty("xxx"));
}
private SingleTon3(String info){
this.info = info;
}
}
懒汉式:
public class SingleTon4 {
private static SingleTon4 instance;
private SingleTon4(){
}
public static SingleTon4 getInstance(){
if (instance == null){
synchronized (SingleTon4.class){
if (instance == null){
instance = new SingleTon4();
}
return instance;
}
}
return instance;
}
}
/**
* 在内部类被加载和初始化时才被创建
* 静态内部类不会随着外部类的加载和初始化而初始化
*/
public class SingleTon5 {
private SingleTon5(){
}
public static class Inner{
private static final SingleTon5 instance = new SingleTon5();
}
public static SingleTon5 getInstance(){
return Inner.instance;
}
}