| 由stattic修饰的变量、常量和方法被称为静态变量、静态常量和静态方法。 
 处理问题时会需要两个类在同一个内存区域共享一个数据,为了解决这个问题,可以将这个数据设置为静态的。
 
 被声明为static的变量、常量和方法被称为静态成员。静态成员属于类所有,区别于个别对象,可以在本类或其它类使用类名和“.”运算符调用静态成员:类名. 静态成员。尽管这种方式调用静态成员比较方便,但是静态成员同样遵循public、protected、default和private修饰符的约束。
 
 static特点:
 
 1>.随着类的加载而加载。会随着类的消失而消失,它的声明周期很长;
 
 2>.优先于对象存在:静态先存在,对象后存在;
 
 3>.被所有的对象所共享
 
 4>.可以直接被类名所调用。
 
 实例变量和类变量的区别:
 
 a.存放位置:
 
 类变量随着类的加载而存在于方法区中;实例变量随着对象的建立而存在于堆内存中
 
 b.生命周期
 
 类变量生命周期最长,随着类的消失而消失;实例变量生命周期随着对象的消失二消失;
 
 在java中静态使用注意事项:
 
 1>.在静态方法中不可以定义this、super关键字,因为静态优先于对象存在;
 
 2>在静态方法中不可以直接调用非静态方法。静态方法只能访问静态成员;非静态方法既可以访问静态,也可以访问飞静态;
 
 静态函数的利弊:
 
 利处:对对象的共享数据进行单独空间的存储,节省空间。没有必要每个对象中都存一份,可以直接被类名调用
 
 弊处:生命周期过长。(静态虽好,只能访问静态)
 
 4.静态代码块
 
 格式:
 
 static
 
 {
 
 静态代码块中的执行语句。
 
 }
 
 特点:随着类的加载而加载,只执行一次,并优于主函数,用于给类进行初始化;
 
 
 |