1.静态方法里只能调用静态成员。
static String name="sds";
String age="12";
static {
System.out.println(age+"静态代码块");
结果:
报错
}
2.静态成员无需实例化直接可以调用(类名.方法),也可以用对象调用方法。非静态成员只能用创建对象会调用。
public class StaticMethod {}
static public void show(){
System.out.println("静态方法无需实例化就可以调用");
}
StaticMethod .show();
new StaticMethod().show();
结果:
静态方法无需实例化就可以调用
静态方法无需实例化就可以调用3.非静态静态代码块优先于构造函数
{
System.out.println("非静态代码块");
}
public StaticMethod(){
System.out.println("构造方法");}
结果:
非静态代码块
构造方法
4. 静态成员 静态方法是属于类的,内存必须为它分配内存空间,
这个空间一直由静态方法占用,内存管理器不会由于静态方法没有被调用而将静态方法的存储空间收回,这样如果将所有的 方法都声明为静态方法,就会占用大量的内存空间,最后是系统变慢。而普通的成员方法是由对象调用的,内存并不会一直为起分配内存,只有调用的时候才为其分配存储空间,而当其没有被调用时,存储空间就会被内存管理其收回,释放没有用的空间,提高的系统的运行速率!
5.static 作用:如果某个状态、行为、属于整个事物(类),就直接使用修饰被所有对象所共享。