摘要:創(chuàng)建字符串教程字符串長(zhǎng)度用于獲取有關(guān)對(duì)象的信息的方法稱為訪問(wèn)器方法。類在中被提出,它和之間的最大不同在于的方法不是線程安全的不能同步訪問(wèn)。然而在應(yīng)用程序要求線程安全的情況下,則必須使用類。
一般地,當(dāng)需要使用數(shù)字的時(shí)候,我們通常使用內(nèi)置數(shù)據(jù)類型,如:byte、int、long、double 等。
在實(shí)際開(kāi)發(fā)過(guò)程中,我們經(jīng)常會(huì)遇到需要使用對(duì)象,而不是內(nèi)置數(shù)據(jù)類型的情形。為了解決這個(gè)問(wèn)題,Java 語(yǔ)言為每一個(gè)內(nèi)置數(shù)據(jù)類型提供了對(duì)應(yīng)的包裝類。
所有的包裝類(Integer、Long、Byte、Double、Float、Short)都是抽象類 Number 的子類。
這種由編譯器特別支持的包裝稱為裝箱,所以當(dāng)內(nèi)置數(shù)據(jù)類型被當(dāng)作對(duì)象使用的時(shí)候,編譯器會(huì)把內(nèi)置類型裝箱為包裝類。相似的,編譯器也可以把一個(gè)對(duì)象拆箱為內(nèi)置類型。Number 類屬于 java.lang 包。
Math 類Java 的 Math 包含了用于執(zhí)行基本數(shù)學(xué)運(yùn)算的屬性和方法,如初等指數(shù)、對(duì)數(shù)、平方根和三角函數(shù)。
Math 的方法都被定義為 static 形式,通過(guò) Math 類可以在主函數(shù)中直接調(diào)用。
public class Test { public static void main (String []args) { System.out.println("90 度的正弦值:" + Math.sin(Math.PI/2)); System.out.println("0度的余弦值:" + Math.cos(0)); System.out.println("60度的正切值:" + Math.tan(Math.PI/3)); System.out.println("1的反正切值: " + Math.atan(1)); System.out.println("π/2的角度值:" + Math.toDegrees(Math.PI/2)); System.out.println(Math.PI); } }Character 類
Character 類用于對(duì)單個(gè)字符進(jìn)行操作。
Character 類在對(duì)象中包裝一個(gè)基本類型 char 的值。
char ch = "a"; // Unicode 字符表示形式 char uniChar = "u039A"; // 字符數(shù)組 char[] charArray ={ "a", "b", "c", "d", "e" };
然而,在實(shí)際開(kāi)發(fā)過(guò)程中,我們經(jīng)常會(huì)遇到需要使用對(duì)象,而不是內(nèi)置數(shù)據(jù)類型的情況。為了解決這個(gè)問(wèn)題,Java語(yǔ)言為內(nèi)置數(shù)據(jù)類型char提供了包裝類Character類。
Character類提供了一系列方法來(lái)操縱字符。你可以使用Character的構(gòu)造方法創(chuàng)建一個(gè)Character類對(duì)象,例如:
Character ch = new Character("a");
例如,將一個(gè)char類型的參數(shù)傳遞給需要一個(gè)Character類型參數(shù)的方法時(shí),那么編譯器會(huì)自動(dòng)地將char類型參數(shù)轉(zhuǎn)換為Character對(duì)象。 這種特征稱為裝箱,反過(guò)來(lái)稱為拆箱。
// 原始字符 "a" 裝箱到 Character 對(duì)象 ch 中 Character ch = "a"; // 原始字符 "x" 用 test 方法裝箱 // 返回拆箱的值到 "c" char c = test("x");String 類
字符串廣泛應(yīng)用 在Java 編程中,在 Java 中字符串屬于對(duì)象,Java 提供了 String 類來(lái)創(chuàng)建和操作字符串。
創(chuàng)建字符串
String greeting = "Hello教程";
字符串長(zhǎng)度
用于獲取有關(guān)對(duì)象的信息的方法稱為訪問(wèn)器方法。
String 類的一個(gè)訪問(wèn)器方法是 length() 方法,它返回字符串對(duì)象包含的字符數(shù)。
下面的代碼執(zhí)行后,len變量等于14:
public class StringDemo { public static void main(String args[]) { String site = "www.runoob.com"; int len = site.length(); System.out.println( "SF網(wǎng)址長(zhǎng)度 : " + len ); } }
連接字符串:
String 類提供了連接兩個(gè)字符串的方法:
string1.concat(string2);
更常用的是使用"+"操作符來(lái)連接字符串,如:
"Hello," + " runoob" + "!" 結(jié)果如下: "Hello, runoob!"
舉例:
public class StringDemo { public static void main(String args[]) { String string1 = "菜鳥(niǎo)教程網(wǎng)址:"; System.out.println("1、" + string1 + "www.runoob.com"); } }格式化字符串
我們知道輸出格式化數(shù)字可以使用 printf() 和 format() 方法。
String 類使用靜態(tài)方法 format() 返回一個(gè)String 對(duì)象而不是 PrintStream 對(duì)象。
String 類的靜態(tài)方法 format() 能用來(lái)創(chuàng)建可復(fù)用的格式化字符串,而不僅僅是用于一次打印輸出。
System.out.printf("浮點(diǎn)型變量的值為 " + "%f, 整型變量的值為 " + " %d, 字符串變量的值為 " + "is %s", floatVar, intVar, stringVar);StringBuffer,StringBuilder 類
當(dāng)對(duì)字符串進(jìn)行修改的時(shí)候,需要使用 StringBuffer 和 StringBuilder 類。
和 String 類不同的是,StringBuffer 和 StringBuilder 類的對(duì)象能夠被多次的修改,并且不產(chǎn)生新的未使用對(duì)象。
StringBuilder 類在 Java 5 中被提出,它和 StringBuffer 之間的最大不同在于 StringBuilder 的方法不是線程安全的(不能同步訪問(wèn))。
由于 StringBuilder 相較于 StringBuffer 有速度優(yōu)勢(shì),所以多數(shù)情況下建議使用 StringBuilder 類。然而在應(yīng)用程序要求線程安全的情況下,則必須使用 StringBuffer 類。
public class Test{ public static void main(String args[]){ StringBuffer sBuffer = new StringBuffer("教程官網(wǎng):"); sBuffer.append("www"); sBuffer.append(".runoob"); sBuffer.append(".com"); System.out.println(sBuffer); } }
結(jié)果打印:
教程官網(wǎng):www.runoob.com
小結(jié):
java 中 StringBuffer 和 String 是有一定的區(qū)別的,首先,String 是被 final 修飾的,他的長(zhǎng)度是不可變的,就算調(diào)用 String 的
concat 方法,那也是把字符串拼接起來(lái)并重新創(chuàng)建一個(gè)對(duì)象,把拼接后的 String 的值賦給新創(chuàng)建的對(duì)象,而 StringBuffer 的長(zhǎng)度是可變的,調(diào)用StringBuffer 的 append 方法,來(lái)改變 StringBuffer 的長(zhǎng)度,并且,相比較于 StringBuffer,String 一旦發(fā)生長(zhǎng)度變化,是非常耗費(fèi)內(nèi)存的!
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/70821.html
摘要:并沒(méi)有對(duì)方法進(jìn)行加同步鎖,所以是非線程安全的。相同情況下使用相比使用僅能獲得左右的性能提升,但卻要冒多線程不安全的風(fēng)險(xiǎn)。水池異常表示程序可以處理的異常,可以捕獲且可能恢復(fù)。 一、String, StringBuffer, StringBuilder 1、可變性 (1)String類型是使用一個(gè)final修飾的字符數(shù)組,因此它是不可變的。 private final char value...
摘要:這兩個(gè)操作符都是編譯器默認(rèn)引入了類,最后都調(diào)用方法返回對(duì)象,臨時(shí)對(duì)象被回收,因此效率極為低下 Java String類筆記 聲明 文章均為本人技術(shù)筆記,轉(zhuǎn)載請(qǐng)注明出處https://segmentfault.com/u/yzwall String的不可變性 String的不可變性 // String declaration public final class String ...
摘要:拆箱將包裝類型轉(zhuǎn)換為基本類型的過(guò)程。否則會(huì)拋出異常。默認(rèn)采用單鏈表解決沖突,如果鏈表長(zhǎng)度超過(guò),將單鏈表轉(zhuǎn)換為紅黑樹(shù)。內(nèi)部使用紅黑樹(shù)實(shí)現(xiàn),存儲(chǔ)映射。紅黑樹(shù)減弱了對(duì)平衡的要求,降低了保持樹(shù)平衡需要的開(kāi)銷,在實(shí)際應(yīng)用中,統(tǒng)計(jì)性能超過(guò)平衡二叉樹(shù)。 引言 showImg(https://segmentfault.com/img/bVbv7Mr?w=242&h=410); 在學(xué)習(xí)《Java編程的邏...
摘要:的構(gòu)造器經(jīng)過(guò)重載可以接受多種輸出目的地,不過(guò)最常用的還是和。組號(hào)為表示整個(gè)表達(dá)式,組號(hào)表示被第一對(duì)括號(hào)括起的組,依此類推。有多個(gè)重載的構(gòu)造器,可以接受和對(duì)象。 點(diǎn)擊進(jìn)入我的博客 字符串操作是計(jì)算機(jī)程序設(shè)計(jì)中最常見(jiàn)的行為 13.1 不可變String String底層是由char[]實(shí)現(xiàn)的,是不可變的。看起來(lái)會(huì)改變String的方法,實(shí)際上都是創(chuàng)建了一個(gè)新的String對(duì)象,任何指向它...
摘要:在中,字符串被作為類型的對(duì)象處理。所以我們看到上面的程序運(yùn)行結(jié)果中,每個(gè)漢字對(duì)應(yīng)兩個(gè)字節(jié)值,如學(xué)對(duì)應(yīng),而英文字母對(duì)應(yīng)。 字符串 在程序開(kāi)發(fā)中字符串無(wú)處不在,如用戶登陸時(shí)輸入的用戶名、密碼等使用的就是字符串。 在 Java 中,字符串被作為 String 類型的對(duì)象處理。 String 類位于 java.lang 包中。默認(rèn)情況下,該包被自動(dòng)導(dǎo)入所有的程序。 String s1 = st...
閱讀 2626·2021-11-18 10:02
閱讀 2285·2021-09-30 09:47
閱讀 1784·2021-09-27 14:01
閱讀 3114·2021-08-16 11:00
閱讀 3168·2019-08-30 11:06
閱讀 2399·2019-08-29 17:29
閱讀 1539·2019-08-29 13:19
閱讀 451·2019-08-26 13:54