Time of Update: 2018-12-03
整理了一些影響效能的代碼和最佳化方法,以後希望能陸續補充和最佳化 1. 如何使用Exception Exception降低效能。一個異常拋出首先需要建立一個新的對象。Throwable介面中的構造器調用名為fillInStackTrace()的本地方法。這個方法負責巡檢棧的整個架構來收集跟蹤資訊。這樣無論何時有異常拋出,它要求虛擬機器裝載調用棧,因為一個新的對象在中部被建立。 異常應當僅用於有錯誤發生時,而不要控制流程。 2.
Time of Update: 2018-12-03
本程式用eclipse編輯在J2SDK6.0+WinPcap 3.1+Jpcap 0.5下編譯運行/******************** JpcapTip.java*/package m;import jpcap.PacketReceiver;import jpcap.JpcapCaptor;import jpcap.packet.*;import jpcap.NetworkInterface;import jpcap.NetworkInterfaceAddress;//import
Time of Update: 2018-12-03
Java iText 動態 產生 PDF文檔表格中文問題iText是一個開發原始碼的項目,你可以使用iText方便的實現PDF的輸出。 一、iText的下載: 你可以在 http://www.lowagie.com/iText/ 查看關於iText的相關資訊,包括原始碼,文檔.. 1.itext-src-1.4.zip(原始碼) http://jaist.dl.sourceforge.net/sourceforge/itext/itext-src-1.4.zip 2
Time of Update: 2018-12-03
由於項目需要,我們要實現Java環境下面用RSA公開金鑰對資訊加密、然後在.Net環境下面用RSA私密金鑰解密的這個功能;由於以前沒有深入接觸過.Net,所以遇到這個問題的時候還是心裡比較沒底,但是我覺得這個問題肯定能夠解決的,因為RSA的加密解密演算法已經太成熟了,各語言應該都會提供標準支援才對;但經過測試之後發現:原來跨平台間的互動還是存在很多障礙的,各平台對標準的支援度相差太多;直接體現就是本平台內加密之後解密沒有問題,但是一方加密,另外一方解密就不行!!由於經過加密的結果都是byte數組
Time of Update: 2018-12-03
前段時間系統升級時遭遇了OOM,具體解決過程見 遭遇OutOfMemoryError;為了鞏固對於java啟動各項參數的認識,決定將所有參數列舉出來,並一一解釋,以便後查;java啟動參數共分為三類;其一是標準參數(-),所有的JVM實現都必須實現這些參數的功能,而且向後相容;其二是非標準參數(-X),預設jvm實現這些參數的功能,但是並不保證所有jvm實現都滿足,且不保證向後相容;其三是非Stable參數(-XX),此類參數各個jvm實現會有所不同,將來可能會隨時取消,需要謹慎使用;本文主要描
Time of Update: 2018-12-03
suspend() 和 resume() 方法:兩個方法配套使用,suspend()使得線程進入阻塞狀態,並且不會自動回復,必須其對應的resume() 被調用,才能使得線程重新進入可執行狀態。典型地,suspend() 和 resume() 被用在等待另一個線程產生的結果的情形:測試發現結果還沒有產生後,讓線程阻塞,另一個線程產生了結果後,調用 resume() 使其恢複。但suspend()方法很容易引起死結問題,已經不推薦使用了。 wait() 和 notify() 方法:兩
Time of Update: 2018-12-03
Time of Update: 2018-12-03
由一個問題來引入參數傳遞的問題public static void main(String[] args) { int x=1; int[] y =new int[10]; m(x,y); System.out.println("x is "+ x); System.out.println("y[0] is "+ y[0]);}public static void m(int number , int[] numbers) {number=1001;numbers[
Time of Update: 2018-12-03
hsqldb如何好我就不用多少了,反正在測試中使用簡直非常舒服,小巧輕便。簡單介紹一種使用方法:1.下載hsqldb.jar包,放在檔案夾d:/hsqldb下 2.在ms-dos環境下,進入 cd d:/hsqldb檔案夾,然後使用命令列輸入java -cp hsqldb.jar org.hsqldb.Server -database.0 mydb
Time of Update: 2018-12-03
在前面《一篇文章》中提到了 Java和.Net環境下RSA加解密不能互連的情況,最後通過重寫.Net下面RSA演算法來解決了問題;本文將就這個問題再深入一點,看是否能有其他方式可以解決;首先來看下Java對Security領域的支援情況Jdk提供了非常強大的API集合,以及對常用演算法、協議的通用實現;主要包括四個方面:1、加解密,該部分對常用演算法及其加密標準提供了支援,體現為JCA【Java Cryptographic Architecture】和JCE【Java
Time of Update: 2018-12-03
相關讀書筆記列表NO.7
Time of Update: 2018-12-03
在web應用互動過程中,有很多情境需要保證通訊資料的安全;在前面也有好多篇文章介紹了在Web
Time of Update: 2018-12-03
相關讀書筆記列表NO.23 檢查參數的有效性非公有的方法我們應該用斷言的方法來檢查它的參數,而不是使用通常大家所熟悉的檢查語句來檢測。如果我們使用的開發平台是JDK1.4或者更進階的平台,我們可以使用assert結構;否則我們應該使用一種臨時的斷言機制。有些參數在使用過程中是先儲存起來,然後在使用的時候再進行調用,就必須做好檢查工作,否則程式可能會拋出一些異常讓你摸不著頭腦(如常見的null
Time of Update: 2018-12-03
相關讀書筆記列表NO.15
Time of Update: 2018-12-03
相關讀書筆記列表前言: 清晰性和簡介性是最為重要的 一個模組的使用者永遠也不應該被模組的行為所迷惑(那樣就不清晰了),模組要儘可能的小,但又不能太小【術語模組(module):是指任何可重用的軟體組件,從單個方法到包含多個包的複雜系統都可以是一個模組】。代碼應該被重用,而不是拷貝,模組之間的相依性應該儘可能降低到最小,錯誤應該儘早被檢測出來,理想的情況下是在編譯的時刻。NO.1考慮用靜態Factory 方法代替建構函式 靜態Factory
Time of Update: 2018-12-03
相關讀書筆記列表NO.4 避免建立重複的對象 如果一個對象是非可變的,那麼他中上可以被重用的,如://不推薦,"test"本來就是一個String執行個體,如果此方法在一個迴圈中或者被頻繁的調用,將會嚴重影響效能String s = new String("test");//推薦方式String s = "test";
Time of Update: 2018-12-03
相關讀書筆記列表 NO.12
Time of Update: 2018-12-03
一、final 根據程式上下文環境,Java關鍵字final有“這是無法改變的”或者“終態的”含義,它可以修飾非抽象類別、非抽象類別成員方法和變數。你可能出於兩種理解而需要阻止改變:設計或效率。 final類不能被繼承,沒有子類,final類中的方法預設是final的。 final方法不能被子類的方法覆蓋,但可以被繼承。 final成員變數表示常量,只能被賦值一次,賦值後值不再改變。
Time of Update: 2018-12-03
相關讀書筆記列表NO.13 支援非可變性為了使一個類成為非可變類,要遵循下面五條規則:①不要提供任何會修改對像的方法;②保證沒有可被子類改寫的方法;③使所有的域都是final的;④使所有的域都成為私人的;⑤保證對於任何可變組件的互斥訪問。(如果一個類指向可變對象的域,則必須確保該類的客
Time of Update: 2018-12-03
相關讀書筆記列表 NO.18 優先考慮靜態成員類嵌套類只為它的外圍類提供服務。嵌套類分為四種:靜態成員類、非靜態成員類、匿名類和局部類(後面三種稱為內部類)如果一個嵌套類的執行個體可以在它外類類的執行個體之外獨立存在,則這個嵌套類應該設定成靜態成員類(即:如果你聲明的成員類不要訪問外圍執行個體,那麼應該把static修飾符放到成員類的聲明中)。匿名類的用法:①建立一個函數對象;②建立過程對象;③在靜態Factory 方法的內部使用;④在複雜的型別安全枚舉類型(它要求為每個執行個體提供單獨的子類)