1.数据共享:
成员变量和静态变量的区别:
(1)生命周期不同:成员变量随着对象的创建而被创建,随对象的被收回而消失。静态变量随着类的加载而被创建,随着类的销毁而消失
(2)调用方式不同:成员变量只能被对象调用,静态变量还可以被类直接调用。
(3)数据的存储位置不同:成员变量->堆内存的对象中,也叫对象的特有属性,静态变量->方法区的静态区,也叫对象的共享区。
2.修饰变量:
每个对象共有的属性可以用static修饰,被修饰的变量可以被所有的对象共享。调用的时候用类名直接调用。
3.修饰方法:
(1)静态方法只能访问静态成员,非静态方法也可以访问静态属性
(2)静态方法中不可以使用this和super关键字
4.修饰代码块:静态代码块
随着类的加载而运行,而且只运行一次
作用:用于类的初始化
当类中的变量全是静态变量的时候,才使用静态代码块去初始化变量。
5.静态内部类:
1.做测试使用,不用在每个类中定义主方法,减少代码的重复
6.静态导包
静态导包就是java包的静态导入,用import static代替import静态导入包是JDK1.5中的新特性。
一般我们导入一个类都用 import com…..ClassName;而静态导入是这样:import static com…..ClassName.*;这里的多了个static,还有就是类名ClassName后面多了个.* ,意思是导入这个类里的静态方法。当然,也可以只导入某个静态方法,只要把 .* 换成静态方法名就行了。然后在这个类中,就可以直接用方法名调用静态方法,而不必用ClassName.方法名 的方式来调用。
好处:这种方法的好处就是可以简化一些操作,例如打印操作System.out.println(…);就可以将其写入一个静态方
法print(…),在使用时直接print(…)就可以了。但是这种方法建议在有很多重复调用的时候使用,如果仅有一到两次调用,不如直接写来的方便