導航:首頁 > 編程語言 > java保存變數的值

java保存變數的值

發布時間:2023-04-19 04:22:59

java變數存儲問題

我對你看到的這個東西很不認同啊,Java里對int類型是傳值i的,你定義了兩個不同的int類型變數a和b那麼它們就是毫無關系的,應該是不同的兩個地址才對。

憑我對編譯原理的理解,我覺得Java和C什麼的一樣,對局部變數是這樣處理的:
程序在編譯的時候就會給變數分配其在棧中的位置。舉個例子:
int a = 3; int b = 3;
int c = a + 1;
假設編譯時給a分配的地址是「棧底+8」,b的地址是「棧底+12」,c的地址是「棧底+16」,那麼這一段代碼編譯後變成:
mov 8(%ebp), 3
mov 12(%ebp), 3
add 16(%ebp), 8(%ebp), 1
也就是說編譯之後,程序里就沒有a、b這些東西了,直接通過地址來進行運算。

如果我上面的理解沒有問題,那麼對你的問題的回答是:
1)不用找。
2)不會改變,這個地址在編譯時就分配好了。
3)我認為函數傳參的時候對基本類型還是傳值的,即會把基本類型的參數的值復制一份放到被調用函數的棧中;對於類變數才是直接扔進去一個地址。不過我不是很確定。
後補充的那一問,沒錯我同意你的看法。

Ⅱ java中定義一個保存float類型變數的值並初始化,求該數組中的最大值,並輸出

//為甚麼在復這不能粘貼,非要要我重新制敲

import java.util.*

public class Test{

public static void main(String args[]){

Scanner s=new Scanner(System.in);

float arr[]=new float [];//你沒說幾個數,我就寫了五個

System.out.println("輸入五個浮點數");

for(int i=0;i<5;i++){

arr[i]=s.nextFloat();

}

Arrays.sort(arr);//從打到小排序

System.out.println(arr[arr.length-1]);//輸出最後一個,最大的

}

}

Ⅲ java在循環語句的執行語句賦予變數值循環結束後會釋放嗎

在 java 中辯轎,在循環語句的執行語句中賦予變數值的操作不會導致變數被釋放。
Java 中的變數在被聲明後,會在內存中分配一塊存儲空間,並保存該變數的值。在執行循環語句時,變數值會被重復賦值,但是它的存儲空間並不會被釋放。
當循悄清環結束後,變數的值可能會發生變化,但是變數本身的存儲空間並不會被釋放。它只有在程序執行結束後,Java 虛擬機才會清理啟灶前內存並釋放相關資源。
因此,在 java 中,在循環語句的執行語句中賦予變數值的操作不會導致變數被釋放。
再試一次重新路由

閱讀全文

與java保存變數的值相關的資料

熱點內容
手機怎麼在word製作作業文件 瀏覽:489
工行銀行卡安全升級 瀏覽:807
桌面放的文件找不到 瀏覽:922
買學生票用什麼app 瀏覽:590
共建共享網路平台 瀏覽:39
js傳值到超鏈接裡面 瀏覽:608
編程中的w和h是什麼 瀏覽:313
資料庫切了什麼意思 瀏覽:213
如何登錄極路由器設置密碼 瀏覽:522
jsp用戶登陸密碼加密源代碼 瀏覽:629
everfilter使用教程 瀏覽:768
作業票文件名稱是什麼 瀏覽:463
私密文件忘記密碼 瀏覽:686
藏文軟體app怎麼可以下載 瀏覽:960
鍵盤文件名 瀏覽:538
電腦自帶驅動在那個文件夾 瀏覽:531
c窗體讀取文件夾 瀏覽:965
asp婚紗攝影網站 瀏覽:684
文件恢復的原理 瀏覽:828
移動硬碟清空怎麼恢復數據 瀏覽:433

友情鏈接