活动地址:CSDN21天学习挑战赛
1.概述:
static:就是多个对象共享同一份数据
一个类的不同对象有些共享的数据,这样我们就可以使用static来修饰
一旦使用了static关键字,那么这样的内容不再属于对象,而是属于类的,所以凡是本类的对象,都共享同一份。
可以用来修饰成员变量,修饰成员方法,以及静态代码块儿。
2.修饰成员变量:
如果一个成员变量使用了static关键字,那么这个变量不再属于对象自己,而是属于所在的类,多个对象共享同一份数据
3.修饰成员方法:
static修饰成员方法:
一旦使用static修饰成员方法,这就成为了一个静态方法,静态方法不属于对象,而是属于类的。
如果没有static关键字,那么就必须首先创建对象,然后通过对象才能够去使用它。
如果有static关键字,那么不需要创建对象,直接通过类名称来使用它。因为静态方法,跟对象没什么关系是属于类的
4.静态static的内存图
在内存图的方法区当中,有一块独立的空间,叫静态区,专门用来存储静态static的数据。
根据类名称访问静态成员变量的时候,全程和对象没有任何关系!
5.静态代码块
代码块:直接用一个大括号包起来的,就叫代码块儿。
特点:当第一次用到本类时,静态代码块执行唯一的一次。
不管任何情况,静态的内容总是有先于非静态
静态代码块的典型用途是:
用来一次性地对静态成员变量进行赋值。比如MySQL源码中就是用了静态代码块。