1,、Java的基本數(shù)據(jù)類型都有哪些各占有幾個字節(jié)?
2,、String是基本數(shù)據(jù)類型嗎,? String是引用類型,底層使用char數(shù)組實現(xiàn)的,。 3,、short s1 = 1; s1 = s1 1;有錯嗎?short s1 = 1; s1 = 1有錯嗎,; 前者不正確,,后者正確,。對于short s1 = 1; s1 = s1 1,;由于1是int類型,,因此s1 1運(yùn)算結(jié)果也是int型,需要強(qiáng)制類型轉(zhuǎn)換才能復(fù)制給short型,。而short s1 = 1; s1 = 1;可以正確編譯,,因為s1 = 1;相當(dāng)于s1 = (short)(s1 1);其中有隱含的強(qiáng)制類型轉(zhuǎn)換。 4,、int 和Integer有什么區(qū)別,? Java是一個近乎純潔的面向?qū)ο缶幊陶Z言,但是為了編程的方便還是引入了基本數(shù)據(jù)類型,,為了能夠?qū)⑦@些基本數(shù)據(jù)類型當(dāng)成對象操作,,Java為每一個基本數(shù)據(jù)類型都引入了對象的包裝類型(Wrapper class),int的包裝類就是Integer,,從Java5開始引入了自動裝箱/拆箱機(jī)制,,使得而這可以相互轉(zhuǎn)換。 Java為每個原始類型提供了包裝類型: 原始類型:boolean,,char,,byte,short,,int,,long,float,,double 包裝類型:Boolean,,Character,Byte,,Short,,Integer,Long,,F(xiàn)loat,,Double 5、下面Integer類型的數(shù)值比較輸出的結(jié)果為,?
如果不明就里很容易認(rèn)為兩個輸出要么都是true要么都是false,。首先要注意的是f1、f2,、f3,、f4四個變量都是Integer對象引用,所以下面的==運(yùn)算符比較的不是值而是引用,。裝箱的本質(zhì)是什么呢?當(dāng)我們給一個Integer對象賦一個int值的時候,,會調(diào)用Integer類的靜態(tài)方法valueOf,,如果看看valueOf的源代碼就知道了什么。 源碼:
IntegerCache是Integer的內(nèi)部類,,其代碼如下所示:
簡單的說,,如果整型字面量的值在-128到127之間,那么不會new型的Integer對象,。而是直接引用常量池中的Integer對象,。 6、String類常用方法
7,、String(JDK1.0),、StringBuffer(JDK1.4)、StringBuilder(JDK1.5)的區(qū)別,? 1)可變不可變 String:字符串常量,,在修改時不會改變自身;若修改,,等于重新生成新的字符串對象,。 StringBuffer:在修改時會改變對象自身,每次操作都是對StringBuffer對象本身就行修改,,不是生成新的對象,;使用場景:對字符串經(jīng)常改變的情況下,主要方法有:append(),,insert()等,。 2)線程是否安全 String:對象定義后不可變,線程安全,。 StringBuffer:是線程安全的(對調(diào)用方法加入同步鎖),,執(zhí)行效率較慢,適用于多線程下操作字符串緩沖區(qū)大量數(shù)據(jù),。 StringBuilder:是線程不安全的,,適用于單線程下操作字符串緩沖區(qū)大量數(shù)據(jù)。 3)公共點(diǎn) StringBuilder與StringBuffer有公共父類AbstractStringBuilder(抽象類),。 StringBuilder,、StringBuffer 的方法都會調(diào)用 AbstractStringBuilder 中的公共方法,如 super.append(...),。只是 StringBuffer 會在方法上加 synchronized 關(guān)鍵字,,進(jìn)行同步。最后,,如果程序不是多線程的,,那么使用StringBuilder 效率高于 StringBuffer 8、數(shù)據(jù)類型之間的轉(zhuǎn)換? 1)字符串如何轉(zhuǎn)基本數(shù)據(jù)類型,? 調(diào)用基本數(shù)據(jù)類型對應(yīng)的包裝類中的方法parseXXX(String)或valueOf(String)即可返回相應(yīng)基本類型 ,。 2)基本數(shù)據(jù)類型如何轉(zhuǎn)字符串? 一種方法是將基本數(shù)據(jù)類型與空字符串(“”)連接( )即可獲得所對應(yīng)的字符串,;另一種時調(diào)用String類中的valueOf()方法返回相應(yīng)字符串,。 來源:https://www./content-1-554801.html |
|