① 關於java儲存變數的一些問題
你要明白什麼是引用,什麼事對象。
Circle circle1 = new Circle(radius);
Circle circle1是一個引用,它指向new Circle(radius)這個對象
Circle circle2 = circle1;
Circle circle2復制了circle1這個引用,也就是說也指向new Circle(radius);這個對象
所以你操作circle2.setRadius(10);的時候會改變circle1
因為這兩個引用指向的是一個對象
了解了什麼是引用,什麼是對象,你就不會疑惑了
② java中的變數各佔得位元組數
boolen:1個位元組自
int:4個位元組
float:4個位元組
double:8個位元組
char:2個位元組
byte:1個位元組
short:2個位元組
long:8個位元組
(2)java中變數的存儲擴展閱讀
Java8大基本數據類型
1,四種整數類型(byte、short、int、long):
byte:8 位,用於表示最小數據單位,如文件中數據,-128~127
short:16 位,很少用,-32768 ~ 32767
int:32 位、最常用,-2^31-1~2^31 (21 億)
2,兩種浮點數類型(float、double):
float:32 位,後綴 F 或 f,1 位符號位,8 位指數,23 位有效尾數。
double:64 位,最常用,後綴 D 或 d,1 位符號位,11 位指數,52 位有效尾。
3,一種字元類型(char):
char:16 位,是整數類型,用單引號括起來的 1 個字元(可以是一個中文字元),使用 Unicode 碼代表字元,0~2^16-1(65535)。
4,一種布爾類型(boolean):true真和false假
參考鏈接:網路JAVA
③ java 變數名存儲在哪裡
首先聲明抄一下一樓說的觀點有誤,對於棧和堆這里就不說了。
對於基本類型數據來說:
1) 局部變數
$范圍:定義在一個方法內部的變數;
$作用域:其作用域為所在代碼塊,也稱為臨時變數、棧變數;
$生命周期:從創建開始到方法(函數)結束為止;
$特點:在使用之前必須要對其初始化;
$一律存放在棧中。
2) 實例變數
$范圍:定義在一個類內部但不在方法中的變數;
$作用域:其作用域為整個類,能夠被操作的范圍是類的內部;
$生命周期:對象被創建的時候開始,對象被垃圾回收的時間結束;
$特點:如未定義其初值,系統會自動對實例變數進行默認初始化(默認值為null),使用之前必須創建類的實例;
$每一個對象的實例變數的值是相互獨立的;
$一律存放在堆中。
對於復雜類型來說:
引用存放在棧中,而其所指向的值存放在堆中。
回答補充:我的以上陳述已經回答了你的問題,是你沒有看懂而已,當然不用了!