前言
static 是一个关键字 他可以修饰变量和方法,成为静态变量和静态方法。
在一些教材里面,又把static修饰过的变量 方法称之为“类变量”,“类方法”,java编译加载类的同时也把他们加载到了方法区中,通过类既可以调用。类方法,类变量,并不属于某一个特定的对象。
static修饰变量
类变量,并不属于某一个特定的对象,而是属于该类(这也解释了为什么称为类变量
),=无论我们创建了多少个该类的对象,他们的类变量都指向同一个内存的值,而改类变量也成为了该类的共享数据
例如
class person {
static double money=10 ;
}
Person p1 = new Person();
Person p2 = new Person ():
p1.money +=10;
//此时p2 对象的money 的值也变为20,
因为他们的momey 变量指向同一内存位置
// A code blockvar foo = 'bar';
static修饰方法
通常,我们需要new 一个对象,将对象存放到内存中,我们才对对象的方法进行调用,然而,我们有时并不希望通过new 对象来调用方法,而是直接通过类去调用静态方法(java 的一些工具类,例如collections 和arrays)