00:00
我们来看二汉式的第二种写法,叫静态代码块。那还有人喜欢这样写也是OK的,他怎么写呢,他把这一个。就是实力的。创建。创建它放在一个静态代码块执行也是OK的,那么我们把这个写法也给大家分享一下。OK,那我们再建一个包,包写成二。没问题啊没问题,那现在呢,我我这里代码就不去再重写了,我复制一份过来好吧。复一份过来,复制一份过来功能,我们把这个名称改一下就可以了。啊,改成零二,改成零二,这边这个类的名称呢,就是第二种写法,我们也把这个组类改成零二,这样就统一起来。好改好了,那改好以后同学们可以看到。同样这个新通我我就不改了啊,因为这两个在在不同的包,这个不打架,那怎么怎么整呢,同学们看他这样写的。呃,他这样写,他把这一个实例化的工作,这不做。
01:03
这不做。他把这句话来同学们。拎到这个上面去。OK,拎到这上面去,那拎到这上面去了过后,那有一个什么问题呢?注意注意观察,那你这个地方这个final了就不要写了,对,因为我们加final可以优化嘛,现在没办法,那你就把这个去掉,Final去掉,Final去掉过后。这边因式ten加入变量因式吞。好,Instance放这来,放这来那放这来过后同学们可以看到,在这里边我们初始化的任务呢,就直接放在这里完成了,我们把这个代码稍微的整理一下就是,而且呢。在这儿。这个。好,我们看看。就不要写到这儿了啊,不能写到这里面去,写到这里面去那就不行了。私有化还是照样写,私有化还是这样写,然后呢,我把代码这样写一下,按顺序来啊static。
02:04
斯丹,放这儿。那我这要做件什么事情,就是说在静态静态代码块中。块中干什么呀,干什么创建,创建单例对象。OK。单例对象,那也就是说跟原先不一样的地方是在哪里呢?就是我们完成这个单例的初始化是放在静态代码块了,而不是直接在这写的。那这个呃,其他的就不需要变化,就是说是有构造器私有化还是要写的。然后内部里面呢,我们这有一个呃变量,就是single instance的一个静态变量,然后静态变量在代码块创建,然后我们要获取到这个实例呢,仍然是通过静态的公有方法。这个get instance来完成,那我们来执行一下,看代码OK不OK运行。
03:02
好,我们运行过后发现已然是一样的,对吧?也是错,好,这是我们第二种写法,第二种写法我们来分析一下二汉式的静态代码实现它的优点和缺点有哪些。这种方式呢,和上面方式其实是类似的,其实类似只不过将类的实例化过程放在静态代码块中一,那么静态代码块它也是在内装载的时候呃来执行的。呃,就是说呃,在内装载的时候就会执行我们静态代码块代码,静态代码块中的代码初始化我们的实例,它的优点和缺点跟上面那一种写法鄂汉斯写法是一样。结论仍然是这种方法也可以用,但是可能造成内存的浪费,就不再多说,好,同学们,那关于我们这一个。这个静态静态代码块的,呃,二汉式的两种写法呢,我们就说到这里,大家看理解没有。应该不是很难,对不对,应该不是很难。
04:01
好,那我们把这个二汉斯说完了,过后呢,我们下面就来讲。懒汉式的这么几种写法。
我来说两句