static关键字
实际是指定了这些变量和方法在内存中的“”固定位置“”stack storage,可以理解为所有实例对象共有的内存空间
stack 初始化有两种属性:
instance属性在创建实例的时候初始化
static属性在类加载
也就是第一次使用到这个类的时候初始化
提到static 关键字 就要想到3点分别是
1.static 修饰的 类
java中static一般用来修饰成员变量或者函数。但是有一种特殊的用法 用static 修饰内部类,普通类是不允许声明为静态的。只有内部类才可以。用static修饰的内部类可以直接作为一个普通类来使用,而不需要直接实例一个外部类。
main 方法中的内部类
public class Demo {
public static void main(String[] args){
inner in = new inner(); //由于内部类没有声明成静态类导致了在 静态方法中调用动态方法的错误
}
public class inner{
public void innerMethod(){
}
}
}
public class Demo {
public static void main(String[] args){
inner in = new inner(); //加了static关键字修饰后可以正常使用
}
public static class inner{
public void innerMethod(){
}
}
}
2.static 修饰的 成员方法
static修饰的成员方法可以直接通过类名访问 成员方法只能调用static修饰的成员变量。
3.static 修饰的 变量
static 修饰的变量的意义是不需要实例化某个类就可以直接调用
全局变量
还是可以通过类名调用