static(二)

static的注意事项

使用类方法、实例方法时的注意事项

  • 类方法中可以直接访问类的成员,不可以直接访问实例成员
  • 实例方法中既可以直接访问类成员,也可以直接访问实例成员
  • 实例方法中可以出现this关键字,类方法中不可以出现this关键字

static的应用知识:代码块

代码块概述

  • 代码块是类的5大成分之一(成员变量、构造器、方法、代码块、内部类)

代码块分为两种

  • 静态代码块

              格式:static { }

              特点:类加载时自动执行,由于类只会加载一次,所以静态代码块也只会执行一次

              作用:完成类的初始化,例如:对类变量的初始化赋值

  • 实例代码块      

              格式:{ }

              特点:每次创建对象时,执行实例代码块,并在构造器前执行

              作用:和构造器一样,都是用来完成对象的初始化的,例如:对实例变量进行初始化赋值

static的应用知识:单例设计模式

什么是设计模式(Design pattern)?

  • 一个问题通常有n种解法,其中肯定有一致解法是最优的,这个最优的解法被人总结出来了,称之为设计模式
  • 设计模式有22多种,对应20多种软件开发中会遇到的问题

单例设计模式

  • 确保只有一个类只有一个对象
写法
  • 把类的构造器私有
  • 定义一个类变量记住类的一个对象
  • 定义一个类方法,返回对象

A类

public class A {
    // 定义一个类变量记住类的一个对象
    private static A a = new A();

    // 将构造器私有
    private A(){

    }

    // 定义一个类方法返回类的对象
    public static A getObject(){
        return a;
    }

}

Test类

public class Test {
    public static void main(String[] args) {
        //目标:掌握单例设计模式的写法

        A a1 = A.getObject();

        System.out.println(a1);
    }
}

单例设计模式的应用场景和好处

  • 任务管理器对象、获取运行时对象
  • 在这些业务场景下,使用单例模式,可以避免浪费内存

单例设计模式的实现方式

  • 饿汉式单例:拿到对象时,对象早就创建好了
  • 懒汉式单例:拿对象时,才开始创建对象

相关推荐

  1. static

    2023-12-17 21:24:03       37 阅读
  2. 关于static

    2023-12-17 21:24:03       45 阅读
  3. static关键字详解

    2023-12-17 21:24:03       48 阅读
  4. C++ 中关键字 Static

    2023-12-17 21:24:03       61 阅读
  5. 关于static关键字

    2023-12-17 21:24:03       41 阅读
  6. C++ static详解

    2023-12-17 21:24:03       30 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-17 21:24:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-17 21:24:03       101 阅读
  3. 在Django里面运行非项目文件

    2023-12-17 21:24:03       82 阅读
  4. Python语言-面向对象

    2023-12-17 21:24:03       91 阅读

热门阅读

  1. 我的创作纪念日1024

    2023-12-17 21:24:03       67 阅读
  2. mysql修改密码

    2023-12-17 21:24:03       60 阅读
  3. Keil下载及安装(官方版本)

    2023-12-17 21:24:03       68 阅读
  4. halcon2

    2023-12-17 21:24:03       60 阅读
  5. vue3.2结合element-plus自定义上传组件

    2023-12-17 21:24:03       66 阅读
  6. spring的事务传播行为

    2023-12-17 21:24:03       64 阅读
  7. IP小知识

    2023-12-17 21:24:03       50 阅读
  8. mysql数据库指定ip远程访问

    2023-12-17 21:24:03       63 阅读
  9. [Django-04]一对一,一对多

    2023-12-17 21:24:03       63 阅读
  10. 动态规划基础

    2023-12-17 21:24:03       61 阅读