String類(重點)
String類(重點):
一、String兩種實例化方式:
1、直接聲明并給其賦值
例: String temp="你好"; // 此方式只在堆空間中開辟了一個空間,不會產生多余的內容,且此方式會在字符串池中保存內容,如果之后再聲明字符串的時候發現內容一樣,則不會重新開辟空間,而是從內存池中直接取出數據繼續使用。
2、使用new關鍵字給其賦值
例:String temp2=new String("你好"); //此方式在堆空間中開辟了兩個空間
3、兩者的區別:
(1)、 使用直接賦值的方式可以減少堆內存開銷
二、String的比較方式
1、==方式,此方式是比較兩個字符串的堆空間指向(即地址)是否相等。
2、equals()方式,此方式是比較兩個字符串的值是否相同。
三、一個字符串實際上就是String的匿名對象
1、一個字符串是用“"”括起來的,那么一個字符串的常量實際上本身就屬于String類的匿名對象。(因為它可以點出String類的許多方法)。
四、字符串的內容一旦聲明則無法修改。
例:
public class Test{
public static void main(String[] args){
String str="Hello";
str+="world";
System.out.println(str);
}
}
以下是堆棧內存分析圖
棧內存 堆內存
"Hello"
"world"
str "Hello world"
總結:字符串變量的改變,改變的是內存空間地址的指向,其內容沒有任何改變。
五、字符串常用的操作方法(重點)
如:字符串的截取、字符串的查找、字符串的替換......等等!
見API文檔中
一、String兩種實例化方式:
1、直接聲明并給其賦值
例: String temp="你好"; // 此方式只在堆空間中開辟了一個空間,不會產生多余的內容,且此方式會在字符串池中保存內容,如果之后再聲明字符串的時候發現內容一樣,則不會重新開辟空間,而是從內存池中直接取出數據繼續使用。
2、使用new關鍵字給其賦值
例:String temp2=new String("你好"); //此方式在堆空間中開辟了兩個空間
3、兩者的區別:
(1)、 使用直接賦值的方式可以減少堆內存開銷
二、String的比較方式
1、==方式,此方式是比較兩個字符串的堆空間指向(即地址)是否相等。
2、equals()方式,此方式是比較兩個字符串的值是否相同。
三、一個字符串實際上就是String的匿名對象
1、一個字符串是用“"”括起來的,那么一個字符串的常量實際上本身就屬于String類的匿名對象。(因為它可以點出String類的許多方法)。
四、字符串的內容一旦聲明則無法修改。
例:
public class Test{
public static void main(String[] args){
String str="Hello";
str+="world";
System.out.println(str);
}
}
以下是堆棧內存分析圖
棧內存 堆內存
"Hello"
"world"
str "Hello world"
總結:字符串變量的改變,改變的是內存空間地址的指向,其內容沒有任何改變。
五、字符串常用的操作方法(重點)
如:字符串的截取、字符串的查找、字符串的替換......等等!
見API文檔中
posted on 2009-06-30 13:19 改變,成就夢想! 閱讀(133) 評論(0) 編輯 收藏 所屬分類: JAVA