當前位置:首頁 » 編程語言 » javastring初始化

javastring初始化

發布時間: 2022-06-13 15:57:55

Ⅰ 求教java中初始化字元串變數String toConfession=""

表示的是一個空字元串,其實Java創建String變數有兩種方式,一種是你這種,直接用雙引號帶內容的方式,另一種是String str = new String("內容");

這兩種方式是有區別的,這涉及到池的概念,在java中有個常量池,通過第一種方式創建,那JVM會先去常量池裡面找有沒有你的內容,如果有的話,就直接指向那個內容所在位置,如:String str1 = "1"; 這種方式創建,常量池中已經存在了"1"這個常量,所以str1就直接指向了它;而第二種方式,通過new來創建的,String str2 = new String("1");這個時候雖然在常量池中已經存在了"1"這個常量,可是它還是會去堆中先實例化一個對象,然後對象指向常量池中的 "1";

總結:
第一種方式:若常量池有已經存在的對象,這種初始化方式不會創建對象(通常常量池會先實例化好1-128的整數)
第二種方式:就算常量池已存在對象,還是會在堆中new一個字元串對象,然後指向常量池中的內容

Ⅱ java String數組初始化問題

並不是出亂碼了,是你把r加入進去了,r是一個String數組,無法直接轉換為String

最後的那句 sb.append(r.toString()); 沒有必要,刪除就可以了

Ⅲ Java局部變數初始化,String類型為什麼不用初始化就能使用

局部變數String需要初始化!

以下代碼:

public class Test {

public static void main(String[] args) {

String s;

System.out.println(s);

}

}

這個代碼直接報錯,無法編譯

你上面的代碼沒錯是因為你在while循環里對s進行了初始化

Ⅳ java String 初始化 是 null 還是 「」 他們的區別

你在創建的時候,沒有初始化時或賦值時,列印出的是null
因為String類型是一個對象,而不像int之類是基本類型有初始默認值
如果在初始時賦值「」(空值),那也算創建對象了(就是相當於new 操作)
列印出的為「」(空值)

Ⅳ java中的string類中內容一旦被初始化就不能改變為什麼還有replace方法呢

朋友,你好,對於你的問題,我覺得下面的回答您會滿意明了:
string類對象中的內容一旦被初始化就不能再改變
沒錯的,這是string類的特性,一定要記住。
下面舉個例子:
string
s
=
"hello";
//這時候會在內存中開辟一塊空間存儲「hello」,並且s的引用指向它;
s
=
「world」;
//看這句,初學者一般覺得這樣的話s的值就變了啊,跟string的特性相違背了啊,其實並不然,s只是對象的引用,真正的對象存在了內存中,執行這句語句的時候,會在內存中重新開辟一塊內存,用來存儲「world」,並將原來的s引用指向「world」。但是原來的內存中的「hello」並沒有改變。也就是說string類對象中的內容一旦被初始化就不能再改變。
希望您會看明白。

Ⅵ JAVA中一個類包含String數組怎麼初始化的

不可以滴!!
因為在B中,如果沒有了帶*的那一行,那麼僅僅只是代表 有存在一個存放A類型數組:as[i],但是裡面每個元素到底存放什麼我們是不知道的,在JAVA裡面,就是引用為空的意思,既as[i] = null。就是說裡面其實是沒有任何東西的,僅僅只有一個定義而已,那怎麼可以指向A類裡面的a屬性呢?因為as[i]指向的東西都為空,空就是代表沒有任何東西,那麼裡面自然也不會有a這個屬性咯。所以我們在聲明完數組的時候,必須把數組裡面的元素也申明了。但是為什麼C可以呢。
你看C是這樣做的:
C先聲明了一個數組,所以只要存在C的實例,就可以使用到這個數組。雖然這時候,數組裡面的元素是為空的,但是你在主程序裡面使用了c.s[1]="3",意思就是為c實例裡面的數組的第2個元素給申明了,而不是直接引用,這與B是不同的。
——————————————————————————————————————————————————————
B-->不為空,所以可以使用B裡面的元素,既as數組,但是as數組裡面的元素是空的,所以不存在裡面有某種屬性的說法,自然是不可是使用A類裡面的元素a咯。
C--》不為空,所以可以使用C裡面的元素s數組,然後對s數組進行操作。
祝你好運!!希望你能夠理解

Ⅶ java中string類型變數的默認初始值是什麼

java中string類型變數的默認初始值是為null。

Ⅷ java中String類型一定需要初始化嗎

如果後面有
賦值語句
,那麼就不需要初始化,如果沒有賦值語句,需要初始化,測試代碼如下:
class
test
{
public
static
void
main(String[]
args)
{
String
s;
//System.out.println(s);
s="Hello";
System.out.println(s);
}
}
如果把注釋部分的注釋符號去掉,則會出現s未初始化的錯誤提示

Ⅸ java String 初始化 是 null 還是 「」 他們的區別

String str1 = null; str引用為空

String str2 = ""; str引用一個空串

也就是null沒有分配空間,""分配了空間,因此str1還不是一個實例化的對象,而str2已經實例化。

注意因為null不是對象,""是對象。所以比較的時候必須是 if(str1==null){...}和if(str2.equals("")){...}。

對象用equals比較,null用等號比較。因此,如果str1=null;下面的寫法錯誤:
if(str1.equals("")||str1==null){//如果str1沒有值,則....
//。。。。
}
正確的寫法是 if(str1==null||str1.equals("")){ //先判斷是不是對象,如果是,再判斷是不是空字元串
//...
}
打個比方:一個空玻璃杯,你不能說它裡面什麼都沒有,因為裡面有空氣,當然也可以把它弄成真空,null與" "的區別就象真空與空氣一樣。

熱點內容
nsftp速度 發布:2025-02-07 10:30:58 瀏覽:430
存儲過程ifor 發布:2025-02-07 10:25:28 瀏覽:432
命令行執行oracle腳本文件命令行 發布:2025-02-07 10:14:49 瀏覽:95
ibook安卓怎麼下 發布:2025-02-07 10:12:13 瀏覽:692
銀行卡沒有密碼怎麼辦啊 發布:2025-02-07 10:08:13 瀏覽:30
游戲庫源碼 發布:2025-02-07 09:49:15 瀏覽:53
享宇錢包上傳不了照片 發布:2025-02-07 09:48:32 瀏覽:632
模擬器怎麼開安卓版本 發布:2025-02-07 09:42:35 瀏覽:771
c程序設計語言源碼 發布:2025-02-07 09:22:41 瀏覽:624
資料庫域的概念 發布:2025-02-07 09:22:40 瀏覽:640