更新時間:2022-12-16 11:33:02 來源:動力節點 瀏覽1495次
變量的定義賦值:比如int a=1;
a是變量的名字,1是變量的值,也可叫做Java字面量;
這個定義賦值過程其實可分為兩個部分:定義和賦值
int a;
a=1;
定義a變量的儲存位置在哪兒呢?
它在棧內存中被分配出了一小塊空間;
而a=1中的1是字面量,字面量的存儲是在方法區中的常量池中被分配的;
接下來我們談談java對象吧,通常我們都會用:
A a = new A()來創建一個對象,我們也把它分為兩步:
A a;
a=new A();
new A()是根據類模板創建出一個類的對象,這個對象是在堆中被創建的,但是它沒有名字,我們只能通過地址去對它進行操作,所以我們把它的地址賦值給了a,而a則是一個引用變量,指向了這個對象,與C中的指針類似,我們對這個對象的操作都通過對a引用變量的操作來實現;
而引用變量的內存空間分配也在棧內存中;
所以棧內存的存儲內容主要是基本類型的變量和對象的引用變量;
那么我們什么時候會用到引用變量呢?
舉個例子,我們打印一個字符串
System.out.println(“一個字符串”);
這個"一個字符串"是一個對象吧,打印結束后它去了哪里呢?它在打印完成后就被java回收機制回收了,這種對象我們叫做臨時對象,我們只是對它進行生成和打印,并沒有對它進行其他操作,所以根本不需要用到引用變量。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習