導航:首頁 > 編程語言 > java變數string

java變數string

發布時間:2023-02-23 18:28:02

A. java代碼中的變數類型為什麼必須是String類型 為什麼不能改成其他類型

第一,String是一個類,format是這個類下面的一個靜態方法。char不是類是基本類型,基內本類型沒有方法容;
第二,字元串就是String類型,char代表一個字元而不是一串字元。
學語言,就要遵守這門語言的語法規則,不能自己隨便創造。

B. java String類型變數比較問題!!懂得進來下!

這是java的一種優化
創建String類型的變數有兩種方法
String
st
=
"相等"
String
st
=
new
String("相等");
第一種方式,會把"相等"這個字元串放在字元緩沖區中,如果有出現一個String
sr
=
"相等",就直接把緩沖區中的地址賦給sr,就會出現
st

sr
指向的內存地址相同的。
用第二種方式,就會各自開辟一個內存地址,不會出現上面的問題。

C. java中string型變數判斷是否為空哪個正確

首先就要確保他不是null,然後再判斷他的長度。

String str = xxx;

if(str != null && str.length() != 0) { }

這種做法是安全的,首先他會判斷str是否為空,如果為空那麼if就直接退出了,就不會再判斷後面的str.length() != 0了,這是JAVA的&&特性,也許其他語言也是這樣。

(3)java變數string擴展閱讀:

String字元串判定是否為空方法總結

判斷一個字元串str不為空的方法有:

1. str!=null;(前提條件)

2. 「」.equals(str);

3. str.length()!=0;

注意:length是屬性,一般集合類對象擁有的屬性,取得集合的大小。

例如:數組.length就是取得數組的長度。

length()是方法,一般字元串類對象有該方法,也是取得字元串長度。

例如:字元串.length();

說明:

1. null表示這個字元串不指向任何的東西,那麼沒有是否為空的問題,因為引用的實例對象都沒有。這時候如果你調用它的方法,那麼就會出現空指針異常。

2.」「表示它指向一個長度為0的字元串,這時候調用它的方法是安全的。

3. null不是對象,」「是對象,所以null沒有分配空間,」「分配了空間,例如:

String str1 = null; str引用為空

String str2 = 「」; str應用一個空串

str1還不是一個實例化的對象,兒str2已經實例化。

對象用equals比較,null用等號比較。

如果str1=null;下面的寫法錯誤:

if(str1.equals(「」)||str1==null){ }

