多个对象公用的一个不变的值,使用static来修饰
static 是一个修饰符只能修饰成员,成员变量,成员函数
,
静态修饰内容被对象所共享
当成员被静态修饰后,就多了一个条用方式,除了可以被对象调用,还可以被类名调用。方式对象.bianliang
eg:既然这么方便,就都用静态吧?
答:不行的,是因为,这是公共的是对象共享的!除非人都有统一同名,具体情况具体分析。
传值博客,饮水机静态,如果饮水机静态,太占用空间。可以使用一个饮水机,杯子可以共享静态
分析,事物的特有的,特有数据随对象存储在对内存中,
新的内存:方法区/共享区/数据区
static特点:
1.随着类的加载而加载 、//person进内存。静态已经存在,随着类的消失而消失。说明static的生命周期最长。
2.被所有对象所共享
3.优先于对象存在
4.可以直接被类名所调用
eg:String name //成员变量也叫实例变量
static String name /静态的成员变量,类变量
问:什么是对象特有的,什么是对象共有的?
问:实例变量和类变量的区别?
回答:类1.变量随着类的加载而存在于方法区中,实例变量随着对象的建立,存在于堆内存中(对戏对象里面)
2.生命周期:
类变量生命周期最长,随着类的消失而消失。
实例变量生命周期随着对象的消失而消失。
静态的使用注意事项:
- 静态方法 static
- 静态变量 static
(1)静态方法只能访问静态成员(方法和变量)2
(2)非静态方法可以访问静态,也可以访问非静态
(3),静态方法中不可以定义this。super关键字
静态优先于对象存在,所以静态方法中不可以出现this
静态方法有利有弊:
掌握共享方面:
利,对对象的共享数据单独存储,节省空间的存储,没必要都存储一份在对象中
可以直接被类名调用
弊:生命周期太长,访问出现局限型,(静态虽好,只能访问静态)