String a = "Java SCJP";
System.out.println(a.length()); // 取得字串長度, 印出 9
byte[] b = {74, 97, 118, 97, 20, 83, 67, 74, 80};
String c = new String(b);
System.out.println(c); // 印出 Java SCJP
String d = new String(b, 0, 4);
System.out.println(d); // 印出 Java
char[] e = {'J', 'a', 'v', 'a', ' ', 'S', 'C', 'J', 'P'};
String f = new String(e);
System.out.println(f); // 印出 Java SCJP
String g = new String(e, 5, 4);
System.out.println(g); // 印出 SCJP
String h = new String(a);
System.out.println(h); // 印出 Java SCJP
StringBuffer i = new StringBuffer("Java"); // 字串內容可以直接修改, 速度較String快 buffer緩衝區
System.out.println(i); // 印出 Java
StringBuilder sb = new StringBuilder("Java"); // 字串內容可以直接修改, 速度較String及StringBuffer快
System.out.println(sb); // 印出 Java
String j = new String(i);
System.out.println(j); // 印出 Java
String k = String.valueOf(10);
System.out.println(k); // 印出 10
System.out.println(a.charAt(5)); // 取出字串中單一字元, 印出 S
String l = a.concat(" exam");
System.out.println(l); // 印出 Java SCJP exam
System.out.println(a.length()); // 印出 9
System.out.println(a.endsWith("exam")); // 判斷字串a結尾是否為exam, 印出 false
System.out.println(a.equals(c)); // 比較字串內容是否相同分大小寫, 印出 true
System.out.println(a.equalsIgnoreCase("java scjp")); // 比較字串內容是否相同不分大小寫, 印出 true
System.out.println(a.indexOf("SCJP")); // 取得SCJP在字串a中出現得位置, 印出 5
System.out.println("SCJP Java SCJP".lastIndexOf("SCJP")); // 印出 10
String m = a.replace('J', 'j'); // 將字串a中所有的大寫J改為小寫j
System.out.println(a+", "+m); // 印出 Java SCJP, java SCjP
String n = a.substring(0, 5); // 取得子字串
System.out.println(a+", "+n); // 印出 Java SCJP, Java
String o = a.substring(5); // 取出5號及之後所有的字
System.out.println(a+", "+o); // 印出 Java SCJP, SCJP
String p = a.toLowerCase(); // 將字串a內容全部改為小寫
System.out.println(a+", "+p); // 印出 Java SCJP, java scjp
String q = a.toUpperCase(); // 將字串a內容全部改為大寫
System.out.println(a+", "+q); // 印出 Java SCJP, JAVA SCJP
1. What is the output ?
(6) Click the exhibit button:
1. public class test {
2. public static void StringReplace(String text){
3. text = text.replace('J' , 'i');
4. }
5.
6. public static void BufferReplace(StringBuffer text){
7. text = text.append("C");
8. }
9.
10. public static void main(String args[]){
11. String textString = new String("Java");
12. StringBuffer textBuffer = new StringBuffer("Java");
13. StringReplace(textString);
14. BufferReplace(textBuffer);
15. System.out.println(textString + textBuffer);
16. }
17.}
A. JavaJava
B. JavaJavaC
C. iavaiava
D. iavaiavaC
My Ans: D
答案: B, StringReplace(textString); 會new一個新的String"iava", 但沒有回傳給主程式,所以隨著這個method執行完畢,"iava"也就遺失了。而BufferReplace(textBuffer);可以成功的將"C"加在StringBuffer"Java"後面成為"JavaC"。因此,最後一行會印出"JavaJavaC"
Garbage Collection範例
String a = "SCJP";
String b = a;
a = "SCWCD";
b = null;
考題: When is the Float object created in line 3, eligible for garbage collection ?
Given:
1. public class X {
2. public Object m(){
3. Object o = new Float (3.14F);
4. Object [] oa = new Object [1]; //new Object[1] 指的是new 一個最高父類別Obeject的陣列,陣列長度一格
5. oa[0]= o;
6. o = null;
7. return oa[0];
8. }
9. }
object 物件
created 建立
line 行
eligible 有資格的, 合適的
garbage 垃圾
collection 收集
A. Just after line 5
B. Just after line 6
C. Just after line 7 (that is, as the method returns)
D. Never in this method
主程式:
X a =new X();
Object b = a.m();
留言列表