Time of Update: 2018-12-03
抽象原廠模式(Abstract Factory):提供一個建立一系列相關或相互依賴對象的介面,而無需指定它們具體的類。public interface Person{ } public class Student implements Person{ } public class Teacher implements Person{ } abstract class PersonFactory{ abstract Person producePerson(
Time of Update: 2018-12-03
單例模式限制了使用這個模式的類只能產生一個對象。有一些對象其實我們完全只需要一個即可,如:線程池(threadpool)、緩衝(cache)、註冊表(registry)的對象、裝置的驅動程式的對象等等。事實上,這些類的對象只能有一個執行個體,如果製造出多個執行個體,就會導致許多問題的產生,例如:程式的行為異常、資源的過量使用、產生不一致的結果等等。Java Singleton模式就為我們提供了這樣實現的可能。是用Singleton的好處還在於可以節省記憶體,因為它限制了執行個體的個數,
Time of Update: 2018-12-03
Builder模式,將產品的內部表象和產品的產生過程分割開來,從而使一個建造過程產生具有不同的內部表象的產品對象。建造模式使得產品內部表象可以獨立的變化,客戶不必知道產品內部組成的細節。建造模式可以強制實行一種分步驟進行的建造過程。將一個複雜物件的構建與它的表示分離,使得同樣的構建過程可以建立不同的表示。相關模式:思路和模板方法模式很像,模板方法是封裝演算法流程,對某些細節,提供介面由子類修改,建造者模式更為高層一點,將所有細節都交由子類實現。建造者模式的使用方式:以下情況應當使用建造者模式:1
Time of Update: 2018-12-03
/** *使用JAVA解決依次出局問題 --作者:郴州拓職任文敏 *------------------------------------------------------------------------------ *問題描述 * 設有N個人圍坐,編號為1..N, * 從1開始報數,報到M時,該人出局;剩下者再從1開始報數,報到M的人就出局 * 以此迴圈類推,求: * 最後出局的人的編號 * 依次顯示每個出局者編號 *解題思路 * 制定一個演算法,該演算法在一個數組中,每次從N1
Time of Update: 2018-12-03
import java.io.FileInputStream;import java.security.KeyStore;import java.security.PrivateKey;import java.security.PublicKey;import java.security.cert.Certificate;import java.security.cert.CertificateFactory;import javax.crypto.Cipher; //
Time of Update: 2018-12-03
1.匯入jdom類/** * 讀取sms.xml設定檔資訊 * @param file * @throws IOException * @throws JDOMException */public ReadSMSFile(File file) throws JDOMException, IOException{if(file!=null){SAXBuilder sb = new SAXBuilder();//建立一個解析器//構造一個Document,讀入xml檔案的內容Document
Time of Update: 2018-12-03
要求:根據輸入的數字n,如:3,5,7...以矩陣顯示n行n列數,這些數由1~n*n構成,要求矩陣的每行每列及對角線上n個數之和相等預備知識:在距陣中,1在第一行正中,隨後的數字應放到上一個數位右上方方格中,如果向上不行,就放到該列的最下方格子;如果向右不行,就放到該行的最左邊;如果都不行,就放到上一個數位正下方;如果目標格子中已經有數字,也放到上一個數位正下方思路:1) 使用2維數組預備儲存1~n*n這些數字2) 1是放到第一行正中的,所以其索引號是:[0][(n-1)/2]3) 隨後的數字,
Time of Update: 2018-12-03
註明:本文完全來自Effective Java,以後方便查看。理想情況下,一個散列函數應該把一個集合中不相等的執行個體均勻地分布到所有可能的散列值上。要想完全達到這種理想的情形是非常困難的,幸運的是,相對接近這種理想情形並不太困難。下面給出一種簡單的“處方”。1.把某個非零數值,比如17,儲存在一個叫result得int類型的變數中。2.對於對象中每一個關鍵域f,完成以下步驟:a.為該域計算Int類型的散列碼c: ①如果該域是boolean類型,則計算(f?0:1)
Time of Update: 2018-12-03
註明:其中某些注釋部分為讀寫檔案(與之對應的是僅僅操作字串),或者是可替換方式,在JDOM和DOM4J中XPATH需要用到jaxen.jar一、DOM操作方式public static void getDoc() throws ParserConfigurationException, SAXException, IOException{DocumentBuilderFactory dbf =
Time of Update: 2018-12-03
雖然這種應用情況極少,甚至基本不會出現,但還是記錄下,加深下影響吧,避免以後犯2都找不到原因。參見:Why new String(bytes, enc).getBytes(enc) does not return the original byte array?也就是當你無法確認在指定編碼下所有位元組能夠被識別,請不要使用new String來編碼,否則導致不僅該位元組丟失,甚至接下來的一個位元組也會伴隨丟失。例如Utils.printBytes( new String(new byte[]{-
Time of Update: 2018-12-03
一個簡單的應用,從python回到JAVA,重新熟悉下JAVA,另外方面前段時間看完設計模式不用上的感覺很快就忘記了,想從設計及開發上多應用下。一、需求 平常註冊的網站多了,或者小號或者帳號等多了,主要怕一些網站明文傳輸的,很多密碼都是臨時的那種,但是後面要用又想不起來,故想做這麼個簡單應用本地將密碼做RSA加密,然後根據網站網域名稱和帳號儲存到遠端儲存上。本來是考慮用有道雲筆記的,後來申請許可權花了很多時間,API也相對較複雜,就先採用File,FTP,百度雲儲存三種方式做後端儲存。二、設計雖
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-03
lombok 的官方網址:http://projectlombok.org/ 關於lombok
Time of Update: 2018-12-03
項目中需要用條碼外掛程式,基於Java平台的需要比較簡單,根據一個12位的數字產生一個條碼圖片即可之前一直用Google的Zxing,因為功能強大,調用簡單,網上也有很多資料後來發現,Zxing有一個缺點——不能顯示文字於是想換一個條碼外掛程式在網上搜羅了一下,大概有以下幾個外掛程式可以用:1、Zxing(之前已經實現,效果不理想)2、Barcode4j3、JBarcode4、Barbecue通過對比,最終沒有選擇Barcode4j,也沒有選擇Barbecue而是選用了輕量級的JBarcode外
Time of Update: 2018-12-03
要理解原型原型模式必須先理解Java裡的淺複製和深複製。有的地方,複製也叫做複製。Java提供這兩種複製方式。 淺複製:被複製對象的所有變數都含有與原來的對象相同的值,而它所有的對其他對象的引用都仍然指向原來的對象。換一種說法就是淺複製僅僅複製所考慮的對象,而不複製它所引用的對象。
Time of Update: 2018-12-03
//輸入日期取星期幾的方法 public String getWeekDay(String DateStr){ SimpleDateFormat formatYMD=new SimpleDateFormat("yyyy-MM-dd");//formatYMD表示的是yyyy-MM-dd格式 SimpleDateFormat formatD=new SimpleDateFormat("E");//"E"表示"day in week" Date d=null;
Time of Update: 2018-12-04
Firefly是一個高效能的一站式Java
Time of Update: 2018-12-04
Time of Update: 2018-12-04
來到這裡實習的時候,就準備多讀幾本書,其中第一本就是《Java編程思想》,後續還會讀一些《代碼大全》、《演算法導論》之類的書籍。不過這一次通過閱讀《java編程思想》,我收穫了實在太多了,現在對java的認識也更加深刻了,每次搞一個問題的時候,都會細心的研究研究jdk的源碼,等問題研究透徹了就感覺特別爽,這個網站(http://www.songtao.me)也是我在實習期間整理的,裡面的很多部落格也是通過閱讀這本書總結的。我就簡單的拿兩個例子吧:Vector和ArrayList的源碼的分析:今天
Time of Update: 2018-12-04
一、java的反射機制淺談 最近研究java研究得很給力,主要以看博文為學習方式。以下是我對java的反射機制所產生的一些感悟,希望各位童鞋看到失誤之處不吝指出。受到各位指教之處,如若讓小生好好感動,說不定會請各位吃飯哦! 1.何謂反射機制 根據網文,java中的反射機制可以如此定義:JAVA反射機制是在運行狀態中,對於任意一個類,都能夠知道這個類的所有屬性和方法;對於任意一個對象,都能夠調用它的任意一個方法;這種動態擷取的資訊以及動態調用對象的方法的功能稱為java語言的反射機制。 2.反射機