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