Time of Update: 2018-12-07
在Java的Object類中定義了(protected)clone()方法,如果自己的類需要clone方法的話需要實現Cloneable介面,並重寫clone()方法和將方法存取層級改為(public)。但是如果自己的類如果屬性比較多,重寫clone方法還是會花去不少時間,更重要的是以後增加或者刪除屬性的時候也要相應修改clone方法,總的來說還是比較麻煩的。這裡如果對效能不太計較的話,其實可以有一個簡單快速的方法實現clone方法,就是使用Java語言的序列化功能來實現clone方法,如下:
Time of Update: 2018-12-07
在javaweb中使用Cookie經常會出現亂碼問題。解決方案:對中文進行編碼和解碼儲存到Cookie中時:String str = URLEncoder.encode("你好","UTF-8"); Cookie cookie = new Cookie("aaa", str); cookie.setMaxAge(600); response.addCookie(cookie); response.sendRedirect("index.jsp");從Cookie中擷取時:Cookie[]
Time of Update: 2018-12-07
今天看了看java編程思想第三版,在第三章中講到邏輯運算子時提到了一個我以前沒聽過的名次“短路”,那到底什麼是短路呢?先看看下面的代碼public class ShortCut{ public static boolean test(int a) { System.out.println("come in and a=" + a); return a > 1; } public static void main(String[]
Time of Update: 2018-12-07
今天發現一個問題,是有關split函數的,比如有個字串String a = "a,b,c";那麼a.split(",");返回的是一個String型的數組長度為3若字串a = "a,,c" 執行a.split(",");返回的也是長度為3的字串數組若a = "a,," 執行a.split(",");此時返回的是個長度為1的字串數組,把後面的就給去了,如果程式中用到了後面的字元,就會引起數組越界的錯誤,可以將a = "a,,"在加一個字元a =
Time of Update: 2018-12-07
在java中處理日期我覺得不方便,需要引入好幾個包Date和SimpleDateFormat或者DateFormat,而且Date設定日期我覺得很不方便,為了方便操作Date我寫了一個類名為FlexDate,在類裡處理日期、擷取日期,我是覺得寫一個類很方便,下面是代碼,如果覺得哪裡寫的不好還請朋友們多多指教。package org.fengdong;import java.text.SimpleDateFormat;import java.util.Date;/** *//** * Create
Time of Update: 2018-12-07
import java.util.ArrayList;import java.util.List;// http://www.jtraining.com/blogs/string-and-memory-leaks-in-java.html// http://www.javablogging.com/string-and-memory-leaks/public class TestStringOutOfMemoryError {public static void main(String[]
Time of Update: 2018-12-07
今天在整合perf4j和javasimon到代碼裡的時候發現一些問題,就是本來在自己的測試代碼裡運行好好的東西,在放到項目代碼裡的時候總是報以下錯誤:...Caused by: java.lang.IllegalArgumentException: Superclass has no null constructors but no arguments were given...比較了代碼半天發現在自己的測試代碼裡沒有用到有構造參數的spring
Time of Update: 2018-12-07
拿到自己的Mac Book Pro,一個字“爽”。這兩天在裝一些軟體,因為自己要做一些Java開發,所以Java的反編譯工具就是不可少的,以前在windows平台一直用的DJcompiler,現在需要在Mac上也找一個替代品,結果找到了JD | Java Decompiler
Time of Update: 2018-12-07
最近公司在使用一個java ssh client(JTA
Time of Update: 2018-12-07
周末碰到一段代碼,是關於Java IO流的,代碼中出現在一個多線程的系統中,其中一段代碼在開啟一個檔案操作流用完以後沒有及時關閉,開始以為很快會出現開啟檔案太多或者導致記憶體溢出,但是在運行了很長時間以後仍然沒有出現問題,後來自己寫了個小程式測試了一下,總算似乎搞清楚為啥了。先看以下一段代碼import java.io.FileInputStream;public class TTT {public static void main(String[] args) throws
Time of Update: 2018-12-07
昨日看《Effective Java》第二條:遇到多個構造器參數時要考慮用構造器。其中,示範通過Builder模式,構建複雜的對象。因為之前對java不是很瞭解的原因。很疑惑:static
Time of Update: 2018-12-07
原廠模式的意圖:定義一個使用者建立對象的介面,讓子類決定執行個體化哪一個類。Factory Method使一個類的執行個體化延遲到其子類。結構圖:情境:這裡製造兩個手機product:Nokia、Motorola,為了製造這兩個Product需要使用兩個Creator(Factory)來製造它們。這兩個Creator都有各自的Concreator(類似生產線)。這兩個手機都實現必須實現兩個最基本的功能:call(打電話)、photo(拍照)。product:/// <summary>
Time of Update: 2018-12-07
最近在自學Java,看到Java的檢查型異常設計時,心中不免有些疑惑。疑惑使用檢查型異常的必要性。註:本人現在從事的.net開發。C#在設計上借鑒了Java,但是,C# 並沒有引入所謂的檢查型異常。 在網上看到一些關於Java中是否該採用檢查型異常的機制。真是眾說紛紜,但是還是可以總結為,對這個設計的批評聲更多。其實,我沒有在真正項目中使用Java開發的經驗,更沒有過在方法簽名中聲明檢查型異常的經驗。但是,在使用了C#這個長時間以來,也沒有覺得C#完全拋棄檢查型異常帶來怎樣的不便和設計上的缺陷。
Time of Update: 2018-12-07
1、Java,整型轉換為字元型方法,Integer.toString(intValue),其他以此類推2、擷取相對路徑下的檔案方法: String filePath = TestIO1.class.getResource("pet.template").toString(); filePath = filePath.substring(filePath.indexOf("/"), filePath.length());3、public class slongte{private
Time of Update: 2018-12-07
public List<Message> getByPage(int page) {// TODO Auto-generated method stubString sql = "select * from message";Message message = null;DateFormat format = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");List<Message> list = new ArrayList<
Time of Update: 2018-12-07
package com.broadengate.fangxing;import java.util.ArrayList;import java.util.Collection;import java.util.HashSet;/** * 應該都知道 hashset 不允許放入重複的資料,那麼他是根據什麼來判斷是否是重複的資料呢? * 在hashset中用到了hash演算法,因為hashset底層也是用的Hashmap來存取資料 *
Time of Update: 2018-12-07
“對語言設計人員來說,建立好的輸入/輸出系統是一項特別困難的任務。”由於存在大量不同的設計方案,所以該任務的困難性是很容易證明的。其中最大的挑戰似乎是如何覆蓋所有可能的因素。不僅有三種不同的種類的IO需要考慮(檔案、控制台、網路連接),而且需要通過大量不同的方式與它們通訊(順序、隨機訪問、二進位、字元、按行、按字等等)。Java庫的設計者通過建立大量類來攻克這個難題。事實上,Java的IO系統採用了如此多的類,以致剛開始會產生不知從何處入手的感覺(具有諷刺意味的是,Java的IO設計初衷實際要求
Time of Update: 2018-12-07
今天做JAVA編程思想IO一章的練習題,運行程式結果不能把字串輸出到檔案中,後來才發現是因為程式最後沒有關閉流對象造成的...代碼如下:public class IOWork { public static void writeFile(){ try { FileWriter fw=new FileWriter("IOWriterFile.txt"); PrintWriter pw=new PrintWriter(fw); for (int i=0;i<
Time of Update: 2018-12-07
1、找出如下代碼的錯誤public class test { public test() { } test a; { a = new test(); } static test s; static { s = new test(); } public static void main(String[] args) { new test(); }}錯誤:執行個體變數初始化的時候出問題 他那個屬性是自己的類, 所以在建立的時候就會一直在那裡迴圈錯誤原理:靜態變數執行個體了
Time of Update: 2018-12-07
概述:A.==可用於基本類型和參考型別:當用於基本類型時候,是比較值是否相同;當用於參考型別的時候,是比較對象是否相同。B.對於String a = “a”; Integer b = 1;這種類型的特有對象建立方式,==的時候值是相同的。C.基本類型沒有equals方法,equals只比較值(對象中的內容)是否相同(相同返回true)。D.一個類如果沒有定義equals方法,它將預設繼承Object中的equals方法,傳回值與==方法相同。詳述:①==和equals的實質。在JAVA中利用"=