【Java多线程】Java多线程编程核心技术第6章:单例模式与多线程(上)

前言:

   温馨TIP:  这篇没什么

6.5使用static代码块实现单例

        关于static 在 这个博客 标题虽是内部类但是也有和静态相关的东西,一这么说便知道这个标题起地不是很好;最近博客一些多,发出去之后、我便也成了观博一员;

静态初始器:静态块:一个存在类方法外面的静态块,仅在类装载时执行一次,常用初始化静态类属性;所以如6.5题,一点点存在感,代码很简洁、不写了;

6.6使用enum枚举实现单例

        最近有了几次枚举,对它的认识更深了一点,当然这是题外话;enum和静态代码块的特性相似,使用枚举类时,构造方法被自动调用:

        结合6.7完善展示一下代码:

/**
 * Created by Administrator on 2018/7/31.
 */
//public enum MyObject4 { 这样枚举类暴露了,完善

public class MyObject4 {

    public enum MyEnumSingleTon {
        connectionFactory;
        private Connection connection;

        //private MyObject4() {
        private MyEnumSingleTon() {
            try {
                System.out.println("构造函数");
                String url = "jdbc:mysql://localhost:3306/shop";
                String username = "root";
                String password = "root";
                String driverName = "com.mysql.jdbc.Driver";
                Class.forName(driverName);
                connection = DriverManager.getConnection(url, username, password);
            } catch (ClassNotFoundException e) {
                e.printStackTrace();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }

        public Connection getConnection() {
            return connection;
        }
    }

    //改调用这个新增的方法,隐藏枚举
    public static Connection getConnection() {
        return MyEnumSingleTon.connectionFactory.getConnection();
    }

}

进程:

public class MyThread4 extends Thread {

    public void run(){
        for(int i =0;i<5;i++){
            //System.out.println(MyObject4.connectionFactory.getConnection().hashCode());
            System.out.println(MyObject4.getConnection().hashCode());
        }
    }

}

    跑起来:

public class Run {
    public static void main(String[] args) {
        MyThread4 t1 = new MyThread4();
        MyThread4 t2 = new MyThread4();
        t1.start();
        t2.start();
    }
}

后面的话:

     这篇是根据《Java多线程编程核心技术》的标题顺序写的,上篇该标题的时候我还纳闷为什么这个标题的顺序不对,过程中去查资料了,忘记了是按照书中顺序写的 这回事了,老了老了、不是、是中间溜的时间太长了

猜你喜欢

转载自blog.csdn.net/ma15732625261/article/details/81315631