零基础Java:第十五讲(单例(Singleton)设计模式、理解main方法的语法、类的成员之四:初始化块)

174 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

单例(Singleton)设计模式

  • 单例(Singleton)设计模式

    • 单例:只有一个实例(实例化对象),即在整个软件系统运行过程中,这个类只被实例化一次,以后不论在哪都只调用这一个实例
    • 设计模式:在实际编程过程中,逐渐总结出来的一些解决问题的套路
    • 使用场景:实例化对象的创建要消耗大量的时间和资源的情况下,或者没有要使用new创建多个对象。
    • 两种模式:软件的运行有且仅有一个实例化对象(只会new一次),两个差别是什么时候new

      • 饿汉式(在未使用时提前new一个对象)
      • 懒汉式(刚开始不创建,直到第一个人调用才new一个对象)

理解main方法的语法

  • 理解main方法的语法

    • 由于java虚拟机需要调用类的main()方法,所以该方法的访问权限必须是public,又因为java虚拟机在执行main()方法时不必创建对象,所以该方法必须是static的,该方法接受一个String类型的数组参数,该数组中保存执行java命令时传递给运行的类的参数。

类的成员之四:初始化块

  • 类的成员之四:初始化块

    • 初始化块(代码块)作用:对java对象进行初始化
    • 程序的执行顺序:声明成员变量的默认值——》显式初始化、多个初始化块依次执行(同级别下按先后顺序执行)——》构造器再对成员进行赋值操作
    • 一个类中初始化块
    • 非静态 代码块与静态(static)代码块的对比

      • 非静态 代码块:没有static修饰的代码块

        • 可以有输出语句
        • 可以对类的属性声明进行初始化操作
        • 可以调用静态和非静态的变量或方法
        • 若有多个非静态的代码块,那么按照从上到下的顺序依次执行
        • 非静态代码块的执行先于构造器
        • 每次创建对象的时候,都会执行一次。
      • 静态代码块:有static修饰的代码块

        • 可以有输出语句
        • 可以对类的属性声明进行初始化操作
        • 不可以对非静态的属性或方法初始化。即:不可以调用非静态的属性或方法
        • 若有多个静态的代码块,那么按照从上到下的顺序依次执行
        • 静态代码块的执行要先于非静态代码块
        • 静态代码块只执行一次
    • 应用场景:在实际开发中static静态代码块用在初始化类的静态属性(static类型属性)
    • 代码块的应用举例