笔试一个小时的题做了不到半个小时。数据库+java特性+设计模式+
单例模式存在的问题:线程同步,ascension
单例模式看起来是最简单的一种模式,但是也是存在问题的。问题存在于,对象的创建过程,不是原子操作。
对象的创建过程包括在栈中分配地址,在堆中分配空间等。
这样,如果在几个步骤中间的过程中,另外一个线程恰好过来访问单例类,那么,问题就来了。
据说ascension可以解决问题,但是网络上找不到ascension的资料。慢慢找~~
【没找到ascension的东西。但是在《head first》里面找到了解决办法。】
private static Singleton s=new Singleton();
在声明的时候new,这样在JVM加载类的时候就是立即创建此唯一的实例。
这样的解决办法是由JVM保证在任何线程访问此实例之前,一定先创建此实例。
数据库范式:符合第几范式