最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java 中的變量類型

 更新時間:2021年11月08日 16:03:15   投稿:hqx  
這篇文章主要介紹了Java 中的變量類型,一般包括局部變量、成員變量、類變量,下面文章對這三種內容的變量做了一個詳細介紹,需要的朋友可以參考一下

1、局部變量

在方法或語句塊中定義的變量被稱為局部變量。變量聲明和初始化都是在方法中,方法結束后,變量就會自動銷毀。

  • 局部變量聲明在方法、構造方法或者語句塊中;
  • 局部變量在方法、構造方法、或者語句塊被執(zhí)行的時候創(chuàng)建,當它們執(zhí)行完成后,變量將會被銷毀;
  • 訪問修飾符不能用于局部變量;
  • 局部變量只在聲明它的方法、構造方法或者語句塊中可見;
  • 局部變量是在棧上分配的。
  • 局部變量沒有默認值,所以局部變量被聲明后,必須經過初始化,才可以使用。

2、成員變量(實例變量)

成員變量是定義在類中,方法體之外的變量。這種變量在創(chuàng)建對象的時候實例化。成員變量可以被類中方法、構造方法和特定類的語句塊訪問。

  • 實例變量聲明在一個類中,但在方法、構造方法和語句塊之外;
  • 當一個對象被實例化之后,每個實例變量的值就跟著確定;
  • 實例變量在對象創(chuàng)建的時候創(chuàng)建,在對象被銷毀的時候銷毀;
  • 實例變量的值應該至少被一個方法、構造方法或者語句塊引用,使得外部能夠通過這些方式獲取實例變量信息;
  • 實例變量可以聲明在使用前或者使用后;
  • 訪問修飾符可以修飾實例變量;
  • 實例變量對于類中的方法、構造方法或者語句塊是可見的。一般情況下應該把實例變量設為私有。通過使用訪問修飾符可以使實例變量對子類可見;
  • 實例變量具有默認值。數(shù)值型變量的默認值是0,布爾型變量的默認值是false,引用類型變量的默認值是null。變量的值可以在聲明時指定,也可以在構造方法中指定;
  • 實例變量可以直接通過變量名訪問。但在靜態(tài)方法以及其他類中,就應該使用完全限定名:ObejectReference.VariableName。

3、類變量

類變量也聲明在類中,方法體之外,但必須聲明為 static 類型。

  • 類變量也稱為靜態(tài)變量,在類中以 static 關鍵字聲明,但必須在方法之外。
  • 無論一個類創(chuàng)建了多少個對象,類只擁有類變量的一份拷貝。
  • 靜態(tài)變量除了被聲明為常量外很少使用。常量是指聲明為 public / private, final static 類型的變量。常量初始化后不可改變。
  • 靜態(tài)變量儲存在靜態(tài)存儲區(qū)。經常被聲明為常量,很少單獨使用 static 聲明變量。
  • 靜態(tài)變量在第一次被訪問時創(chuàng)建,在程序結束時銷毀。
  • 與實例變量具有相似的可見性。但為了對類的使用者可見,大多數(shù)靜態(tài)變量聲明為 public 類型。
  • 默認值和實例變量相似。數(shù)值型變量默認值是 0,布爾型默認值是 false,引用類型默認值是 null。變量的值可以在聲明的時候指定,也可以在構造方法中指定。此外,靜態(tài)變量還可以在靜態(tài)語句塊中初始化。
  • 靜態(tài)變量可以通過:ClassName.VariableName 的方式訪問。
  • 類變量被聲明為 public static final 類型時,類變量名稱一般建議使用大寫字母。如果靜態(tài)變量不是 public final 類型,其命名方式與實例變量以及局部變量的命名方式一致。

關于 類變量 的說明:

The static keyword in Java is used for memory management mainly. We can apply java static keyword with variables, methods, blocks and nested class. The static keyword belongs to the class than an instance of the class. The static can be: Variable (also known as a class variable) Method (also known as a class method) Block.

(翻譯)

Java 中的 static 關鍵字主要用于 內存管理(就是用了這個會安排出內存空間來,供類的實例之間共享某個量)。我們可以將 java 的 static 關鍵字施用于變量、方法、語句塊和嵌套類。static 定義的對象是屬于整個類的, 而不是某個類的實例。

普通的變量屬于類的某一個特定的實例,但用 static 關鍵字修飾的變量將屬于一個類。也就是說,我們通過類的某一個實例去修改一個一般的變量值,將只有這個實例中的值被修改,其他實例不受影響;而若是修改一個 static 關鍵字修飾的類變量,這個類的所有實例的這個值都會被修改。

說起來比較麻煩,可以看一段示例代碼:

public class Static {
 public static void main(String[] args) {
  Example foo = new Example();
  Example bar = new Example();

  foo.staticVar = foo.normalVar = "foobar";

  System.out.println(foo.staticVar + "\t" + foo.normalVar);
  System.out.println(bar.staticVar + "\t" + bar.normalVar);
 }
}

