static和final区别

static(静态修饰关键字)

可以修饰变量和程序块以及类方法(具体解释可分为3点,参考博文):
*1. jvm会将 static变量分配在方法区里,所有的程序对他的引用都会指向这一个地址而不会重新分配内存;
*2. 用static修饰的程序块,虚拟机会优先加载静态块中代码,主要用于系统初始化;
*3. 类中用 static 修饰的变量是属于类本身的变量,
e.g.

public class Item(){
    double price;
    String name;
    static boolean isSell;    //是否售卖

    public static void main(){
        Item pen = new Item();
    }
}

在以上代码中个,静态变量 isSell是属于抽象类 Item 的变量,内存位于方法区;
而类实例 pen 却被分配在堆区;
java内存管理

注:看来还是要好好看看 java 的内存管理了

posted on 2019-05-15 14:52  HeartAndSoul  阅读(282)  评论(0)    收藏  举报

导航