Java8

静态初始化块
Java使用构造方法来对单个对象进行初始化操作。与

构造方法作用非常类似的是初始化块,它也可以对对

象进行初始化操作。
  使用初始化块
      初始化块是Java类里可以出现的第四种成员。

语法格式:
 class 类名{
  [修饰符  只能是static,静态初始

化块]{
   //初始化块的可执行代码
可以定义局部变量、调用其他对象的方法、使用分支

、循环语句等

  }
  …
 }
一个类里可以有多个初始化块;
相同类型的初始化块之间有顺序,前面定义的初始化

块先执行,后面定义的初始化块后执行。

当创建Java对象时,系统总是先调用该类里定义的初

始化块;
如果一个类里定义了两个普通初始化块,则前面定义

的初始化块先执行,后面定义的初始化块后执行。
初始化块虽然也是Java类里的一种成员,但它没有名

字,也就没有标识,因此无法通过类、对象来调用初

始化块;
初始化块只能在创建对象时自动执行而且在执行构造

方法之前执行。

初始块和声明实例属性时所指定的初始值都是该实例

的初始化代码,它们的执行顺序与源程序中排列顺序

相同。
      初始化块和构造方法的不同:初始化块是一段

固定的执行代码,它不能接受任何参数。因此初始化

块对同一个类内的属性所进行的初始化处理完全相同


      用法:如果多个构造方法里有相同的初始化代

码,这些代码无需接受参数,那就可以把他们放在初

始化块中定义。能更好的提高初始化块的复用,提高

整个应用的可维护性。
      创建一个Java对象时,不仅会执行该类的初始

化块和构造方法,系统会先执行其父类的初始化块和

构造方法。


如果定义初始化块时使用了static修饰符,则这个初

始化块就变成了静态初始化块,也被称为类初始化块


静态初始化块是类相关的,系统将在类初始化阶段执

行静态初始化块,而不是在创建对象时才执行,因此

静态初始块总是比普通初始化块先执行。
静态初始块属于类的静态成员,用于对类属性执行初

始化处理,不能对实例属性进行初始化处理。
系统在类初始化阶段执行静态初始化时,不仅会执行

本类的静态初始化块,还会一直上溯到Object类(如

果它包含静态初始化块)。经过这个过程,才完成了

对类的初始化过程。 

静态初始块和声明静态属性时所指定的初始值都是该

类的初始化代码,它们的执行顺序与源程序中排列顺

序相同  


单例类
设计模式:是一种问题的解决思想。解决某一类问题

最行之有效的方法。Java有23中设计模式。
单例设计模式:解决一个类在内存中只存在一个对象


如果一个类始终只能创建一个实例,则这个类称为单

例(Singleton)类。

想要保证对象的唯一:
1.禁止其他程序自由创建对象:将构造方法私有化,

使用private修饰。
2.为了让其他程序可以访问到该类对象,只能在本类

定义一个对象:在类中创建一个本类对象。
3.为了方便其他程序对该对象的访问,可以对外提供

访问方法:提供一个public方法可以获取该对象。
两种写法:
1.饿汉式:不管你用不用,一开始就建立单例对象,

即先初始化对象。
     开发一般使用此写法,安全性
    private static Single s=new Single();
 private Single(){}
     public static Single getInstance(){
  return s;
 }
2.懒汉式:使用时才建立对象,是延迟加载。
      private static Single1 s=null;
      private Single1(){}
  public static Single1 getInstance(){
                if(s==null){
           s=new Single1();
        }
    return s;
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值