static

static是什么

  • static是静态的意思,可以修饰成员变量和方法
  • static修饰成员变量表示该成员变量只在内存中只存储一份,可以被共享访问、修改

成员变量可以分为两类

  • 静态成员变量(有static修饰,属于类,内存中加载一次):常表示如在线人数信息、等需要被共享的信息,可以被共享访问
  • 实例成员变量(无static修饰,存在于每个对象中):常如表示姓名name、年龄age、等属于每个对象的信息

两种成员变量各自在什么情况下定义

  • 静态成员变量:表示在线人数等需要被共享的信息
  • 实例成员变量:属于每个对象,且每个对象的该信息不同时

static修饰成员变量的内存原理

成员方法的分类:

  • 静态成员方法(有static修饰,归属于类),建议用类名访问,也可以用对象访问
  • 实例成员变量(无static修饰,归属于对象),只能用对象触发访问

使用场景

  • 表示对象自己的行为的,且方法中需要访问实例成员的,则方法必须申明成实例方法
  • 如果该方法是以执行一个公用功能为目的的,则可以声明成静态方法

static修饰成员方法的内存原理

static访问注意事项:

  • 静态方法只能访问静态成员,不可以直接访问实例成员
  • 实例方法可以访问静态的成员,也可以访问实例的成员
  • 静态的方法是不可以出现this关键字的

工具类

工具类是什么?

  • 类中都是一些静态方法,每个方法都是以完成一些公用功能为目的个类用来给系统开发人员使用

使用工具类的好处

  • 一是调用方便,二是提高了代码复用,建议将工具类的构造器私有化

代码块

代码块概述

  • 实例方法需要创建对象调用
  • 此时用对象是

为什么工具类中的方法不用实例方法做?象,为了调用方法,这样只会浪费内存

工具类定义时的其他要求:

  • 由于工具里面都是静态方法,直接用类名访问即可访问,**因此,工具类无需创建对
  • 代码块是java五大成分之一(成员变量,构造器,方法,代码块,内部类),定义在类中方法外
  • 在java类下,使用{}扩起来的代码被称为代码块

代码块分为

静态代码块

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

构造代码块

单例设计模式

什么是设计模式

  • 开发中经常遇到一些问题,一个问题通常有n中解法,但其中肯定有一种解法是最优的,这个最优解法被人总结出来称为设计模式

单例模式

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

单例模式的实现方式有很多

  • 饿汉单例模式
  • 懒汉单例模式

饿汉单例设计模式

  • 在用类获取对象的时候,对象已经提前为你创建好了

设计步骤:

  • 定义一个类,把构造器私有
  • 定义一个静态变量存储一个对象

懒汉单例设计模式

  • 在真正需要创建该对象的时候,采取创建一个对象(延迟加载对象)

设计步骤:

  • 定义一个类,把构造器私有
  • 定义一个静态变量存储一个对象
  • 提供一个返回单例对象的方法