static关键字的特点,区别,注意事项以及⽤法
static关键字
static的特点
1. static是⼀个修饰符,⽤于修饰成员。
2. static修饰的成员被所有的对象所共享。
3. static优先于对象存在,因为static的成员随着类的加载就已经存在了。
4. static修饰的成员多了⼀种调⽤的⽅式,就是可以直接被类名所调⽤。类名.静态成员
5. static修饰的数据是共享数据,对象中存储的是特有数据。
class Person{
String name; //成员变量,实例变量
static String country="china"; //静态变量类变量
public void show()
{
System.out.println(country+":"+name);
}
}
成员变量和静态变量的区别:
⼀.俩个变量的⽣命周期不⼀样
1. 成员变量随着对象的创建⽽存在,随着对象的被回收⽽释放。
2. 静态变量随着类的加载⽽存在,随着类的消失⽽消失。
⼆.调⽤⽅式不同
1. 成员变量只能被对象调⽤。
2. 静态变量可以被对象调⽤,还可以被类名调⽤。
三.别名不同
1. 成员变量也称为实例变量。
2. 静态变量称为类变量
四.数据存储位置不同
1. 成员变量数据存储在堆内存的对象中,所以也叫对象的特有数据。
2. 静态变量数据存储在⽅法区(共享数据区)的静态区当中,所以叫做对象的共享享数据。
static修饰的变量静态使⽤的注意事项
1. 静态⽅法只能访问静态成员。这个静态成员既包含成员变量也包含成员函数。(⾮静态即可以访问静态,⼜可以访问⾮静态)。
2. 静态⽅法中不可以使⽤this或者super。
3. 主函数是静态的。
static在内存中的过程
静态什么时候⽤呢?
静态变量
1. 当分析对象中所具备的成员变量的值都是相同的,这时这个成员就可以被静态修饰了。
2. 只要数据在对象中都是不同的,就是对象特有的数据,必须存储在对象中,是⾮静态的。
3. 如果是相同的数据,对象不需要做修改,只需要使⽤即可,不需要存储在对象中,定义成静态的。
静态函数
1. 函数是否⽤静态修饰,就参考⼀点,就是该函数功能是否要访问特有数据。
2. 简单点说,从源代码看,该功能是否需要访问⾮静态的成员变量,如果需要,该功能就是⾮静态的。
什么时候使⽤静态
要从俩⽅⾯下⼿:
因为static修饰的内容有成员变量和函数。
什么时候定义静态变量(类变量)呢?
加不加static有什么区别呢?
1. 不加static,是在对象⾥⾯ 对象特有
2. 加了static是在⽅法区⾥⾯ 被对象共有 对象外边的就是共有数据,对象⾥边的就是特有数据
如果不需要访问特有数据,就可以将该功能定义成静态的,当然也可以定义成⾮静态的,但是⾮静态需要被对象调⽤,⽽仅创建对象调⽤⾮静态的,没有访问特有数据的⽅法,该对象的创建是其实是没有意义的。
静态代码块
1. 随着类的加载⽽执⾏。作⽤:⽤于给类进⾏初始化。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论