Time of Update: 2018-07-27
Java是一門強大的進階語言。在學習了其基礎知識後,我們仍需要理解其深刻的內涵。接下來,我們會以《Effective Java》一書做為Java進階學習的載體,對Java進行一個系統的、全新的認識。接下來,就讓我們來感受Java高深的內涵吧。 第一章:建立和銷毀對象 第1條:考慮用靜態Factory 方法代替構造器
Time of Update: 2018-07-27
終結方法(finalizer)通常是不可預測的,也是很危險的,一般情況下是不必要的。使用終結方法會導致行為不穩定、降低效能,以及可移植性問題。
Time of Update: 2018-07-27
建立對象的幾種方式 構造器 靜態Factory 方法 通過Builder 不直接產生想要的對象,而是讓用戶端利用所有必要的參數調用構造器,得到一個builder對象,然後用戶端在builder對象上調用類似於setter的方法,來設定每個選擇性參數,最後在用戶端調用無參的build()方法來產生對象。下面是一個簡單的樣本: //builder patternpublic class NutritionFacts{ private final int
Time of Update: 2018-07-27
對象是放在堆裡面的,基本類型資料是放在棧裡面的。 堆:放new出來的對象 棧:放基本類型資料和對對象的引用(相當於指標,但是對象本身還是在堆裡) 常量池:public static final存放字串常量和基本類型的常量 靜態域:放靜態成員 static定義的 對對來講,棧比堆快 棧的回收機制:當程式塊結束,基礎資料型別 (Elementary Data Type)不被使用,就自動銷毀了 堆的回收機制:是由虛擬機器自動判斷
Time of Update: 2018-07-27
Java將記憶體分為兩種:一種是棧記憶體,一種是堆記憶體。 1、 棧(stack)與堆(heap)都是Java用來在Ram(隨機存取儲存空間)中存放資料的地方。與C++不同,Java自動管理棧和堆,程式員不能直接地設定棧或堆。 2、棧的優勢是,存取速度比堆要快,僅次於直接位於CPU中的寄存器,棧資料可以共用。但缺點是,存在棧中的資料大小與生存期必須是確定的,缺乏靈活性。棧中主要存放一些基本類型的變數(int, short, long, byte, float, double,
Time of Update: 2018-07-27
堆棧的理解 在JAVA中,把記憶體分為兩種----1.堆記憶體;2.棧記憶體 ***棧空間是由系統自動分配和釋放的; ***堆空間是是手動申請和釋放的。 優勢:棧比堆存取速度快,資料可共用 注意: 棧是來存放對象引用,而堆是存放JAVA對象資料的 **棧中變數指向堆中變數-----可以理解為JAVA的指標 ----在我們聲明基礎資料型別
Time of Update: 2018-07-27
在談堆和棧之前,首先我們先要瞭解一下Java對記憶體的分配結構。作為Java程式員大家應該都知道Java的程式都是運行在Java虛擬機器上也就是JVM上,程式中所有的變數、執行個體、方法等都是由JVM在記憶體上分配空間的。 那麼讓我們來初步的瞭解一下Java程式在運行時都會存在哪些記憶體地區:
Time of Update: 2018-07-27
web模組, 也就是 Servlet 規範中的web應用。在Java EE架構中, web模組(web module) 是最小的web部署單元。 其中包含web組件以及靜態資源; 如圖片之類的靜態資源也被稱為 web資源。 除web組件和web資源以外, web模組中還可以包含其他檔案, 例如服務端運行所需的工具類,JAR 包等等。 web模組有特定的結構。頂層目錄對應Web應用的 document root. 可以存放 HTML頁面, 靜態web資源等等。 根目錄下麵包含一個
Time of Update: 2018-07-27
異常如下:Exception in thread "main" java.lang.OutOfMemoryError: GC overhead limit exceeded 一、解釋:JDK6新增錯誤類型。 當GC為釋放很小空間佔用大量時間時會拋出此異常 即(Sun
Time of Update: 2018-07-27
翻譯人員: 鐵錨 翻譯時間: 2013年11月13日 原文連結: How does Java handle aliasing? 什麼是Java的引用別名機制 Java的引用別名機制(原文為Aliasing,別名,即Java中的多態)意味著多個引用變數可以定位到同一個實際物理對象,而這些引用變數可以是不同的類型. 下面的代碼中,S類繼承P類, pp 和 ss 分別是P類型 和 S類型的兩個陣列變數名. public class
Time of Update: 2018-07-27
http://www9.javaeye.com/blog/471098 轉自:MyEclipse下部署ejb時顯示Java heap space異常解決方案 報錯資訊: Buildfile: G:/workspace/weblogic/IntrustEJB/xdoclet-build.xmlN65540:[ejbdoclet] 2009-9-18 2:57:48 xdoclet.XDocletMain start[ejbdoclet] 資訊: Running
Time of Update: 2018-07-27
經過上一篇對於單例模式的心得分享,今天來聊一聊第二種設計模式 ,關於代理模式的個人理解。代理你可以把它想象成中間人、中介等等,不需要你親自去處理你想做的事,把你想要的告訴他們,讓他們去幫你實現,完成後再把最終的結果通知你。 總的來說代理模式分為兩種:一種是靜態代理,一種是動態代理。 那麼首先來說一下靜態代理: 靜態代理 靜態代理在使用的時候,需要定義介面(Interface) 或者是父類(Parent
Time of Update: 2018-07-27
目前JAVA實現HTTP請求的方法用的最多的有兩種:一種是通過HTTPClient這種第三方的開源架構去實現。HTTPClient對HTTP的封裝性比較不錯,通過它基本上能夠滿足我們大部分的需求,HttpClient3.1 是 org.apache.commons.httpclient下操作遠程 url的工具包,雖然已不再更新,但實現工作中使用httpClient3.1的代碼還是很多,HttpClient4.5是org.apache.http.client下操作遠程
Time of Update: 2018-07-27
虛擬機器載入類的途徑 1、由 new 關鍵字建立一個類的執行個體 在由運行時刻用 new 方法載入 如:Dog dog = new Dog(); 2、調用 Class.forName() 方法 通過反射載入類型,並建立對象執行個體 如:Class clazz = Class.forName(“Dog”);
Time of Update: 2018-07-27
1、使用fastJson 將String轉 map: String out; Object succesResponse = JSON.parse(out); //先轉換成Object Map map = (Map)succesResponse; //Object強轉換為Map
Time of Update: 2018-07-27
Java 讀寫Properties設定檔 1.Properties類與Properties設定檔 Properties類繼承自Hashtable類並且實現了Map介面,也是使用一種索引值對的形式來儲存屬性集。不過Properties有特殊的地方,就是它的鍵和值都是字串類型。 2.Properties中的主要方法 (1)load(InputStream inStream)
Time of Update: 2018-07-27
這是個測試用的例子,通過反射調用對象的方法。 TestRef.java import java.lang.reflect.Method; import java.lang.reflect.InvocationTargetException; /** * Created by IntelliJ
Time of Update: 2018-07-27
http://sarin.iteye.com/blog/603684/ 先來看一個例子,代碼如下: Java代碼 public class Test {
Time of Update: 2018-07-27
說說本人對介面的認知——1.定義開發的規範標準,2.延續代碼後期的維護性和擴充性。
Time of Update: 2018-07-27
在Web應用系統開發中,檔案上傳和下載功能是非常常用的功能,今天來講一下JavaWeb中的檔案上傳和下載功能的實現。