对static class 进行单引号注释的原因是,java不支持静态外部类,这里想表明的意思是,有这么一个类,里面的方法都是static类型,如下:
public class Tools {
public static void test() {
//...
}
public static void test2() {
//....
}
}
单例:
public class Tools {
private static volatile Tools INSTANCE;
public static Tools getInstance() {
if (null == INSTANCE) {
synchronized (Tools.class) {
if (null == INSTANCE) {
INSTANCE = new Tools();
}
}
}
return INSTANCE;
}
public void test() {
//...
}
public void test2() {
//....
}
}
最大的区别:
单例是面向对象的而静态类是面向过程的
- 单例可以实现其他接口,静态类不行
- 单例可以被继承,而静态类不行
其他的细节,都不是本质区别。