public class SinglObjectParttern {
public static void main(String[] args) {
ConnectionPoolA cp = ConnectionPoolA.getConnectionPool();
ConnectionPoolA cp2 = ConnectionPoolA.getConnectionPool();
System.out.println(cp==cp2);
}
}
/*写法1:恶汉式单例 优点:实现简单; 缺点:在不需要的时候,白创建了对象,造成了资源浪费 */
class ConnectionPoolA{
private static ConnectionPoolA cp = new ConnectionPoolA();
private ConnectionPoolA(){}
public static ConnectionPoolA getConnectionPool(){
return cp;
}
}
/*写法2:懒汉式单例 优点:需要对象是才创建; 缺点:线程不安全*/
class ConnectionPoolB{
private static ConnectionPoolB cp;
private ConnectionPoolB(){}
public static synchronized ConnectionPoolB getConnectionPool(){
if(cp==null)
cp=new ConnectionPoolB();
return cp;
}
}
public static void main(String[] args) {
ConnectionPoolA cp = ConnectionPoolA.getConnectionPool();
ConnectionPoolA cp2 = ConnectionPoolA.getConnectionPool();
System.out.println(cp==cp2);
}
}
/*写法1:恶汉式单例 优点:实现简单; 缺点:在不需要的时候,白创建了对象,造成了资源浪费 */
class ConnectionPoolA{
private static ConnectionPoolA cp = new ConnectionPoolA();
private ConnectionPoolA(){}
public static ConnectionPoolA getConnectionPool(){
return cp;
}
}
/*写法2:懒汉式单例 优点:需要对象是才创建; 缺点:线程不安全*/
class ConnectionPoolB{
private static ConnectionPoolB cp;
private ConnectionPoolB(){}
public static synchronized ConnectionPoolB getConnectionPool(){
if(cp==null)
cp=new ConnectionPoolB();
return cp;
}
}