1.懶漢模式
懶漢模式:在類加載的時候不被初始化,懶漢式是延時加載,他是在需要的時候才創建對象。
public class JdbcUtil { //定義私有的引用 private static JdbcUtil jdbcUtil; /** * 不能讓外部直接創建對象 */ private JdbcUtil() { } public static JdbcUtil getInstance() { if (jdbcUtil == null) { jdbcUtil = new JdbcUtil(); } return jdbcUtil; } }
2.餓漢模式
餓漢模式:在類加載時就完成了初始化,但是加載比較慢,獲取對象比較快,類創建的同時就已經創建好一個靜態的對象供系統使用,以后不在改變。
public class JdbcUtil { //定義私有的引用 private static JdbcUtil jdbcUtil = new JdbcUtil(); /** * 不能讓外部直接創建對象 */ private JdbcUtil() { } public static JdbcUtil getInstance() { return jdbcUtil; } }
最主要的區別:
餓漢模式由於在類創建的同時就創建了靜態對象提供給系統使用,所以是線程安全的。
懶漢模式由於延時加載,是在需要的時候才創建對象並且如果不加上synchronized,會導致對象的訪問不是線程安全的。
