以下哪种方式实现的单例是线程安全的_360笔试题_牛客网
双重检查锁实现(线程安全)
volatile不能保证原子性
如何保证原子性
当然是加锁啦!不要问,问就是用synchronized
----------------------------------------------------------------------------------
子类可以继承父类所有的成员
反射已经打破了访问权限的问题了
使用反射可以看出子类是继承了父类的私有方法的(不管是否是final),只是直接调用父类的私有方法是不可以的,但是利用反射的方式可以调用。字段同理。构造函数不是成员,所以它们不被子类继承,直接调用。
使用反射可以破坏单例设计模式。
----------------------------------------------------------------------------------
----------------------------------------------------------------------------------
flush()的作用是使缓冲区中的字节流,字符流输出。
之所以用到fulsh()是因为对于缓冲区,只有在满了之后才会输出,所以在最后输出流关闭之前,要先使用fush()清空缓冲流中的内容。
----------------------------------------------------------------------------------
----------------------------------------------------------------------------------
----------------------------------------------------------------------------------
----------------------------------------------------------------------------------
----------------------------------------------------------------------------------
----------------------------------------------------------------------------------
----------------------------------------------------------------------------------
https://www.cnblogs.com/nerxious/archive/2013/01/25/2876489.html
匿名内部类的创建格式为: new 父类构造器(参数列表)|实现接口(){
//匿名内部类的类体实现
}
----------------------------------------------------------------------------------
Java的鲁棒性(Robust)_java鲁棒性是什么意思_icankeep的博客-CSDN博客
----------------------------------------------------------------------------------
父类静态代码块-->子类静态代码块-->父类普通代码块-->父类构造方法-->子类代码块-->子类构造方法;