class Example {
 static String staticVar = "Example";
 String normalVar = "Example";
}

輸出:

foobar foobar
foobar Example

可以看到,我們只改變了 foo 實例的值,但由 static 修飾的類變量 staticVar 的改變在 bar 中也出現(xiàn)了,而普通的成員變量則不然。

利用這種特性,我們可以實現(xiàn)一種可以統(tǒng)計自己的實例個數(shù)的類,

例如:

public class CountingClass {
 public static void main(String[] args) {
  Counter a = new Counter();
  Counter b = new Counter();
  Counter c = new Counter();

  System.out.println("Total Counters: " + a.total + " == " + b.total + " == " + c.total);
 }
}

class Counter { // 自計數(shù)類
 static int total = 0;

 public Counter() {
  total++;
  System.out.println("第 " + total + " 個 Counter 被構造。");
 }
}

到此這篇關于Java 中的變量類型的文章就介紹到這了,更多相關Java 變量類型內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Spring整合JPA與Hibernate流程詳解

    Spring整合JPA與Hibernate流程詳解

    這篇文章主要介紹了Spring整合Hibernate與JPA,在正式進入Hibernate的高級應用之前,需要了解聲明是數(shù)據模型與領域模型,這兩個概念將會幫助我們更好的理解實體對象的關聯(lián)關系映射
    2023-01-01
  • 創(chuàng)建Java線程安全類的七種方法

    創(chuàng)建Java線程安全類的七種方法

    線程安全是指某個方法或某段代碼,在多線程中能夠正確的執(zhí)行,不會出現(xiàn)數(shù)據不一致或數(shù)據污染的情況,我們把這樣的程序稱之為線程安全的,反之則為非線程安全的,下面這篇文章主要給大家介紹了關于創(chuàng)建Java線程安全類的七種方法,需要的朋友可以參考下
    2022-06-06
  • java生成指定范圍的隨機日期

    java生成指定范圍的隨機日期

    這篇文章主要為大家詳細介紹了java生成指定范圍的隨機日期,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-12-12
  • 啟動Tomcat時出現(xiàn)大量亂碼的解決方法

    啟動Tomcat時出現(xiàn)大量亂碼的解決方法

    今天給大家?guī)淼氖顷P于Java的相關知識,文章圍繞著啟動Tomcat時出現(xiàn)大量亂碼的解決方法展開,文中有非常詳細的介紹及圖文示例,需要的朋友可以參考下
    2021-06-06
  • Java中常見死鎖與活鎖的實例詳解

    Java中常見死鎖與活鎖的實例詳解

    這篇文章主要介紹了Java中常見死鎖與活鎖的實例詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-11-11
  • Mybatis #foreach中相同的變量名導致值覆蓋的問題解決

    Mybatis #foreach中相同的變量名導致值覆蓋的問題解決

    本文主要介紹了Mybatis #foreach中相同的變量名導致值覆蓋的問題解決,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • Java中的排序Comparator類用法詳解

    Java中的排序Comparator類用法詳解

    這篇文章主要介紹了Java中的排序Comparator類用法詳解,Comparator?類常作為?sorted()?方法的參數(shù)傳遞給?sorted?方法,用來解決給集合排序,自定義排序規(guī)則的問題,需要的朋友可以參考下
    2023-08-08
  • 初步了解javafx

    初步了解javafx

    這篇文章主要介紹了初步了解javafx,具有一定借鑒價值,需要的朋友可以參考下
    2017-12-12
  • 簡單了解JAVA構造方法

    簡單了解JAVA構造方法

    構造方法作用就是對類進行初始化。 如果你沒有定議任何構造方法的形式,程式會為你取一個不帶任何參數(shù)的構造函數(shù),那么你產生類的對像時只能用不帶參數(shù)的方法.下面小編和大家來一起學習一下吧
    2019-06-06
  • Mybatis的parameterType造成線程阻塞問題分析

    Mybatis的parameterType造成線程阻塞問題分析

    這篇文章主要詳細分析了Mybatis的parameterType造成線程阻塞問題,文中有詳細的解決方法,及相關的代碼示例,具有一定的參考價值,感興趣的朋友可以借鑒閱讀
    2023-06-06

最新評論

南靖县| 新乐市| 共和县| 京山县| 龙江县| 辉县市| 阿拉善盟| 高邮市| 正定县| 平江县| 惠安县| 历史| 焉耆| 清水县| 淅川县| 永定县| 长白| 甘洛县| 奈曼旗| 绥江县| 临武县| 贡嘎县| 大同市| 城市| 同江市| 陆川县| 古丈县| 象州县| 文山县| 天峨县| 黑水县| 钟山县| 黎平县| 革吉县| 砚山县| 苍溪县| 平阳县| 莲花县| 游戏| 平果县| 广州市|