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(){ } } |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY