public class staticbean {
public static string a = "a";
public string d;
public static void getmessage(){
system.out.println(a);
system.out.println(d);
}
}
public class outer {
private int i = 0;
public outer() {
i++;
system.out.println("=====init outer "+i+"====");
}
public static outer getinstance(){
return inner.instance;
}
//静态内部类
public static class inner{
private static final outer instance = new outer();
}
}
调用方
public class basetest {
public static void main(string[] args) throws exception{
for(int i = 0; i < 1000;i++) {
outer.getinstance();
}
}
}
输出结果:
=====init outer 1====
我们总结下:
由于 instance 是常量,因此只能赋值一次;它还是静态的,因此随着内部类一起加载,这种也是单例懒汉模式的一种实现方式,同时保证了线程安全。
final 关键字可以用来修饰类,方法和变量
1.修饰类
表示该类不允许被继承,final类中的成员方法都会被隐式的指定为final方法。
public final class finalbean {
public void test(){
}
}
public class finalbean {
private final int i = 0;
private final int j;
private final string name = "";
public finalbean(){
j = 1;
this.name.concat("123");
this.name = "123";
}
}