Time of Update: 2018-12-03
在系統效能最佳化的時候迴圈和字串處理一直是非常值得注意的地方。從心態上我們一定不能把自己的眼界放在十次或者是百次迴圈的層次上,也不能把自己要處理的字串當做是有十個二十個字元。每次遇到迴圈都要假定這個迴圈是上萬次的,每次要處理的字串的時候一定要告訴自己這個字串將來有可能是很大的。不要等到資料量真的達到十萬、百萬的層級之後再採取處理,那樣的話成本的消耗就太大了。本文將介紹關於Java代碼中迴圈和字串的最佳化方法,希望對讀者有用。關於迴圈嵌套for迴圈中次數多的放在內側,次數少的放在外側。眾所周知fo
Time of Update: 2018-12-03
常見的Java設計模式有以下23種:建立型模式 1、Factory 方法(FactoryMethod): 定義一個用於建立對象的介面,讓子類決定將哪一個類執行個體化。Factory Method 使一個類的執行個體化延遲到其子類。 2、抽象原廠模式(Abstract Factory):提供一個建立一系列相關或相互依賴對象的介面,而無需指定它們具體的類。 3、建造模式(Builder): 將一個複雜物件的構建與它的表示分離,使同樣的構建過程可以建立不同的表示。
Time of Update: 2018-12-03
技術只有落實到工程當中才顯得那麼有血有肉,之前學J2SE的時候運算子這塊沒有多在意,前一段時間實現許可權管理模組的時候才發覺位元運算符內有乾坤。筆者在這裡進行簡單總結,希望對讀者有用。Java支援的位元運算符:&:按位與。|:按位或。~:按位非。^:按位異或。<<:左位移運算子。>>:右位移運算子。<<<:無符號右移運算子。這四個運算子比較常見,也比較簡單總結如下表所示:第一個運算子第二個運算子按位與按位或按位異或0000001011100111
Time of Update: 2018-12-03
Annotation簡介從JDK5.0開始,Java增加了對中繼資料(MetaData)的支援,也就是Annotation(註解,也有地方稱之為注釋),其實說白了就是代碼裡的特殊標記,這些標記可以在編譯、類載入、運行時被讀取,並執行相應的處理。通過使用Annotation,程式開發人員可以在不改變原有邏輯的情況下,在源檔案嵌入一些補充的資訊。程式碼分析工具、開發工具和部署工具可以通過這些補充資訊進行驗證或者進行部署。Annotation提供了一條為程式元素設定中繼資料的方法,從某些方面來看,An
Time of Update: 2018-12-03
重裝eclispe,重新設定tomcat,在eclispe中配置tomcat。配置一切順利,配置完畢檢驗。 建立java web程式,然後進行測試。 在eclispe中,建立java web 程式,結果如下: 請注意看程式上的紅點。怎麼會無緣無故中多出一個紅點來呢?現在只是建立一個程式而已,還沒有添加任何檔案或代碼呢,整體查詢一下,也沒有報錯啊。因為原來的web程式如下: 沒有紅點啊。這是怎麼回事。因為重裝了eclispe後,安裝了Hibernate
Time of Update: 2018-12-03
Java中的流,可以從不同的角度進行分類。按照資料流的方向不同可以分為:輸入資料流和輸出資料流。按照處理資料單位不同可以分為:位元組流和字元流。按照實現功能不同可以分為:節點流和處理流。 輸出資料流: 輸入資料流:因此輸入和輸出都是從程式的角度來說的。位元組流:一次讀入或讀出是8位二進位。字元流:一次讀入或讀出是16位二進位。位元組流和字元流的原理是相同的,只不過處理的單位不同而已。尾碼是Stream是位元組流,而尾碼是Reader,Writer是字元流。 節點流:直接與資料來源相連,讀入或讀出
Time of Update: 2018-12-03
java中把產生Class對象和執行個體對象弄混了,更何況產生Class對象和產生instance都有多種方式。所以只有弄清其中的原理,才可以深入理解。首先要產生Class對象,然後再產生Instance。那Class對象的產生方式有哪些呢,以及其中是如何秘密產生的呢?Class對象的產生方式如下:1.Class.forName("類名字串")
Time of Update: 2018-12-03
我們知道電腦進階語言執行方式可以分為:編譯型和解釋型兩種。 編譯型的語言:有專門的編譯器、針對特定平台(作業系統)將某種進階語言原始碼一次性翻譯成該平台執行的機器碼,並封裝成該平台所能識別的可執行性程式的格式,這個轉化格式就稱為編譯。編譯產生的可執行檔是可以脫離開發環境,在特定的平台上獨立運行。 但是有些程式編譯後,還有可能需要對編譯好的目標代碼進行連結。 現在C、C++都屬於編譯型語言,執行效率高。 優點:執行效率高 缺點:不可跨平台
Time of Update: 2018-12-03
Filter過濾器主要使用於前台向後台傳遞資料是的過濾操作。例如,Jsp,Servlet,靜態圖片或html,進行攔截,實現對存取權限的控制,過濾敏感詞,壓縮相應資訊的作用。下面是大量設定請求編碼(其他的工作代碼大同小異,不再一一列舉)Java1.public class EncodingFilter implements Filter { 2. 3. private String encoding = null; 4. 5. public void destroy() {
Time of Update: 2018-12-03
Ajax 不是一種新的技術,而是將幾種蓬勃發展的技術以新的強大方式組合而成。 Ajax的使用帶來的最大好處,就是非同步提交。,使用者感覺不到頁面的提交,當然也不等待頁面返回。這是使用了AJAX技術的頁面給使用者的第一感覺。同時,由於訪問資料的減少,使得網頁響應速度快,這也是使用者強烈體驗。 Ajax由四種技術組合而成:JAVAScript:是通用的指令碼語言,用來嵌入在某種應用之中。AJAX應用程式是用JAVASCRIPT編寫的。
Time of Update: 2018-12-03
本文給出Java語言版的計算大數階乘的程式,本文使用動態數組的儲存計算過程的中間結果和最終結果。每個short型數組元素表示4位10進位數。順便說一下,這是我的第一個Java程式。import java.util.Scanner;/** * * @author liangbch@263.net */public class Fac { public Fac() { } public static void Calc(int n) {
Time of Update: 2018-12-03
本人編著的《Java程式設計標準教程》已由人民郵電出版社出版發行了。封面(無法上傳圖片,只好找個連結): 購買連結: china-pub:http://www.china-pub.com/49806人郵官網:http://www.ptpress.com.cn/Book.aspx?id=18091 說明:本書是Sun公司SCJP認證考試的指定用書。全書共13章。第1章全面系統地介紹了Java語言的發展史、特性、Java開發環境的搭建、Java程式的編寫編譯和運行過程以及Java開發常用IDE工具的
Time of Update: 2018-12-03
Factory 方法(FactoryMethod):定義一個用於建立對象的介面,讓子類決定將哪一個類執行個體化。Factory Method 使一個類的執行個體化延遲到其子類。Factory 方法模式,這個方法有效地解決了簡單原廠模式擴充性差的問題,想要進行擴充,只需要新加類就行,不需要更改原有類,下面是一個例子:public interface Person{ } public class Student implements Person{ } public class
Time of Update: 2018-12-03
快速排序(QuickSort)1、思想快速排序是一個就地排序,分而治之,大規模遞迴的演算法。從本質上來說,它是歸併排序的就地版本。快速排序可以由下面四步組成。(1) 如果不多於1個資料,直接返回。(2) 一般選擇序列最左邊的值作為支點資料。(3) 將序列分成2部分,一部分都大於支點資料,另外一部分都小於支點資料。(4) 對兩邊利用遞迴排序數列。快速排序比大部分排序演算法都要快。儘管我們可以在某些特殊的情況下寫出比快速排序快的演算法,但是就通常情況而言,沒有比它更快的了。快速排序是遞迴的,對於記憶
Time of Update: 2018-12-03
/** *使用JAVA解決依次出局問題 --作者:郴州拓職任文敏 *------------------------------------------------------------------------------ *問題描述 * 設有N個人圍坐,編號為1..N, * 從1開始報數,報到M時,該人出局;剩下者再從1開始報數,報到M的人就出局 * 以此迴圈類推,求: * 最後出局的人的編號 * 依次顯示每個出局者編號 *解題思路 * 制定一個演算法,該演算法在一個數組中,每次從N1
Time of Update: 2018-12-03
錯誤提示:The project was not builtsince its build path is incomplete. Cannot find the class file forjava.lang.Object. Fix the build path then try building this project The type java.lang.Object cannot be resolved. It is indirectly referenced from
Time of Update: 2018-12-04
來到這裡實習的時候,就準備多讀幾本書,其中第一本就是《Java編程思想》,後續還會讀一些《代碼大全》、《演算法導論》之類的書籍。不過這一次通過閱讀《java編程思想》,我收穫了實在太多了,現在對java的認識也更加深刻了,每次搞一個問題的時候,都會細心的研究研究jdk的源碼,等問題研究透徹了就感覺特別爽,這個網站(http://www.songtao.me)也是我在實習期間整理的,裡面的很多部落格也是通過閱讀這本書總結的。我就簡單的拿兩個例子吧:Vector和ArrayList的源碼的分析:今天
Time of Update: 2018-12-04
public class PrefixTrie { // supports 7-bit chars. private static final int SIZE = 128; Node root = new Node(); public void put(String prefix, Object value) { Node current = root; //.... } public Object get(String key)
Time of Update: 2018-12-04
1.基本概念的理解 絕對路徑:絕對路徑就是你的首頁上的檔案或目錄在硬碟上真正的路徑,(URL和實體路徑)例如: C:/xyz/test.txt 代表了test.txt檔案的絕對路徑。http://www.sun.com/index.htm也代表了一個URL絕對路徑。 相對路徑:相對與某個基準目錄的路徑。包含Web的相對路徑(HTML中的相對目錄),例如:在Servlet中,"/"代表Web應用的跟目錄。和實體路徑的相對錶示。例如:"./"
Time of Update: 2018-12-04
JNI是JavaNative Interface的 縮寫。從Java 1.1開始,Java Native Interface(JNI)標準成為java平台的一部分,它允許Java代碼和其他語言寫的代碼進行互動。JNI一開始是為了本地已編譯語言,尤其是C和C++而設計的,但是它並不妨礙你使用其他語言,只要呼叫慣例受支援就可以了。 使用java與本地已編譯的代碼互動,通常會喪失平台可移植性。但是,有些情況下這樣做是可以接受的,甚至是必須的,比如,使用一些舊的庫,與硬體、作業系統進行互動,