Time of Update: 2016-04-08
標籤: 裝飾模式動態將責任附加到對象上。若要擴充功能,裝飾者提供了比繼承更有彈性的取代方案代碼package gx.component;/** * 組件:裝飾類和被裝飾類 都要繼承:為了類型保持一致 * @author always * */public abstract class Component { public abstract void description(); public abstract int cost();}package
Time of Update: 2016-04-08
標籤:通常來說,當建立類的描述的那個對象的外觀和行為的時候,除非用new建立那個類的對象,否則,實際上並未獲得任何對象,執行new來建立對象的時候,資料存放區空間才會被分配,其方法才能供外界調用。但是有兩種情況是無法得到解決的:第一,只想為特定域分配單一儲存空間而不去考慮究竟要建立多少對象,甚至根本不建立任何對象,另一種情況就是,希望某個方法不與包含它的類的任何對象關聯在一起,也就是說,即時沒有建立對象,也能夠調用這個方法。
Time of Update: 2016-04-07
標籤:介紹:spring 的AOP (Aspect Oriented Programming)是通過java的動態代理來實現的,對於AOP不瞭解的朋友可以去網上看相關資料,我這裡重點說明實現原理即java動態代理要談java動態代理就不得不說java的代理模式,我這裡只給出代理模式的UML圖 (1)及動態代理模式的UML類圖 (2)說明:圖(2)中的紅色紅色斜體的類或介面是由java類庫提供的即 Proxy和InvocationHandler 是java對動態代理的支援圖 (1) 和
Time of Update: 2016-04-08
標籤:概述容器 就是存放資料的一個集合(java提供了一個介面專門去約束我們容器的實作類別)Set: does not allow duplicate objects toenter the collection of elementsSortedSet: similar to set except that theelements in the set are stored in ascending orderList: is ordered, maintain an order
Time of Update: 2016-04-08
標籤:今天在搞一段很簡單的Android讀取檔案的代碼是遇到的一個問題。才發現自己的Java基礎多麼不牢固。首先是string類型變數s 未賦初值就用了字串自動連接符“+=”,結果當然是報錯了。那我就開始賦給s一個初值null,結果在串連的時候卻把它當作了null的字串串連上了。。。;代碼如下: 1 private void updateFile3() throws IOException { 2 FileReader fileReader = new
Time of Update: 2016-04-08
標籤:靜態內部類Static Inner Class 最簡單的內部類形式。 類定義時加上static關鍵字。 不能和外部類有相同的名字。 被編譯成一個完全獨立的.class檔案,名稱為OuterClass$InnerClass.class的形式。 只可以訪問外部類的靜態成員和靜態方法,包括了私人的靜態成員和方法。 產生靜態內部類對象的方式為: OuterClass.InnerClass inner = new OuterClass.InnerClass();成員內部類Member
Time of Update: 2016-04-08
標籤:涉及到的技術及工具:java,springmvc,ibatis,freemarker,mysql,mongdb,memcached,ehcache,maven。 一個網站不可能說一開始就是要設計一個能夠考慮所有情況的完美架構,一個成熟的架構都是隨著需求的變化,流量的增高來隨之變化的。 基本架構:web伺服器:ngnix+apache做負載平衡技術架構:
Time of Update: 2016-04-07
標籤:你可以任意使用如下的修改限定關鍵字來定義一個欄位:final或者volatile和/或者static和/或者transient。如果你將一個欄位定義為final,編譯器將確保欄位當成一個常量——唯讀變數來初始化和處理。因為編譯器知道常量是不變的,所以在程式的位元組碼中對其進行了內部最佳化。class Employee{final int ACCOUNTANT = 1;final int PAYROLL_CLERK = 2;final int MANAGER = 3;
Time of Update: 2016-04-08
標籤:例1:public class DataDemo05{ public static void main(String args[]){char ch1 = ‘\"‘ ;// 表示的是一個"char ch2 = ‘\\‘ ;// 表示的是一個\System.out.println("ch1 = " + ch1) ;System.out.println("ch2 = " + ch2) ;System.out.println("\"Hello World!\"") ;}}; 運行結果:
Time of Update: 2016-04-08
標籤:class Person{ private String name; private String addr; private char sex; private int age; public void setName(String name){ this.name = name; } public void setAddr(String addr){ this.addr =
Time of Update: 2016-04-08
標籤:class Person{ private String name; private String addr; private char sex; private int age; public void setName(String name){ this.name = name; } public void setAddr(String addr){ this.addr =
Time of Update: 2016-04-07
標籤:java 快速合并 數組 需求:合并兩個Object[] a 和Object[]
Time of Update: 2016-04-08
Eclipse偵錯工具及項目的匯入匯出,eclipse匯入匯出Eclipse偵錯工具調試概述:① 調試就是測試程式的方法,主要的目的就是解決程式的邏輯問題,流程是:發現問題、修改問題、正確執行;② 以前我們可以使用System.out.println()方法來查看我們程式中的問題;③ 現在我們可以使用Eclipse開發工具幫我們進行調試:
Time of Update: 2016-04-08
最常用的動態sql語句梳理——分享給使用Mybatis的小夥伴們!,sqlmybatis
Time of Update: 2016-04-08
細說MyEclipse調試,細說myeclipse 在程式出現問題時,我們需要找到並解決掉這些惱人的Bug,才能使程式順利的運行下去。但是,當代碼很多,程式很大的時候,找起來就很麻煩。所以,我們需要藉助工具——Eclipse/MyEclipse中的Debug(調試)手段。而調試的時候,需要入口和觀測點,所以我們需要設定斷點來進行調試。 1 設定斷點的方法: 在想要加上斷點的行的邊側欄雙擊/右鍵後點擊Toggle
Time of Update: 2016-04-08
Java8
Time of Update: 2016-04-08
Java並發:線程間同步-條件隊列和同步工具類線程之間的同步,除了互斥(前面介紹的互斥鎖)之外,還存在協作關係,下面我們就介紹一下java線程間常見的一些協作方式。一、內建條件隊列正如每個Java對象都可以作為一個內建鎖,每個對象也可以作為一個條件隊列,稱為內建條件隊列,Object.wait()、notify()/notifyAll()構成了內建條件隊列的API。需要注意的是,調用任何對象X的內建條件隊列的API都必須要先獲得該對象X的內建鎖。1、API介紹Wait()u
Time of Update: 2016-04-08
Java並發編程系列之十五:Executor架構Java使用線程完成非同步任務是很普遍的事,而線程的建立與銷毀需要一定的開銷,如果每個任務都需要建立一個線程將會消耗大量的計算資源,JDK
Time of Update: 2016-04-07
JVM-程式編譯與代碼早期(編譯期)最佳化,jvm-編譯 早期(編譯期)最佳化一、Javac編譯器 1.Javac的原始碼與調試 Javac的原始碼放在JDK_SRC_HOME/langtools/src/shares/classes/com/sun/tools/javac中,除了JDK自身的API之外,就只引用了JDK_SRC_HOME/langtools/src/shares/classes/com/sun/*裡面的代碼,調試環境建立起來簡單方便,因為基本上不需要處理依賴關
Time of Update: 2016-04-07
Class.forName("com.mysql.jdbc.Driver") ;,jdbcclass.fornametry { Class.forName("com.mysql.jdbc.Driver") ; } catch(ClassNotFoundException e) { System.out.println("找不到驅動程式類 ,載入驅動失敗!"); //