正確的寫法是 if( ( str1==null ) || str1.equals(「」)){

//先判斷是不是對象,如果是,再判斷是不是空字元串;而且順序不能亂 }

D. java中方法對於String類型全部變數的操作

函數中在查找變數時,先查找的是局部變數,由於change函數中str變數和類變數相同,所以,str="com"賦值是,系統認為是對string str中的str賦值,而不是類屬性中的str,而str1和str2就不會產生這種誤會,在str="com"前面加一個限定this.str="com"即可消除這種歧義。

E. java中string後面如何加其他string變數

java中string類型的變數的值是無法改變的,如果想要在字元串後面加其他字元串,需要定義StringBuffer或者StringBuilder變數,StringBuffer和StringBuilder變數與String的功能基本一致,只不過值可以改變,它們是java後面版本升級加入用來完善String的

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

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

G. 在Java中String變數的最大長度是多少

u2是無符號的16位整數,因此理論上允許的string literal的最大長度是2^16-1=65535。然而實際測試表明,允許的最大長度僅為65534,超過就編譯錯誤了,有興趣可以寫段代碼試試,估計是length還不能為0。

H. JAVA中String類型變數的比較

比較內容用equals這種抄說法其實襲不完全正確的,因為String重寫了Object的equals方法,重寫的這個方法就是比較字元串的內容。
如果你用自己定義的對象的equals方法,則比較的是對象的地址是否相同,這是Object的默認比較方式。
所以你只要記住,對於字元串來說,都要用equals來比較,因為我們不可能會去比較一個String的地址是否相同,沒有任何意義。

I. Java String變數問題

第一個其實你是建立個一個object,object之間相比較是不能用==的,應該用equals,你可以把a==b換成a.equals(b)那麼列印出來的結果就是b srting equals a string

而第二個你建立的其實就是一個變數,相同類型的變數之間是可以用==來判斷布爾值的

下面回答你的問題
1你的理解是stack里有指針變數,java是沒有指針的。

2獲得string的hashcode,可以看一下java的api, class string里有個method叫hashCode()
public int hashCode()

所以直接System.out.println(a.hashCode());
就可以顯示出來

你可以看看這一篇文章,作者講解的很詳細
http://www.cnblogs.com/fzzl/archive/2009/04/01/1427563.html

J. Java中String的變數為什麼不是String對象

比較懶,即網上復制一段給你吧,這個比我自己將要詳細很多。
字元串類(java.lang.String)是Java中使用最多的類,也是最為特殊的一個類,很多時候,我們對它既熟悉又陌生。一、從根本上認識java.lang.String類和String池首先,我建議先看看String類的源碼實現,這是從本質上認識String類的根本出發點。從中可以看到:1、String類是final的,不可被繼承。public final class String。2、String類是的本質是字元數組char[], 並且其值不可改變。PRivate final char value[];然後打開String類的API文檔,可以發現:3、String類對象有個特殊的創建的方式,就是直接指定比如String x = "abc","abc"就表示一個字元串對象。而x是"abc"對象的地址,也叫做"abc"對象的引用。4、String對象可以通過「+」串聯。串聯後會生成新的字元串。也可以通過concat()來串聯,這個後面會講述。6、Java運行時會維護一個String Pool(String池),JavaDoc翻譯很模糊「字元串緩沖區」。String池用來存放運行時中產生的各種字元串,並且池中的字元串的內容不重復。而一般對象不存在這個緩沖池,並且創建的對象僅僅存在於方法的堆棧區。5、創建字元串的方式很多,歸納起來有三類:其一,使用new關鍵字創建字元串,比如String s1 = new String("abc");其二,直接指定。比如String s2 = "abc";其三,使用串聯生成新的字元串。比如String s3 = "ab" + "c"; 二、String對象的創建String對象的創建也很講究,關鍵是要明白其原理。原理1:當使用任何方式來創建一個字元串對象s時,Java運行時(運行中JVM)會拿著這個X在String池中找是否存在內容相同的字元串對象,如果不存在,則在池中創建一個字元串s,否則,不在池中添加。原理2:Java中,只要使用new關鍵字來創建對象,則一定會(在堆區或棧區)創建一個新的對象。原理3:使用直接指定或者使用純字元串串聯來創建String對象,則僅僅會檢查維護String池中的字元串,池中沒有就在池中創建一個,有則罷了!但絕不會在堆棧區再去創建該String對象。原理4:使用包含變數的表達式來創建String對象,則不僅會檢查維護String池,而且還會在堆棧區創建一個String對象。另外,String的intern()方法是一個本地方法,定義為public native String intern(); intern()方法的價值在於讓開發者能將注意力集中到String池上。當調用 intern 方法時,如果池已經包含一個等於此 String 對象的字元串(該對象由 equals(Object) 方法確定),則返回池中的字元串。否則,將此 String 對象添加到池中,並且返回此 String 對象的引用。三、不可變類不可改變的字元串具有一個很大的優點:編譯器可以把字元串設置為共享。 不可變類String有一個重要的優點-它們不會被共享引用。是這樣的,JAVA為了提高效率,所以對於String類型進行了特別的處理---為string類型提供了串池 定義一個string類型的變數有兩種方式: string name= "tom "; string name =new string( "tom ") 使用第一種方式的時候,就使用了串池, 使用第二中方式的時候,就是一種普通的聲明對象的方式 如果你使用了第一種方式,那麼當你在聲明一個內容也是 "tom "的string時,它將使用串池裡原來的那個內存,而不會重新分配內存,也就是說,string saname= "tom ",將會指向同一塊內存 另外關於string類型是不可改變的問題: string類型是不可改變的,也就是說,當你想改變一個string對象的時候,比如name= "madding " 那麼虛擬機不會改變原來的對象,而是生成一個新的string對象,然後讓name去指向它,如果原來的那個 "tom "沒有任何對象去引用它,虛擬機的垃圾回收機制將接收它。 據說這樣可以提高效率!!!

最後總結下,String是一個很特殊的類,它有一個字元串池。

閱讀全文

與java變數string相關的資料

熱點內容
怎麼快速增加qq群人數 瀏覽:919
錘子視頻播放器文件不存在 瀏覽:707
蘋果手機怎麼清理app緩存 瀏覽:682
花園戰爭2豪華升級包 瀏覽:517
電腦無法向u盤傳輸文件 瀏覽:823
bpn配置文件 瀏覽:932
501完美越獄工具 瀏覽:119
中間夾菜單裡面不能顯示壓縮文件 瀏覽:952
如何指導小學生參加編程比賽 瀏覽:275
物業的招標文件有哪些 瀏覽:452
保存游戲文件名非法或只讀 瀏覽:258
js怎麼做圖片時鍾 瀏覽:451
華為應用裡面有了app說明什麼 瀏覽:801
資料庫中xy是什麼意思 瀏覽:893
u盤打不開提示找不到應用程序 瀏覽:609
網站功能介紹怎麼寫 瀏覽:954
word在試圖打開文件時錯誤 瀏覽:108
主板無vga插槽怎麼連接編程器 瀏覽:521
錄視頻文件在哪裡刪除 瀏覽:881
word2013如何插入文件 瀏覽:233

友情鏈接