顯示具有 Java 標籤的文章。 顯示所有文章
顯示具有 Java 標籤的文章。 顯示所有文章

2011/05/21

善用 Java Set 相關 class

  昨天整個下午都在處理前人留下的系統問題,查到最後發現當時寫程式的人偷懶,
認定某個欄位資料一定是固定長度,但線上問題需要即時修改來解決.再加上要一同
修正相同帳號要能加總金額且只要產出一筆報表資料的問題.問題雖然修正,但當下
造成作業部門無法即時匯款是一個IT的污點.這件事原因除了懶之外,另一個原因
就是線上查問題後改程式花費太多時間,回家想通了之後找到另一個更快的方法,那
就是善用別人已發明的輪子,不要重頭寫.以下短短的程式片段就可以很快的將一堆
帳號排除重覆資料,再利用這些排序的帳號來出報表.


7 public class ClassContents {
8
9 public static void SetTest()
10 {
11 String names[] = { "Mercury", "Venus", "Earth", "Apple",
12 "Mars", "Jupiter", "Saturn", "Uranus", "Mars",
13 "Neptune", "Pluto", "Apple", "Banana", "Cat", "Dog", "Dog"
14
15 };
16
17 // Collection set = new HashSet();
18 Collection set = new TreeSet();
19
20 for (int j = 0; j names.length; j++)
21 set.add(names[j]);
22
23 System.out.println("Set contains : ==================== ");
24 Iterator it = set.iterator();
25 while (it.hasNext())
26 System.out.println(it.next());
27
28
29 }
30



2010/11/18

64位元OS 與 Java HotSpot Server 模式

  該是使用64位元作業系統的時候了,別以為桌面環境用不到.以自己及太太的電腦為例:我的桌機使用 Linux 64 位元作業系統,自行下載 SUN JDK 安裝.安裝後執行 java -version 確認其版本資訊如下:

krogh@krogh-desktop:~$ java -version
java version "1.6.0_21"
Java(TM) SE Runtime Environment (build 1.6.0_21-b06)
Java HotSpot(TM) 64-Bit Server VM (build 17.0-b16, mixed mode)

  在太太的 iMac Snow Leopard 10.6.4 OS X 上預設也是安裝 64 bit JDK 執行 java -version 看到的資訊也是 HotSpot 64-Bit Server VM.

  至於 64 Server VM 有什麼優點就暫時不討論,但如果你在公司的 Windows XP 32 位元作業系中安裝 JDK ,卻想測試一下 Server VM mode 那可不行.
  因為最近工作上被要求要使用 Tomcat 及 64位元作業系統,所以想要好好發揮一下 OS 及 Java VM 的特色.開始了解一些參數設定,要好好給它優化一下.不要平白浪費了軟硬體的效能.

2010/10/19

no current row in the resultset 問題原因

  同事在使用 Eclipse 除錯時遇到 no current row in the resultset 錯誤訊息.它的程式片斷如下:

while (rs1.next())
{
String col1 = rs1.getString("col1");
}

明明有超過3筆資料在 ResultSet 中,但不知為何在取到第3筆就會出現 SQLException :
no current row in the resultset

建議他不要在 while 中下中斷點,直接執行看看.結果就正常了.因為在 while loop 中出現 resultset 被 deallocate .



2010/07/14

Java 建立 Oracle connection 問題

  DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
conn = DriverManager.getConnection("jdbc:oracle:thin:@100.40.16.14:1521:instanceName", "id", "pwd");


使用 以上Java程式片段 連結 Oracle 資料庫,在建立 Connection 時出現 Exception :
Connection refused(DESCRIPTION=(TMP=)(VSNNUM=153094144)(ERR=12505)(ERROR_STACK=(ERROR=(CODE=12505)(EMFI=4))))

  這錯誤訊息實在令人摸不著頭緒,原來只是 DB instance 名稱錯誤,改對就 OK 了 !





2008/05/24

Ubuntu 8.04 的JDK版本

在Ubuntu 8.04 64位元版本中有許多JDK 可以選, 如 free-java-sdk , ia32-sun-java5-bin, icedtea-java , OpenJDK, sun-java6-jdk 等等. 但如果要使用 Eclipse 3.2 則建議選用sun-java6-jdk.之前安裝 OpenJDK會讓 Eclipse 找不到. 因為它要使用 /usr/share/java 目錄上安裝的 jdk. NetBean可以自動找到 OpenJDK. 但 Eclipse 卻一定要那個路徑上安裝的才行, 最好只好再將 sun-java6-jdk 裝上了.
  OpenJDK 正式在Ubuntu 8.04及 Fedora 9 被收錄.有需要的人可以試試看.

2007/11/16

Ubuntu 7.10 上的java 中文測試

  最近一直在思考是要使用Perl, Python 或是Java 開發一些自己用的工具程式.想來想去最大的問題在於那一個才能在Ubuntu 7.10中正確處理中文.正確處理中文有以下三種定義:
  • 可以正常輸入中英文無誤
  • 可以正常顯示中英文
  • 可以使用Ubuntu 上所安裝的任何一個中文字型
  • 可以列印中文
  工作上最常使用 shell script, Java 偶爾會用一下 Perl. 但在最偷懶的考量下選了Java.因此把 JDK 6裝了起來.第一個考量還是Sun JDK. 在Ubuntu 上有提供 1.5, 1.6 當然就裝 1.6了.測試中文最簡單的方式就是將demo目錄中的程式拿出來執行,確認是否有中文問題.字型選用測試是用Font2DTest.jar ,很高興的它完全符合自己的需求.因為印表機沒有在開機時就啟動,所以列印仍是待確認的項目.以下附上一張字型測試圖,它可以選用所有已安裝字型並使用Antialiasing(平滑化).