2013年3月21日 星期四

Spring Framework 基礎學習筆記(一)

Spring  是由 Rod Johnson 撰寫,它是個輕量級(Lightweight)容器(Container),實現 IoC(Inversion of Control)、AOP(Aspect-oriented programming)概念。使用Spring有以下優點:


1.鬆耦合 ( loosely-coupled )

物件導向語言的程式寫法中,讓物件間呈現一種鬆耦合的關係,有很多好處,例如:透過Spring提供的Ioc(控制反轉)功能,所有物件的關係都只需要在XML組態檔裡做設定,Spring會自動根據組態檔的設定將物件間的關係建立起來,開發人員就能很輕易的就做到鬆耦合的程式寫法。


2.整合多個Framework

Spring是個相當全面的應用程式框架,常見的Framework,Spring也都提供了整合的方式,例如Struts、Hibernate,經由Spring整合後,更加簡單易用。

2013年3月7日 星期四

Java資料型態(Data type)

資料型別是程式設計中最基礎的一部分,若觀念不清楚,寫出來程式就很容易與預期的結果不同,所以求職面試的時候常常會有這種基礎題型,來測試這方面的觀念是否清楚,下面做了一些整理和註記,以釐清一些觀念。


2013年3月5日 星期二

char[] ,String 互換


怎樣將char[] -> String
      String->char[]

http://bbs.csdn.net/topics/142931

2013年2月20日 星期三

Design pattern-Singleton


In software engineering, the singleton pattern is a design pattern that restricts the instantiation of a class to one object. This is useful when exactly one object is needed to coordinate actions across the system. The concept is sometimes generalized to systems that operate more efficiently when only one object exists, or that restrict the instantiation to a certain number of objects. 
Singleton 模式可以保證一個類別只有一個實例

2013年1月23日 星期三

Java 使用JDBC存取MySQL


Java 存取資料庫是很常見的一種應用,紀錄一下Java存取 MySQL範例說明 ,這裏使用Connector/J來連接MySQL,所以要先下載Connector/J(http://www.mysql.com/downloads/connector/j/),下載完成後解壓縮,可以得要一個mysql-connector-java-5.1.17-bin.jar就是MySQL的JDBC-Driver了, 接著在Eclipse建立一個Java Project,簡易步驟如下:

2013年1月20日 星期日

[Android]取得相機照片後儲存方法

在開發Android相機應用時,處理照片檔案是必經的過程,首先要面對的相片儲存的位置,依應用程式的需求,可將照片儲存至外部的SDCard裡,或是內部的記憶體(內存)中,這兩種儲存位置的做法不太相同,分別介紹兩種方法。

儲存至內部記憶體(內存):

以下程式碼是將照片以.JPG檔的形式儲存至內部記憶體中

PictureCallback camJpegCallback = new PictureCallback() {
  public void onPictureTaken(byte[] data, Camera camera) {
  // 用來接收壓縮成jpeg格式的影像資料
  
  FileOutputStream outStream = null;
  try {
   //儲存在內部記憶體
   Bitmap bm =BitmapFactory.decodeByteArray(data, 0, data.length);
   outStream = openFileOutput("photo.jpg", Context.MODE_PRIVATE);
   bm.compress(CompressFormat.JPEG, 80, outStream);
   outStream.flush();
   outStream.close();
   Toast.makeText(PKActivity.this, "存檔完成!", Toast.LENGTH_SHORT)
   .show();
   Intent intent=new Intent();
   intent.setClass(PKActivity.this, PK_ResultActivity.class);
   startActivity(intent);
   PKActivity.this.finish(); 
  
  
  } catch (IOException e) {
   Toast.makeText(PKActivity.this, "影像檔儲存錯誤!", Toast.LENGTH_SHORT)
   .show();
  }


程式說明:


Bitmap bm =BitmapFactory.decodeByteArray(data, 0, data.length);

將char[] 轉換成Bitmap 的形式。


FileOutputStream outStream = openFileOutput("FileName",MODE_WORLD_READABLE);


使用openFileOutput來建立FileOutputStream 。
FileName只要檔名即可,不用完整路徑。
Context.MODE_PRIVATE:代表該檔是私有資料,只能被APP本身存取。如果檔案已存在,會覆蓋原檔。 Context.MODE_APPEND:會檢查檔案是否存在,檔案存在會將內容新增檔案內;如檔案不存在就建立新檔。 Context.MODE_WORLD_READABLE:其它應用程式也可以讀取。如果要在APP中使用 intent.ACTION_SEND,要使用此模式。
Context.MODE_WORLD_WRITEABLE:其它應用程式也可以寫入此檔。 Context.MODE_PRIVATE:代表該檔是私有資料,只能被APP本身存取。如果檔案已存在,會覆蓋原檔。
Context.MODE_APPEND:會檢查檔案是否存在,檔案存在會將內容新增檔案內;如檔案不存在就建立新檔。 Context.MODE_WORLD_READABLE:其它應用程式也可以讀取。如果要在APP中使用 intent.ACTION_SEND,要使用此模式。
Context.MODE_WORLD_WRITEABLE:其它應用程式也可以寫入此檔。
Context.MODE_APPEND:會檢查檔案是否存在,檔案存在會將內容新增檔案內;如檔案不存在就建立新檔。 Context.MODE_WORLD_READABLE:其它應用程式也可以讀取。如果要在APP中使用 intent.ACTION_SEND,要使用此模式。
Context.MODE_WORLD_WRITEABLE:其它應用程式也可以寫入此檔。 Context.MODE_WORLD_READABLE:其它應用程式也可以讀取。如果要在APP中使用 intent.ACTION_SEND,要使用此模式。
Context.MODE_WORLD_WRITEABLE:其它應用程式也可以寫入此檔。 Context.MODE_WORLD_WRITEABLE:其它應用程式也可以寫入此檔。

bm.compress(CompressFormat.JPEG, 80, outStream);


將Bitnap以80%的壓縮存成JPG檔,用FileOutputStream 方式存入。


儲存至SD卡


PictureCallback camJpegCallback = new PictureCallback() {
  public void onPictureTaken(byte[] data, Camera camera) {
  // 用來接收壓縮成jpeg格式的影像資料
  FileOutputStream outStream = null;
  try {
   //儲存在外部SD
   outStream = new FileOutputStream("/sdcard/photo.jpg");
   outStream.write(data);
   outStream.close();
   Toast.makeText(PKActivity.this, "存檔完成!", Toast.LENGTH_SHORT)
   .show();
   Intent intent=new Intent();
   intent.setClass(PKActivity.this, PK_ResultActivity.class);
   startActivity(intent);
   PKActivity.this.finish(); 
  
  
  } catch (IOException e) {
   Toast.makeText(PKActivity.this, "影像檔儲存錯誤!", Toast.LENGTH_SHORT)
   .show();
  }

2013年1月17日 星期四

使用AXIS2建立WebService Client

 Axis2 是一個WebService的核心支援引擎。 AXIS2對舊有的AXIS重新設計及重寫,並提供兩種語言Java 及 C 的開發版本,這裡介紹使用Eclipse配合AXIS2建立WebService Client專案 。