Time of Update: 2018-12-08
Java動態代理模式 代理:一個角色代表別一個角色來實現某些特定的能功。 比如:生產商,中間商,客戶這三者這間的關係 客戶買產品不並直接與生產商打交道,也用不曉得產品是如何生產的,客戶只與中間商打交道,而中間商便可以對產品行進一些封裝,供提一些售後的服務。 代理模式有三個角色: 1. 抽象主題角色 2. 代理主題角色 3. 際實被代理角色面下我們來個一個靜態代理的現實。 我以一個坦克為例。抽象主題角色:Moveable 複製代碼 代碼如下:package
Time of Update: 2018-12-08
程式如下:複製代碼 代碼如下:View Code /* * Hanoi塔遊戲 問題描述: * 漢諾塔:漢諾塔(又稱河內塔)問題是源於印度一個古老傳說的益智玩具。 * 大梵天創造世界的時候做了三根金剛石砫子,在一根柱子上從下往上按照 * 大小順序摞著64片黃金圓盤。大梵天命令婆羅門把圓盤從下面開始按大小 * 順序重新擺放在另一根柱子上。並且規定,在小圓盤上不能放大圓盤,在 * 三根柱子之間一次只能移動一個圓盤。 * * fuction:實現 hanoi塔 *
Time of Update: 2018-12-08
本樣本和參考文章的差別在於:1)deploy.wsdd定義的更詳細(對於server端定義了介面:ICalculate):複製代碼 代碼如下:<deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java"> <service name="Calculate" provider="java:RPC"
Time of Update: 2018-12-08
那麼Http協議中的Multipart是個什麼東東?下面是摘抄http協議1.1的一段話:在multipart entity(多部分實體)的例子中,一個或多個不同的資料集合并在一個單一的body(體)中,一個"multipart"(多部分)類型 field的(域)必須出現在實體的header(頭域)。body(體)必須包括一個或多個body
Time of Update: 2018-12-08
複製代碼 代碼如下:package com.qhdstar.java.pdf;import java.awt.Color;import java.io.FileOutputStream;import com.lowagie.text.Chapter;import com.lowagie.text.Document;import com.lowagie.text.Font;import com.lowagie.text.FontFactory;import
Time of Update: 2018-12-08
代碼如下所示:複製代碼 代碼如下:package com.hoo.util; import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.image.BufferedImage; import java.util.Random; import javax.imageio.ImageIO; import
Time of Update: 2018-12-08
1. 基礎資料型別 (Elementary Data Type)整形: byte 1 個位元組short 2 個位元組int 4個位元組long 8個位元組字元:char 2個位元組浮點數:float 4個位元組double 8個位元組布爾:boolean 1個位元組2.java 7
Time of Update: 2018-12-08
線程是作業系統啟動並執行基本單位,它被封裝在進程中,一個進程可以包含多個線程。即使我們不手動創造線程,進程也會有一個預設的線程在運行。對於JVM來說,當我們編寫一個單線程的程式去運行時,JVM中也是有至少兩個線程在運行,一個是我們建立的程式,一個是記憶體回收。線程基本資料我們可以通過Thread.currentThread()方法擷取當前線程的一些資訊,並對其進行修改。我們來看以下代碼:複製代碼 代碼如下:查看並修改當前線程的屬性 String name =
Time of Update: 2018-12-08
Java中的集合主要集中在2部分,一部分是java.util包中,一部分是java.util.concurrent中,後者是在前者的基礎上,定義了一些實現了同步功能的集合。這篇文章主要關注java.util下的各種集合對象。Java中的集合對象可以粗略的分為3類:List、Set和Map。對應的UML圖如下(包括了java.util下大部分的集合對象):Collection概述Java集合中的List和Set都從Collection出來,它是一個學習集合很不錯的入口,它包含了集合中通常需要有的操
Time of Update: 2018-12-08
TCP串連TCP的基礎是Socket,在TCP串連中,我們會使用ServerSocket和Socket,當用戶端和伺服器建立串連以後,剩下的基本就是對I/O的控制了。我們先來看一個簡單的TCP通訊,它分為用戶端和伺服器端。用戶端代碼如下:複製代碼 代碼如下:簡單的TCP用戶端 import java.net.*; import java.io.*; public class SimpleTcpClient { public static void main(String[] args)
Time of Update: 2018-12-08
工作後,使用的技術隨著項目的變化而變化,時而C#,時而Java,當然還有其他一些零碎的技術。總體而言,C#的使用時間要更長一些,其次是Java。我本身對語言沒有什麼傾向性,能幹活的語言,就是好語言。而且從物件導向的角度來看,我覺得C#和Java對我來說,沒什麼區別。 這篇文章主要回顧Java中和I/O操作相關的內容,I/O也是程式設計語言的一個基礎特性,Java中的I/O分為兩種類型,一種是順序讀取,一種是隨機讀取。 我們先來看順序讀取,有兩種方式可以進行順序讀取,一種是InputStr
Time of Update: 2018-12-08
1.ArrayList是實現了基於動態數組的資料結構,LinkedList基於鏈表的資料結構。 2.對於隨機訪問get和set,ArrayList優於LinkedList,因為ArrayList可以隨機定位,而LinkedList要移動指標一步一步的移動到節點處。(參考數組與鏈表來思考)
Time of Update: 2018-12-08
Java中如何,實現系統托盤功能.樣本圖項目包結構圖系統運行應用核心邏輯說明,隱藏到托盤實質就是講表單隱藏.即setVisible(false),顯示表單即就是講setVisible(true).項目代碼如下:複製代碼 代碼如下:package org.pdp.frame; import java.awt.AWTException; import java.awt.MenuItem; import java.awt.PopupMenu; import java.awt.SystemTray;
Time of Update: 2018-12-08
java中的資料類型,可分為兩類:1.基礎資料型別 (Elementary Data Type),也稱未經處理資料類型。byte,short,char,int,long,float,double,boolean 他們之間的比較,應用雙等號(==),比較的是他們的值。 2.複合資料型別(類)
Time of Update: 2018-12-08
Java 記憶體劃分: 在Java記憶體配置中,java將記憶體分為:方法區,堆,虛擬機器棧,本地方法棧,程式計數器。其中方法區和堆對於所有線程共用,而虛擬機器棧和本地方法棧還有程式計數器對於線程隔離的。每個地區都有各自的建立和銷毀時間。程式計數器: 作用是當前線程所執行的位元組嗎的行號指標。Java的多線程是通過線程輪流切換並分配處理器執行時間方式來實現的。因此,每個線程為了能在切換後能恢複到正確的位置,每個線程需要獨立的程式計數器。JAVA 虛擬機器棧:
Time of Update: 2018-12-08
1.switch條件陳述式中可以加入字串了,實現方法是利用了字串的hashcode()值作業真正的值2.增加了一種可以在字面量中使用的進位,二進位,通過在數字前面加“0b”或“0B”3.在數字字面量中使用底線來分隔數字方便閱讀,不影響數值大小。基本原則是前後都是數位才可以出現底線4.java7對異常做了兩個改動: 4.1.支援在一個catch子句中同時捕獲多個異常,另外一個是在捕獲並重新拋出異常時的異常類型更加精確。java7中Throwable類增加addSuppressed方法,當一個異常
Time of Update: 2018-12-08
如下面代碼以交燈為樣本:複製代碼 代碼如下:public class Test { public static void main(String[] args) { Trafficlight light = Trafficlight.RED; System.out.println(light.time); System.out.println(light.nextLigth()); //
Time of Update: 2018-12-08
很多主流架構都使用了反射技術.像ssh架構都採用兩種技術 xml做設定檔+反射技術.與反射有關的類包.java.lang.reflect.*;和java.lang.Class;Java中所有類型(包括基本類型)都對應一個Class對象,這個Class就是java.lang.Class。即每一個類型,在Class中都有一個Class對象跟它對應.Class 沒有公用構造方法。注意不是沒有,是沒有公用的.如何獲得Class對象複製代碼
Time of Update: 2018-12-08
這是一道微軟經典筆試題,就是兩個指標h1,h2都從頭開始遍曆單鏈表,h1每次向前走1步,h2每次向前走2步,如果h2碰到了NULL,說明環不存在;如果h2碰到本應在身後的h1說明環存在(也就是發生了套圈)。 如果環不存在,一定是h2先碰到NULL: 如果環存在,h2與h1一定會相遇,而且相遇的點在環內:h2比h1遍曆的速度快,一定不會在開始的那段非環的鏈表部分相遇,所以當h1,h2都進入環後,h2每次移動都會使h2與h1之間在前進方向上的差距縮小1,最後,會使得h1和h2差距減少為0
Time of Update: 2018-12-08
在曆史上,Java試圖提供過搶佔式限制中斷,但問題多多,例如前文介紹的已被廢棄的Thread.stop、Thread.suspend和 Thread.resume等。另一方面,出於Java應用代碼的健壯性的考慮,降低了編程門檻,減少不清楚底層機制的程式員無意破壞系統的機率。 如今,Java的線程調度不提供搶佔式中斷,而採用協作式的中斷。其實,協作式的中斷,原理很簡單,就是輪詢某個表示中斷的標記,我們在任何普通代碼的中都可以實現。 例如下面的代碼: volatile bool