2013年9月22日 星期日

String與基本型別之間的轉換


  1. 基本型別轉String

String.valueOf(boolean b) : 將 boolean 變數 b 轉換成字串
String.valueOf(char c) : 將 char 變數 c 轉換成字串
String.valueOf(char[] data) : 將 char 陣列 data 轉換成字串
String.valueOf(char[] data, int offset, int count) :
將 char 陣列 data 中 由 data[offset] 開始取 count 個元素 轉換成字串
String.valueOf(double d) : 將 double 變數 d 轉換成字串
String.valueOf(float f) : 將 float 變數 f 轉換成字串
String.valueOf(int i) : 將 int 變數 i 轉換成字串
String.valueOf(long l) : 將 long 變數 l 轉換成字串
String.valueOf(Object obj) : 將 obj 物件轉換成 字串, 等於 obj.toString()

用法就如:
int i = 10;
String str = String.valueOf(i);
這時候 str 的值"10"


  1. String轉基本型別
byte :
Byte.parseByte(String s) : 將 s 轉換成 byte
Byte.parseByte(String s, int radix) : 以 radix 為基底 將 s 轉換為 byte
比如說 Byte.parseByte("11", 16) 會得到 17

double :
Double.parseDouble(String s) : 將 s 轉換成 double
float :
Double.parseFloat(String s) : 將 s 轉換成 float
int :
Integer.parseInt(String s) : 將 s 轉換成 int
long :
Long.parseLong(String s) : 將 s 轉換成 long

用法如:
try
{ 
  String str = "1234"; int a = Integer.parseInt(str);
}
catch (NumberFormatException e)
{ 
  System.out.println(" parse int error!! " + e);
}



2013年8月15日 星期四

迴圈


  • switch...case...

1.default就是如果没有符合的case就执行它,default并不是必须的.
2.case后的语句可以不用大括号.
3.switch语句的判断条件可以接受int,byte,char,short,不能接受其他类型.
4.一旦case匹配,就会顺序执行后面的程序代码,而不管后面的case是否匹配,直到遇见break,利用这一特性可以让好几个case执行统一语句.



  • continue & break
continue: 直接跳到迴圈開頭繼續執行
break: 直接跳出迴圈

2013年8月8日 星期四

建立物件的觀念

public class MarkList{
    int num;
    public static void graceMarks(MarkList obj4){
        obj4.num += 10;
    }
    public static void main(String[] args){
        MarkList obj1 = new MarkList();
        MarkList obj2 = obj1;
        MarkList obj3 = null;
        graceMarks(obj2);
    }
}

上面的例子總共建立1個物件
1. obj1有new,所以有建立物件
2. obj2參考到obj1的記憶體位址,沒有建立物件
3. obj3為null,沒有建立物件
4. 傳入graceMarks的obj4就是obj2,而obj2就是obj1,所以obj4也沒有建立物件

2013年7月23日 星期二

Collection:SML

大概分三種: [記法:衣服的尺寸SML] 都是Interface

  1. Set
  2. Map
  3. List
最大尺寸Set 跟 最小尺寸List 都屬於Collection,一般尺寸屬於Map

  • Set<T>
不可重複
  • List<T>
可重複
  • Map<K, V> 
一個 key 最多只能對應一個 value


常用整理:

2013年7月22日 星期一

Array and For-loop

//宣告一個array
int[] integers = {6, 7, 8, 9};
//寫法1
for (int j = 0; j<integers.length; j++){
int i = integers[j];
System.out.println(i);/* 依次输出“0”、“1”、“2”、“3” */
}
//寫法2
for (int i : integers) {
System.out.println(i);/* 依次输出“6”、“7”、“8”、“9” */
}

2013年7月20日 星期六

泛型


  • BooleanFoo.java

public class BooleanFoo {
    private Boolean foo;
    public void setFoo(Boolean foo) {
        this.foo = foo;
    }
    public Boolean getFoo() {
        return foo;
    }
}

  • IntegerFoo.java

public class IntegerFoo {
    private Integer foo;
    public void setFoo(Integer foo) {
        this.foo = foo;
    }
    public Integer getFoo() {
        return foo;
    }
}

類別定義時邏輯完全一樣,只是當中宣告的成員型態不同,有點小聰明的程式設計人員會將第一個類的內容複製至另一個檔案中,然後用編輯器「取代」功能一次取 代所有的型態名稱(即將Boolean取代為Integer)。

OK!是有些小聰明,但還是不太聰明,如果類別中的邏輯要修改,您要修改兩個檔案,泛型(Generics)的需求就在此產生



  • 以ArrayList<E>为例:<>念着typeof

connect to db

順序:
  • new connection連DB
Connection conn = null;
  • new PerparedStatement將SQL語法組好
PreparedStatement pstmt = null;

  • new ResultSet接收SQL回傳的查詢結果

ResultSet rs = null;