Time of Update: 2018-12-05
解決Java讀取properties檔案的中文問題的新辦法(不使用native2ascii.exe及其他工具)原理:轉碼關鍵代碼:new String(temp.getBytes("ISO-8859-1"), "GBK")其實很簡單,就是簡單的轉碼,下面給出原始碼(兩個ReadProperties.java和LogSystem.properties)和使用方法:ReadProperties.javaimport java.util.Properties;import
Time of Update: 2018-12-05
在運算式中,對中間值的精確要求有時超過任何一個運算元的範圍。例如,考慮下面的運算式: byte a = 40; byte b = 50; byte c = 100; int d = a * b / c; 中間項結果a*b 很容易超過它的任何一個byte 型運算元的範圍。為處理這種問題,當分析運算式時,Java 自動提升各個byte 型或short型的運算元到int 型。這意味著子運算式a*b 使用整數而不是位元組型來執行。這樣,儘管變數a和b都被指定為byte 型,50*40 中間運算式的結果2
Time of Update: 2018-12-05
WebLogic運用DB的Java控制項訪問資料庫草木瓜 2006-6-8一、方法 WebLogic頁面與資料通訊時,一般採用Java控制項直接存取資料連線池,資料的直接操作都定義在Java控制項中,頁面流做為資料的邏輯處理單元,普通頁面做為顯示層。可以看出WebLogic這個方法是典型的三層結構,資料層(Java控制項),商務邏輯層(頁面流),顯示層(頁面)二、建立串連池,資料來源
Time of Update: 2018-12-05
DOM,即Document Object Model,中文名字叫文件物件模型。用來以獨立於平台和語言的方式訪問和修改一個文檔的內容和結構。在java項目中使用DOM時,不需要額外引入jar包,因為JDK中已經包含了org.w3c.dom。由於要在項目中,存在一些複雜的結構資料,這些資料之間的關係成樹狀形式,為了降低資料庫設計的複雜度,所以在關係資料表中嵌入XML欄位以儲存這些資料,而不是通過關聯表的形式(註:使用的是DB2
Time of Update: 2018-12-05
stack 和 heep 都是記憶體的一部分stack 空間小,速度比較快, 用來放對象的引用heep
Time of Update: 2018-12-05
Java開發人員做出的有關架構的最重要的決定之一便是如何使用Java異常模型。Java異常處理成為社區中討論最多的話題之一。一些人認為Java語言中的已檢查異常(Checked Exceptions)是一次失敗的嘗試。本文認為錯誤並不在於Java模型本身,而在於Java庫設計人員沒有認識到方法失敗的兩個基本原因。本文提倡思考異常情況的本質,並描述了有助於使用者設計的設計模式。最後,本文討論了異常處理在面向方面編程(Aspect Oriented
Time of Update: 2018-12-05
執行:for (Iterator it = o.getSons().iterator(); it.hasNext();) { r = (KnowledgeNode) it.next(); it.remove(); //如果換成o.getSons().remove(r);
Time of Update: 2018-12-05
本文是我的另外一篇文章如何才算掌握Java(J2SE篇)(後面簡稱標準篇)的姊妹篇,提出了標準,但是不告訴新手如何才能達到那個標準似乎說不過去。首先需要說的是達到這個標準是比較困難的,沒有三年的時間一般是不可能的,沒有實際的項目的經驗的熏陶也是不可能的,下文會說明為什麼。然後給出兩個寶典:一個就是TIJ(Thinking in Java),另外一個就是chm格式的JDK的API。
Time of Update: 2018-12-05
import java.io.*;import java.util.zip.*;class Zip {public static void main(String args[]) throws IOException {byte b[] = new byte[512];ZipOutputStream zout = new ZipOutputStream(System.out);for(int i = 0; i < args.length; i ++) {InputStream in =
Time of Update: 2018-12-05
gc即垃圾收集機制是指JVM用於釋放那些不再使用的對象所佔用的記憶體。Java語言並不要求JVM有gc,也沒有規定gc如何工作。不過常用的JVM都有gc,而且大多數gc都使用類似的演算法管理記憶體和執行收集操作。 在充分理解了垃圾收集演算法和執行過程後,才能有效最佳化它的效能。有些垃圾收集專用於特殊的應用程式。比如,即時應用程式主要是為了避免垃圾收集中斷,而大多數OLTP應用程式則注重整體效率。理解了應用程式的工作負載和JVM支援的垃圾收集演算法,便可以進行最佳化配置垃圾收集器。 垃圾收集的目的
Time of Update: 2018-12-05
從部署、展示、設計等方面,全面比較Java報表工具,如報表工具的領導者 href="http://www.runqian.com.cn/rqrpt/rqwebreport.htm" target=_blank>潤乾,傑表,Style Report,Jasper等,以及聲稱支援Java的Crystal Report,數巨等。Java報表工具,首先可以分成兩大類:純Java報表工具,和"支援"Java的報表工具."支援"Java的報表工具:我們所說的"支援"Java的報表工具.其實就是非Jav
Time of Update: 2018-12-05
在發行的Java1.4中在核心程式碼程式庫中增加了許多新的API(如Loging,Regex,NIO)等,在最新發行的JDK1.5和即將發布的JDK1.6中也新增了許多API,其中比較有重大意義的就是Generics(範型)。一.什麼是Generics?Generics可以稱之為參數類型(parameterized types),由編譯器來驗證從用戶端將一種類型傳送給某一對象的機制。如Java.util.ArrayList,編譯器可以用Generics來保證型別安全。在我們深入瞭解Generic
Time of Update: 2018-12-05
因為經常去大師Martin Fowler的個人blog去看,偶爾發現人家blog正在推薦這本著作。同時,本人在CB做了兩年分布式系統開發後,感覺該開始總結一些所學到、遇到的case了。所以就想,不妨在研讀這本書過程中,驗證一下我們系統是否是存在重大的設計問題。《Pattern Oriented Software Architecture Volume.4》總結了Distributed Computing
Time of Update: 2018-12-05
一.誰在做Garbage Collection? 一種流行的說法:在C++裡,是系統在做記憶體回收;而在Java裡,是Java自身在做。在C++裡,釋放記憶體是手動處理的,要用delete運算子來釋放分配的記憶體。這是流行的說法。確切地說,是應用認為不需要某實體時,就需用delete告訴系統,可以回收這塊空間了。這個要求,對編碼者來說,是件很麻煩、很難做到的事。隨便上哪個BBS,在C/C++版塊裡總是有一大堆關於記憶體流失的話題。Java採用一種不同的,很方便的方法:Garbage
Time of Update: 2018-12-05
第一,談談final, finally, finalize的區別。 ??第二,Anonymous Inner Class (匿名內部類) 是否可以extends(繼承)其它類,是否可以implements(實現)interface(介面)? ??第三,Static Nested Class 和 Inner Class的不同,說得越多越好(面試題有的很籠統)。 ??第四,&和&&的區別。 ??第五,HashMap和Hashtable的區別。 ??第六,Collection
Time of Update: 2018-12-05
翻譯 by SuperMMX 閱讀整個的 "為效能而設計" 系列: 第一部分: 介面事宜 第二部分: 減少對象建立 第三部分: 遠程介面 (March 23, 2001) 第三部分: 遠程介面 概述 許多 Java 的通常效能問題來源於設計過程早期的類設計想法中, 早在開發人員開始考慮效能問題之前. 在這個系列中, Brian Goetz 討論了一些通常的 Java 效能的冒險, 解釋了怎樣在設計時間避免它們. 在這篇文章中,
Time of Update: 2018-12-05
翻譯 by SuperMMX 閱讀整個的 "為效能而設計" 系列: 第一部分: 介面事宜 第二部分: 減少對象建立 第三部分: 遠程介面 (March 23, 2001) 第二部分: 減少對象建立 概要 許多通常的 Java 效能問題都起源於在設計過程早期中的類設計的思想, 早在許多開發人員開始考慮效能問題之前. 在這個系列中, Brian Goetz 討論了通常的 Java 效能上的冒險以及怎麼在設計時候避免它們. 在第二部分,
Time of Update: 2018-12-05
解析Java類和對象的初始化過程類的初始化和對象初始化是 JVM 管理的類型生命週期中非常重要的兩個環節,Google 了一遍網路,有關類裝載機制的文章倒是不少,然而類初始化和對象初始化的文章並不多,特別是從位元組碼和 JVM 層次來分析的文章更是鮮有所見。 本文主要對類和對象初始化全過程進行分析,通過一個實際問題引入,將原始碼轉換成 JVM 位元組碼後,對 JVM 執行過程的關鍵點進行全面解析,並在文中穿插入了相關 JVM 規範和 JVM 的部分內部理論知識,以理論與實際結合的方式介紹對象初
Time of Update: 2018-12-05
1.Duplicated Code 代碼重複幾乎是最常見的異味了。他也是Refactoring的主要目標之一。代碼重複往往來自於copy-and-paste的編程風格。與他相對應OAOO是一個好系統的重要標誌。2.Long method 它是傳統結構化的“遺毒”。一個方法應當具有自我獨立的意圖,不要把幾個意圖放在一起。3.Large Class 大類就是你把太多的責任交給了一個類。這裡的規則是One Class One Responsibility.4.Divergent Change
Time of Update: 2018-12-05
介紹作為一個已經工作了很多年的軟體開發人員和諮詢師,我看過大量形形色色的程式語言代碼。其中有文雅的也有醜陋的,但是不幸的是,它們中大多數代碼都是醜陋的。 我希望能夠說服你們,我的開發夥伴們,我們應該足夠的重視我們的代碼風格,尤其是那些在應用程式中提供使用者介面和其他可視化部分的代碼。在這兩部分系列的第一部分, 我會解釋為什麼我們應該關心我們的代碼外觀,然後闡述一些好的JAVA風格的一般要素。為什麼代碼很重要儘管JAVA是用來寫程式而不是散文, 但它仍然被用來表達思想和觀點的。而且,在調查中顯示,