static关键字

static关键字

static应用知识:

1 。工具类

类中都是一些静态方法,每个方法都是以完成一个共用的功能为目的,这个类用来给系统开发人员共同使用的。
一是调用方便,二是提高了代码复用(一次编写,处处可用)

由于工具里面都是静态方法,直接用类名即可访问,因此,工具类无需创建对象,建议将工具类的构造器进行私有。

2。代码块

代码块分为
静态代码块:
格式:static{}
特点:需要通过static关键字修饰,随着类的加载而加载,并且自动触发、只执行一次
使用场景:在类加载的时候做一些静态数据初始化的操作,以便后续使用。

构造代码块(了解,见的少):
格式:{}
特点:每次创建对象,调用构造器执行时,都会执行该代码块中的代码,并且在构造器执行前执行
使用场景:初始化实例资源。

public class StaticDemo2 {
    private String name;
    public StaticDemo2(){
        System.out.println("===无参构造器被触发执行==");
    }
    /**
       实例代码块:无static修饰,属于对象,每次构建对象时,都会触发一次执行。
       初始化实例资源。
     */
    {
        //name = "张三";
        System.out.println("===实例代码块被触发执行===");
    }
    public static void main(String[] args) {
        // 目标:理解实例代码块(构造代码块)。
        StaticDemo2 s1 = new StaticDemo2();
        System.out.println(s1.name);

        StaticDemo2 s2 = new StaticDemo2();
        System.out.println(s2.name);
    }
}

===实例代码块被触发执行===
===无参构造器被触发执行==
张三
===实例代码块被触发执行===
===无参构造器被触发执行==
张三

3。单例设计模式

可以保证系统中,应用该模式的这个类永远只有一个实例,即一个类永远只能创建一个对象。
例如任务管理器对象我们只需要一个就可以解决问题了,这样可以节省内存空间。

/**
   使用饿汉单例实现单例类
 */
public class SingleInstance {

    /**
      2、饿汉单例是在获取对象前,对象已经提前准备好了一个。
       这个对象只能是一个,所以定义静态成员变量记住。
     */
    public static SingleInstance instance = new SingleInstance();

    /**
       1、必须把构造器私有化。
     */
    private SingleInstance(){
    }
}

 

public class SingleInstance2 {

    /**
      2、定义一个静态的成员变量负责存储一个对象。
         只加载一次,只有一份。
       注意:最好私有化,这样可以避免给别人挖坑!
     */
    private static SingleInstance2 instance;

    /**
      3、提供一个方法,对外返回单例对象。
     */
    public static SingleInstance2 getInstance() {
        if(instance == null){
            // 第一次来拿对象 :此时需要创建对象。
            instance = new SingleInstance2();
        }
        return instance;
    }


    /**
       1、私有化构造器
     */
    private SingleInstance2(){
    }
}

 

posted @ 2022-11-28 16:06  __破  阅读(25)  评论(0)    收藏  举报