![](/img/trans.png)
[英]A reference to primitive type in Java (How to force a primitive data to remain boxed)
[英]How to make a primitive point to a reference?
我想知道為什么原始int不會隨着數組大小的變化而變化。 原語不是指向數組引用嗎?
List<String> list = new ArrayList<>();
int num = list.size();
list.add("item1");
list.add("item2");
System.out.println(num); //why is the num variable still equals to zero?
由於原始體是原始體, 因此無法指向。 他們擁有一個價值,就是這樣。 如果要更改值,則必須更改它。 如果您想在List更改時更改num變量,或者甚至更好地完全list.size()
num,並在需要其大小時調用list.size()
,可以考慮使用觀察者類型模式。
原語指向具有靜態(不要與static
關鍵字混淆)值的內存區域,它們無法引用類中的變量。 從本質上講,更改原語后,它現在指向其中具有新數字的新存儲位置。
另外,列表中的size變量也是一個原始變量。 該原語似乎有所變化,但這僅僅是因為每次在列表中添加或刪除某些內容時都會對其進行更改。
調用size()
,您將在該瞬間獲得該集合大小的快照。 您沒有任何額外的參考,因為它只是一個數值。 它永遠不能保存任何類型的引用,它將始終是原始的數值。
size()
方法可以引用集合的內部狀態,因此最好使用它而不是將其存儲在另一個變量中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.