亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

java中靜態變量指的是什么

發布時間:2021-05-08 12:24:58 來源:億速云 閱讀:236 作者:小新 欄目:編程語言

小編給大家分享一下java中靜態變量指的是什么,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

Java的優點是什么

1. 簡單,只需理解基本的概念,就可以編寫適合于各種情況的應用程序;2. 面向對象;3. 分布性,Java是面向網絡的語言;4. 魯棒性,java提供自動垃圾收集來進行內存管理,防止程序員在管理內存時容易產生的錯誤。;5. 安全性,用于網絡、分布環境下的Java必須防止病毒的入侵。6. 體系結構中立,只要安裝了Java運行時系統,就可在任意處理器上運行。7. 可移植性,Java可以方便地移植到網絡上的不同機器。8.解釋執行,Java解釋器直接對Java字節碼進行解釋執行。

在java中,靜態變量指的是被static修飾的類的變量;靜態變量被所有類實例對象所共享,在內存中只有一個副本,當且僅當在類初次加載時會被初始化。

本教程操作環境:windows7系統、java8版、DELL G3電腦。

1. JVM運行時數據區域

java中靜態變量指的是什么

  • Java堆存放幾乎所有的對象實例,被所有線程共享

  • 方法區(永久代)與Java堆一樣,是各個線程共享的內存區域,它用于存儲已經被虛擬機加載類的類信息、常量、靜態變量(static variable)等

2. static變量

被static修飾的類的變量,也稱為靜態變量。非靜態變量也稱為實例變量

靜態變量和實例變量的區別是:

  • 靜態變量被所有類實例對象所共享,在內存中只有一個副本,當且僅當在類初次加載時會被初始化。

  • 實例變量是實例對象所擁有的,在創建對象的時候被初始化,存在多個副本,各個實例對象擁有的副本互不影響

public class MyStatic {
    // 靜態變量
    private static int index = 0;

    // 實例變量
    private int count = 0;

    public void inc() {
        index++;
        count++;
    }

    public String  get() {
        return "靜態變量index = " + index + ",  實例變量count = " + count;
    }
}
/**
 * index是靜態變量
 * count是實例變量
 * */
public class StaticVariableTest {

    public static void main(String[] args) {
        MyStatic myStatic1 = new MyStatic();
        MyStatic myStatic2 = new MyStatic();
        MyStatic myStatic3 = new MyStatic();

        myStatic1.inc();
        System.out.println("myStatic1的index、count增加1:");
        System.out.println("myStatic1的" + myStatic1.get());
        System.out.println("myStatic2的" + myStatic2.get());
        System.out.println("myStatic3的" + myStatic3.get() + "\n");

        myStatic2.inc();
        System.out.println("myStatic2的index、count增加1:");
        System.out.println("myStatic1的" + myStatic1.get());
        System.out.println("myStatic2的" + myStatic2.get());
        System.out.println("myStatic3的" + myStatic3.get() + "\n");

        myStatic3.inc();
        System.out.println("myStatic3的index、count增加1:");
        System.out.println("myStatic1的" + myStatic1.get());
        System.out.println("myStatic2的" + myStatic2.get());
        System.out.println("myStatic3的" + myStatic3.get());
    }
}

運行結果:

java中靜態變量指的是什么

可以看出:

  • 靜態變量index是多個對象實例共享的

  • 實例對象count是多個對象實例私有的

myStatic1的index、count增加1:
myStatic1的靜態變量index = 1,  實例變量count = 1
myStatic2的靜態變量index = 1,  實例變量count = 0
myStatic3的靜態變量index = 1,  實例變量count = 0

myStatic2的index、count增加1:
myStatic1的靜態變量index = 2,  實例變量count = 1
myStatic2的靜態變量index = 2,  實例變量count = 1
myStatic3的靜態變量index = 2,  實例變量count = 0

myStatic3的index、count增加1:
myStatic1的靜態變量index = 3,  實例變量count = 1
myStatic2的靜態變量index = 3,  實例變量count = 1
myStatic3的靜態變量index = 3,  實例變量count = 1

java中靜態變量指的是什么

3. static變量誤區

3.1 static不能作用于局部變量
  • C/C++中static是可以作用域局部變量的

  • Java中static是不允許用來修飾局部變量。
    不要問為什么,這是Java語法的規定。
    java中靜態變量指的是什么

3.2 this可以訪問靜態變量

靜態變量雖然獨立于對象,但是不代表不可以通過對象實例去訪問,所有的靜態方法和靜態變量都可以通過對象實例訪問(只要訪問權限足夠)。
this表示當前對象實例,而static靜態變量被所有對象所共享,所以可以通過this訪問靜態變量

public class StaticVariable {
    public static int index = 1;

    public static void main(String[] args) {
        StaticVariable staticVariable = new StaticVariable();
        staticVariable.get();
    }

    private void get() {
        int index = 2;
        System.out.println(this.index);
    }
}

運行結果:

java中靜態變量指的是什么

3.3 static不會改變類成員的訪問權限

Java中的static關鍵字不會影響到變量或者方法的作用域。在Java中能夠影響到訪問權限的只有private、public、protected(包括包訪問權限)這幾個關鍵字

public class MyStatic {
    public static int index1 = 1;

    // 靜態變量
    private static int index2 = 0;
}

public class StaticVariableTest {

    public static void main(String[] args) {
        System.out.println(MyStatic.index1);
        System.out.println(MyStatic.index2);
    }
}

java中靜態變量指的是什么

以上是“java中靜態變量指的是什么”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

威信县| 称多县| 达拉特旗| 英吉沙县| 舟曲县| 兴业县| 闽清县| 大丰市| 玛纳斯县| 武鸣县| 静乐县| 沾益县| 滨海县| 民权县| 乐清市| 新乡市| 石屏县| 洱源县| 阿克| 缙云县| 临颍县| 西吉县| 武功县| 永宁县| 丰原市| 丁青县| 富川| 潮州市| 大冶市| 余姚市| 肃南| 江都市| 托克逊县| 天水市| 湟中县| 东兴市| 阳曲县| 普格县| 台安县| 丹棱县| 阳原县|