java Static和实例化的区别

static 变量和实例变量: 
也叫静态变量或类变量,它在内存中只有一个拷贝(节省内存),JVM只为静态分配一次内存,在加载类(类的加载是通过类加载器(Classloader)完成的,它既可以是饿汉式[eagerly load](只要有其它类引用了它就加载)加载类,也可以是懒加载[lazy load](等到类初始化发生的时候才加载)。不过我相信这跟不同的JVM实现有关,然而他又是受JLS保证的(当有静态初始化需求的时候才被加载)。http://www.importnew.com/6579.html)的过程中完成静态变量的内存分配,可以用类名直接访问直到程序退出运行,才会释放所占有的内存;
对于实例变量,每创建一个实例,就会为实例变量分配一次内存,实例变量可以在内存中有多个拷贝,互不影响(灵活)。
static 方法
静态方法是使用公共内存空间的,就是说所有对象都可以直接引用,不需要创建对象再使用该方法
中定义非Static时,必须在Static方法内部定义调用;在方法外必须用static int xxx定义;
final A类不允许任何类声明成A的子类调用,用final修饰父类中的一个方法,该方法将不允许子类重写,成员变量或局部变量被修饰为final,那么它们为常量,常量在声明时没有默认值,所以在声明常量时必须指定该常量的值,不能发生变化;(final double PI=3.1415926)

你可能感兴趣的:(JAVA)