static关键字

static关键字

static应用知识:

1 。工具类

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

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

2。代码块

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

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
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。单例设计模式

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
/**
   使用饿汉单例实现单例类
 */
public class SingleInstance {
 
    /**
      2、饿汉单例是在获取对象前,对象已经提前准备好了一个。
       这个对象只能是一个,所以定义静态成员变量记住。
     */
    public static SingleInstance instance = new SingleInstance();
 
    /**
       1、必须把构造器私有化。
     */
    private SingleInstance(){
    }
}

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
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 @   __破  阅读(17)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
点击右上角即可分享
微信分享提示