java字元串賦值
A. 如何實現java 字元串變數間的賦值
可以用new一個字元串,字元串本身就比較特殊,根據創建方式不同,佔用的內存區域也不同。
如果用String str = new String("acb");那麼就會再堆內存中分配一個空間。如果按你上面那種賦值,那麼當a="afdf"時候,就會棧中找值等於"dfdf"的字元串,如果找到了,就將a的引用指向它,如果沒有找到就開通新的內存,讓後a指向它,執行到b=a;時同上,當然這個時候棧中必然有"dfdf"所以不會開辟新的內存空間,而是將b的引用直接指向"dfdf"所佔的內存地址。
棧內存中的值可以共享,而堆內存不同,因為堆內存是在編譯的時候才會分配的,屬於動態的,因為事先也不知道,它會佔用多大內存,所以不好分配。
B. 怎樣在java 中用鍵盤讀入一個字元串後賦給一字元串變數
java中實現用鍵盤讀入一個字元串後賦值給字元串變數可以使用Scanner來獲取鍵盤輸入的字元串,並聲明一個字元串變數來存儲鍵盤輸入的字元串。
示例代碼如下:
publicclassScannerDemo{
publicstaticvoidmain(String[]args){
Scannerscan=newScanner(System.in);//創建Scanner對象
System.out.println("請輸入字元串:");
Stringstr=scan.next();//獲取鍵盤輸入的字元串並復制給變數
System.out.println("輸入的字元串為"+str);
}
}
Scanner類主要用來獲取鍵盤輸入的信息。
C. java中字元串賦值問題
Java運行時會維護一個String
Pool(String池,
String常量池,
字元串緩沖區)
String池用來存放運行時中產生的各種字元串,並且池中的字元串的內容不重復。
而一般對象不存在這個緩沖池,並且創建的對象僅僅存在於方法的堆棧區
String
s
=
"accp";
創建s之前系統會先在"池子"中查找是否已經存在這個字元串,
如果存在則直接符號該字元串的句柄
如果不存在,
系統會創建一個新"accp"字元串,
並返回句柄,
以後再有"accp"被要求創建,
系統不會創建新的,而是直接返回已經存在的字元串的句柄
String
s
=
new
String("accp");
系統不會去"池子"中查找,
直接在內存中新開辟一塊空間,
初始化為"accp",並返回句柄
D. java中 輸入字元串怎麼給String數組賦值
因為你第一個for循環後i的值已經變成了2 即i=2
而你的數組的長度是2 下標最多是1 在下面的if判斷裡面你直接使用filenames[i] 此時的i=2 當然錯誤
java.lang.: 2
E. java中字元串數組如何賦值
變數初始化,和變數賦值是兩個不同的語法。
數組初始化時,可以為null,{value1,value2,value3,....},或者賦予另一個數組的值:String[] b = a;
常量只能被初始化,一次,不能再次賦值;
非常量則可以進行賦值操作,賦值操作只能賦予以下情況:null,另一個數組的值。
lz的問題中,a={","}是一個初始化的語法,不是正確的賦值語法。
F. java 字元串變數賦值例如 String a="abc"; String b; b=a; b="
Stringa="abc";//定義了一個"abc"字元串,a指向這個字元串
Stringb;
b=a;//使b也指向a現在指向的那個字元串("abc")
b="abcd";//定義了一個"abcd"字元串,b指向這個新的字元串
在內存中大致的示意圖如下:
所以最後 a =「abc」,b=「abcd」
java中字元串是一個較為特殊的存在,如果感興趣可以找資料詳細了解
Java中字元串內存位置淺析
觸摸java常量池
G. JAVA中這兩種給字元串變數賦值的方法有區別嗎
有區別。new出來的對象在堆內存中。
直接賦值的字元串在 常量池區
H. java字元串數組增加賦值
你那是語法錯誤了
,[]裡面給的值是數組的長度
是個數值。
string[]
forname
=
new
string[]{"name","nam2","name3"};
I. java字元串賦值
選BC
a是正確的,定義s並復制一個字元串字面量abcd
b是錯誤的,\0表示字元串的結束,如果不寫,默認添加上,這段是正確的,但字元串不能用單引號,必須用雙引號,因此也是錯誤的
c是錯誤的,\表示轉義身後的字元,\a在java中不是轉義字元,\n表示換行,\t表示一個製表符,\r表示回車等
d是正確的,正確定義s,但未初始化
J. java怎麼字元串給字元串賦值
JAVA中賦值操作統一 用「=」就可以了包括字元串賦值,如:
String a = "adfasdfasgasdg";