前言
- 该文章为Java基础自学笔记
- 其他内容:Java基础学习笔记目录
- 学习用书:
《Java核心技术 卷Ⅰ 基础知识(第10版)》
《Java经典编程300例》
第十四章 static静态关键字
14.1 static关键字的作用
- static是静态的意思,可以修饰成员变量,表示该成员变量只在内存中存储一份,可以被共享访问、修改
14.2 static修饰成员变量
14.2.1 静态成员变量
- 有static修饰,属于类,内存中加载一次
- 常表示如在线人数信等需要被共享的信息,可以被共享访问
- 访问方式:
类名.静态成员变量
对象.静态成员变量
14.2.2 实例成员变量
- 没有static修饰,存在于每个对象中
- 常表示姓名name、年龄age等属于每个对象的信息
- 访问方式:
对象.实例成员变量
14.2.3 static修饰成员变量的内存原理
![static修饰成员变量的内存原理](https://img-blog.csdnimg.cn/5d0797778c574b3dbcb0083084646741.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAU2lsZW5jZeS4tg==,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
14.3 static修饰成员方法
14.3.1 静态成员方法
- 有static修饰,属于类
- 建议用类名访问,也可以用对象访问
- 使用场景:
- 表示对象自己的行为,且方法中需要访问实例成员,则该方法必须声明成实例方法
14.3.2 实例成员方法
- 没有static修饰,属于对象
- 只能用对象触发访问
- 使用场景:
- 如果该方法是以执行一个通用功能为目的,或需要方便访问,则可以声明成静态方法
14.3.3 static修饰成员方法的内存原理
![static修饰成员方法的内存原理](https://img-blog.csdnimg.cn/d6c409e6f3e743eca8978ec92fbc3dc0.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAU2lsZW5jZeS4tg==,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
14.4 static实际应用
14.4.1 工具类
- 对于一些应用程序中多次需要用到的功能,可以讲这些功能封装成静态方法,放在一个类中,这个类就是工具类
- 工具类的作用:
14.4.2 工具类原理和延伸
- 一次编写,处处可用
- 将工具类的构造器私有,不让工具类对外产生对象
【static应用案例1】设计验证码工具类
- 需求:
- 在企业的管理系统中,通常需要在一个系统的很多业务处使用验证码进行防刷新等安全控制
- 设计验证码工具类,实现在登录和注册等多处地方均可实现验证码功能
- 代码
public class VerifyTool {
private VerifyTool() {
}
public static String createCode(int length) {
String data = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
String code =