close

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();

 

 

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 鈴木保齡球 的頭像
    鈴木保齡球

    Java程式學習手札

    鈴木保齡球 發表在 痞客邦 留言(0) 人氣()