亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

java學習小知識集錦2

系統 2283 0
1.awt中的MouseEvent類中的方法
isPopupTrigger() 返回此鼠標事件是否為該平臺的彈出菜單觸發的事件
InputEvent中的consume()的作用是 以便不會按照默認的方式由產生此事件的源代碼處理此事件。
2.javax.swing 類JToolBar
方法setFloatable(boolean b)
設置floatable屬性,如果要移動工具欄,此屬性必須設置為 true。

3.Set,因為Set 不允許包括重復的元素而且排序和我們無關。
4.什么是JMX JMX(Java Management Extensions)是一個為應用程序植入管理功能的框架。JMX是一套標

準的代理和服務,實際上,用戶可以在任何Java應用程序中使用這些代理和服務實現管理。

5.JCA 是一個Java 標準體系機構,用來連接和訪問后端系統,例如應用程序包和技術。 必須根據JCA

規范編寫適配器。任何符合JCA 的適配器都能夠插入支持JCA 的J2EE 應用程序服務器。

6.類的修飾
abstract不能直接產生屬于這個類的對象
final不能被其他任何類繼承
public不但能被同一程序包的類所調用,而且也能被其他程序包的類所調用
friendly(缺?。┲荒鼙槐景械钠渌愃{用
變量和方法的修飾
public 任何其他類和對象 只要能看到這個類的話。
protected 同一類和同一包可以使用。不同的包的類要使用,必須是該類的子類
可以存取變量和調用
private 不允許任何其他類存取和調用
friendly 同一程序包中出現的類才可以直接使用他的數據和方法

7.只有對象的方法可以訪問對象的變量

8.利用接口可以實現多重繼承(可以同時實現多個接口)

9.RMI 指的是遠程方法調用 (Remote Method Invocation)。它是一種機制,能夠讓在某個 Java 虛擬機

上的對象調用另一個 Java 虛擬機中的對象上的方法??梢杂么朔椒ㄕ{用的任何對象必須實現該遠程接

口。調用這樣一個對象時,其參數為 "marshalled" 并將其從本地虛擬機發送到遠程虛擬機(該遠程虛

擬機的參數為 "unmarshalled")上。該方法終止時,將編組來自遠程機的結果并將結果發送到調用方的

虛擬機。如果方法調用導致拋出異常,則該異常將指示給調用方。

10.CORBA是對象管理集團(OMG,http://www.omg.org/)開發的一系列的規范,CORBA的目標達到平臺無

關、編程語言無關、以及網絡傳輸協議無關的互操作,它被認為是最主要的分布對象的體系結構之一。

11.JFrame類中的 setDefaultLookAndFeelDecorated(boolean defaultLookAndFeelDecorated) 提供

一個關于新創建的JFrame是否應該具有當前外觀為其提供的Window裝飾(如邊框、關閉窗口的小部件,

標題等等)的提示。

12.javax.sound.sampled中的類 AudioInputStream
音頻輸入流是具有指定音頻格式和長度的輸入流。長度用示例幀表示,不用字節表示。提供幾種方法

,用于從流讀取一定數量的字節,或未指定數量的字節。音頻輸入流跟蹤所讀取的最后一個字節??梢?

跳過任意數量的字節以到達稍后的讀取位置。音頻輸入流可支持標記。設置標記時,會記住當前位置,

以便可以稍后返回到該位置。

13.主要的聲音文件類型
AU-擴展名為Au或snd,適用于短的聲音文件。
wav-擴展名為WAV。能被所有支持聲音的windows應用程序播放。
AIFF——擴展 名為AIF或IEF音頻互換文件格式
MIDI——擴展名為MID,樂器數字接口 MIDI是為音樂制造業所認可的標準,主要用于控制諸如合成器

和聲卡之類的設備。

14.JMF java媒體框架
該核心框架支持不同媒體(如:音頻 視頻輸出)間的時間同步。它是一個標準的擴展框架。允許用

戶制作純音頻和視頻流。



15.Java虛擬機(JVM)是java Virtual Machine的縮寫,它是一個虛擬出來的計算機,是通過在實際計

算機上仿真模擬各種計算機功能模擬來實現的。Java虛擬機有自己完善的硬件架構,如處理器,堆棧,

寄存器等,還具有相應的指令系統。
java語言最重要的特點就是可以在任何操作系統中運行。使用Java虛擬機就是為了支持與操作系統無關

,在任何系統中都可以運行。
Java虛擬機屏蔽了與具體操作系統平臺相關的信息,使得Java語言編譯程序只需生成在Java虛擬機上運行

的目標代碼(字節碼),就可以在多種平臺上不加修改地運行。Java虛擬機在執行字節碼時,實際上最終還

是把字節碼解釋成具體平臺上的機器指令執行。

JRE 是Java運行環境 (Java Runtime Enviroment) 的縮寫。它基本上就和Java虛擬機是同一個概念。

一般說來,在談論一個具體的產品的時候,可以說“JRE”,而說到理論中的一個模型的時候,我們常用

的是“Java虛擬機”。

要使用Java程序,JRE是必不可少的環境。

16.RAM(Random-Access Memory)-隨機存取存儲器,一種存儲單元結構,用于保存CPU處理的數據信息。

“隨機”存取是與“順序(serial)”存取相對而言的,意思是CPU可以從 RAM中任意地址中直接讀取所

需的數據,而不必從頭到尾一一查找

17.棧(stack)與堆(heap)
棧的優勢是,存取速度比堆要快,僅次于直接位于CPU中的寄存器。但缺點是,存在棧中的數據大小與

生存期必須是確定的,缺乏靈活性。另外,棧數據可以共享,詳見第3點。堆的優勢是可以動態地分配內

存大小,生存期也不必事先告訴編譯器,Java的垃圾收集器會自動收走這些不再使用的數據。但缺點是

,由于要在運行時動態分配內存,存取速度較慢。
基本類型(除string)存于棧中;包裝類數據如:Integer,String,Double等將相應的基本數據類型包

裝起來的類。這些類數據全部存在于堆中。
==號,根據JDK的說明,只有在兩個引用都指向了同一個對象時才返回真值。
String str1 = new String("abc");
  String str2 = "abc";
  System.out.println(str1==str2); //false

String str1 = "abc";
  String str2 = "abc";
  System.out.println(str1==str2); //true

18.AbstrctAction 此類提供JFC Action接口的默認實現。它定義了一些標準行為,比如Action對象屬性

(icon,text和enabled)的get和set方法。開發人員只需為此抽象類創建子類并定義actionPerformed方

法即可。

19. JPopupMenu.add(Action a) 將指派指定 Action 對象的新菜單項追加到菜單的末尾。

Action inviteAction = new AbstractAction() {
public void actionPerformed(ActionEvent actionEvent) {
ConferenceUtils.inviteUsersToRoom(groupChatRoom.getConferenceService(),

groupChatRoom.getRoomname(), null);
}
};

inviteAction.putValue(Action.NAME, Res.getString("menuitem.invite.users"));
inviteAction.putValue(Action.SMALL_ICON, SparkRes.getImageIcon

(SparkRes.CONFERENCE_IMAGE_16x16));
popup.addSeparator();
popup.add(inviteAction);

20.正則表達式
Pattern對象,被Known as patterns, 是編譯的正則表達式
Mattcher對象,或者matchers,在實現了java.lang.CharSequence接口并作為文本source的字符序列中

定位解釋matchers的引擎。
PatternSyntaxException 對象描述非法的regex patterns
(1).句點符號--通配符 t.n--tan,ten,tin,ton
(2).方括號符號--之內只能匹配單個字符t[aeio]n--tan,ten,tio,ton
(3)."或 "符號-- t(a|e|i|o|oo)n-tan,ten,tin,toon
(4).表示匹配次數的符號---用來確定緊靠該符號左邊的符號出現的次數。
*--0次或者多次
+--一次或者多次
?--0次或者一次
{n}--恰好n次
{n,m}--從n次到m次
- 表示一個范圍,比如從0到9
比如999-99-9999
[0-9]{3} /-[0-9]{2} /-[0-9]{4} /-連字符
[0-9]{3} /-?[0-9]{2} /-?[0-9]{4} /-? 可選的連字符
(5).“否”符號
“^”在方括號內,表示不想要匹配的字符。
(6). 圓括號和空白符號
“/s”符號是空白符號 必需的空格
“/s*”可選的空格
(7)其他符號
/d=[0-9]
/D=[^0-9]
/w=[A-Z0-9]
/W=[^A-Z0-9]
/s=[/t/n/r/f]
/S=[^/t/n/r/f]
Matcher方法如下:
Matcher appendReplacement(StringBuffer sb, String replacement)
將當前匹配子串替換為指定字符串,并且將替換后的子串以及其之前到上次匹配子串之后的字符串段添

加到一個StringBuffer對象里。
StringBuffer appendTail(StringBuffer sb)
將最后一次匹配工作后剩余的字符串添加到一個StringBuffer對象里。
boolean find()
嘗試在目標字符串里查找下一個匹配子串。
int groupCount()
返回當前查找所獲得的匹配組的數量。
string group(int group)
返回當前查找而獲得的與指定的組匹配的子串內容

21.java.awt.Toolkit 此類是Abstract Window Toolkit的所有實際實現的抽象超類。Toolkit的子類被

用于將各種組件綁定到特定本機工具包實現

22.java.awt.point表示(x,y)坐標空間中的位置的點,以整數精度來指定

23.java.swing.JList 該組件允許用戶從列表中選擇一個或多個對象。單獨,模型ListModel表示列表的

內容。使用構建ListModel實例的JList構造方法,可以方便地顯示對象的數組或向量。

24.DefaultListModel此類以松散方式實現java.util.Vector API,它實現1.1.x版本的

java.util.Vector,沒有Collection類的支持,并且在發生更改時通知ListDataListener

25.javax.swing.AbstractButton
 定義按鈕和菜單項的一般行為
 setMnemonic(int mnemonic)設置當前模型上的鍵盤助記符

25.定義菜單和按鈕的

26.java.lang.String中的方法replaceFirst(String regex,String replacement) 使用給定的

replacement字符串替換此字符串匹配給定的正則表達式的第一個子字符串。

27。異常處理問題
結論一:既然捕獲了異常,就要對它進行適當的處理。不要捕獲異常之后又把它丟棄,不予處理。
結論二:在catch語句中應盡可能指定具體的異常類型,必要時使用多個catch.不要試圖處理所有可能出

現的異常
結論三: 保證所有的資源都能被正確的釋放。充分運用finally關鍵詞。
結論四:在異常處理模塊中提供適量的錯誤原因信息,組織錯誤信息使其易于理解和閱讀。
結論五:盡量減小try塊的體積。
結論六:全面考慮可能出現的異常以及這些異常對執行流程的影響。

28.javax.swing.JDesktopPane
用于創建多文檔界面或虛擬桌面的容器。用戶可創建JInternalFrame對象并將其添加到

JDesktopPane.JDesktopPane擴展了JLayeredPane,管理可能的重疊內部窗體。它還維護了對

DesktopManager 實例的引用,這是由 UI 類為當前的外觀 (L&F) 所設置的。注意,JDesktopPane 不支

持邊界。

29.Java程序性能和速度優化實例
(1)應用具有I/O Buffer功能的CLass
(2)字符串運算處理。運用BUFFER和append()方法,避免使用String class的“+=”操作,以減少JVM在

內存中創建新的對象,占用資源,增加JVM回收資源負擔。
(3)處理昂貴的數據庫初始化

30.方法javax.swing.JComponent.setDoubleBuffered()
 設置此組件是否應該使用緩沖區進行繪制

31.ArrayList,Vector,LinkedList的存儲性能和特性
ArrayList和Vector都使用數組方式存儲數據,此數組元素數大于實際存儲的數據以便增加和插入元素

,它們都允許直接按序號索引元素,但是插入元素要涉及數組元素移動等內存操作,所以索引數據快而

插入數據慢,Vector由于使用了synchronized方法(線程安全),通常性能上較ArrayList差,而

LinkedList使用雙向鏈表實現存儲,按序號索引數據需要進行前向和后向遍歷,但是插入數據時只需要

記錄本項的前后項即可,所以插入速度較快。

32.Collection和Collections的區別
Collection是集合類的上級接口,繼承欲它的接口主要有Set和List
Collections是針對集合類的一個幫助類,它提供一系列靜態方法實現對各種集合的搜索、排序、線程安

全化等操作

33.HashMap和Hashtable的區別
HashMap是Hashtable的輕量級實現(非線程安全的實現),他們都完成了Map接口,主要區別在于HashMap

允許空(null)鍵值(key),由于非線程安全,效率上可能高于Hashtable
HashMap允許將null作為一個entry的key或者value,而Hashtable不允許
HashMap把Hashtable的Contains方法去掉了,改成containsvalue和containsKey。因為Contains方法容

易讓人引起誤解
Hashtable繼承自Dictionary類,而HashMap是Java1.2引進的Map interface的一個實現
最大的不同是,Hashtable的方法是Synchronize的,而HashMap不是,在多個線程訪問Hashtable時,不

需要自己為它的方法實現同步,而HashMap就必須為之提供同步
Hashtable和HashMap采用的hash/rehash算法都大概一樣,所以性能不會有很大的差異。

34. DCOM概述

Microsoft的分布式COM(DCOM)擴展了組件對象模型技術(COM),使其能夠支持在局域網、廣域網甚至

Internet上不同計算機的對象之間的通訊。使用DCOM,你的應用程序就可以在位置上達到分布性,從而

滿足你的客戶和應用的需求。

因為DCOM是世界上領先的組件技術COM的無縫擴展,所以你可以將你現在對基于COM的應用、組件、工具

以及知識轉移到標準化的分布式計算領域中來。當你在做分布式計算時,DCOM處理網絡協議的低層次的

細節問題,從而使你能夠集中精力解決用戶所要求的問題。
回答

35.DAO(Data Access Object):數據訪問對象。

36.ORM(Object/Relation Mapping):對象關系映射

37.類與類之間存在以下關系:
(1)泛化(Generalization):繼承關系,實現關系 ———》
(2)關聯(Association):局部變量,方法的參數,以及靜態方法的調用-------->
(3)依賴(Dependency): 使用實例變量實現————
(4)聚合(Aggregation):較強的關聯關系,強調的是整體與部分的關系?!?lt;>

38.一個完整的RMI實例
(1)創建遠程接口及聲明遠程方法
遠程接口必須擴展接口java.rmi.Remote;
遠程接口方法必須拋出java.rmi.RemoteException
(2)實現遠程接口及遠程方法(繼承UnicastRemoteObject)
(3)啟動RMI注冊服務,并注冊遠程對象
(4)客戶端查找遠程對象,并調用遠程方法
(5)執行程序:啟動服務;運行客戶端

創建RMI程序的6個步驟
(1) 定義一個遠程接口的接口,該接口的每一個方法必須聲明它將產生一個 RemoteException
(2)定義一個實現該接口的類
(3)使用RMIC程序生成遠程實現所需的殘根和框架
(4)創建一個服務器,用于發布2中寫好的類
(5)創建一個客戶程序進行RMI調用
(6)啟動rmiRegistry并運行自己的遠程服務器和客戶程序。
(6)

39.sleep()和wait()的區別
sleep()是使縣城停止一段時間的方法.時間間隔期滿后,線程不一定立即恢復執行
wait()是線程交互時,如果線程對一個同步對象X發出一個wait()調用,該線程會暫停執行,被調對象進

入等待狀態,直到被喚醒或等待時間到.
sleep()不釋放同步鎖,wait()釋放同步鎖

40.java.lang.reflect.Field
Field提供有關類或接口的單個字段的信息,以及對它的動態訪問權限.反射的字段可能是一個類(靜態)

字段或實例字段.


41.線程學習
Volatile 修飾的成員變量在每次被線程訪問時,都強迫從共享內存中重讀該成員變量的值.而且,當成員

變量發生變化時.強迫線程將變化值回寫到共享內存.這樣在任何時刻,兩個不同的線程總是看到某個成員

變量的同一個值.
由于使用volatile屏蔽掉了VM中必要的代碼優化,所以在效率上比較低,因此一定要在必要的時候才使用

此關鍵字.
yield()使得線程放棄當前分得的CPU時間,但是不使線程阻塞,即線程仍處于可執行狀態,隨時可能再次

分得CPU時間.
Thread.Interrupt實事上并沒有立即中斷一個正在運行的線程.采用 Thread.interrupt()方法并沒有中

斷一個正在運行的線程。此方法事實上做的只是如果線程被封鎖則拋出一個中斷信號,由此線程退出了

封鎖狀態。

線程的四種狀態:
(1)新狀態
(2)可執行狀態
(3)死亡狀態
(4)阻塞狀態
wait()和notify()方法必須在synchronized方法或塊中調用.因為只有在synchrinized方法或塊中當前

線程才占有鎖,才有鎖可以釋放
join()這個函數的作用是使得目前正在運行的線程假如為a停下來,一直到調用join()方法的這個線程b

被執行完畢,在繼續開始線程a

42.javax.swing.JSplitPane
用于分隔兩個(只能兩個)Component .

43.Collection和Collections的區別
Collection是集合類的上級接口,繼承于他的接口主要有Set和List.
Collections是針對集合類的一個幫助類,他提供一系列靜態方法實現對各種集合的搜索,排序,線程安

全化等操作

44. HashMap和Hashtable的區別
HashMap是Hashtable的輕量級實現(非線程安全的實現),他們都完成了Map接口,主要區別在于HashMap

允許空鍵值(key),效率上可能高于Hashtable
HashMap允許將null作為一個entry的key或者value,而Hashtable不允許。
HashMap把Hashtable的contains方法去掉了,改成containsvalue和containsKey。因為contains方法容

易讓人引起誤解。
Hashtable繼承自Dictionary類,而HashMap是Java1.2引進的Map interface的一個實現。
最大的不同是,Hashtable的方法是Synchronize的,而HashMap不是,在多個線程訪問Hashtable時,不

需要自己為它的方法實現同步,而HashMap 就必須為之提供外同步。
Hashtable和HashMap采用的hash/rehash算法都大概一樣,所以性能不會有很大的差異。

45.、abstract class和interface有什么區別?
聲明方法的存在而不去實現它的類被叫做抽象類(abstract class),它用于要創建一個體現某些基本

行為的類,并為該類聲明方法,但不能在該類中實現該類的情況。不能創建 abstract 類的實例。然而

可以創建一個變量,其類型是一個抽象類,并讓它指向具體子類的一個實例。不能有抽象構造函數或抽

象靜態方法。 Abstract 類的子類為它們父類中的所有抽象方法提供實現,否則它們也是抽象類為。取

而代之,在子類中實現該方法。知道其行為的其它類可以在類中實現這些方法。
接口(interface)是抽象類的變體。在接口中,所有方法都是抽象的。多繼承性可通過實現這樣的接口

而獲得。接口中的所有方法都是抽象的,沒有一個有程序體。接口只可以定義static final成員變量。

接口的實現與子類相似,除了該實現類不能從接口定義中繼承行為。當類實現特殊接口時,它定義(即

將程序體給予)所有這種接口的方法。然后,它可以在實現了該接口的類的任何對象上調用接口的方法

。由于有抽象類,它允許使用接口名作為引用變量的類型。通常的動態聯編將生效。引用可以轉換到接

口類型或從接口類型轉換,instanceof 運算符可以用來決定某對象的類是否實現了接口。

46.JOptionPane有助于方便地彈出要求用戶提供值或是向其發出通知的標準對話框.

47.java調用可執行文件
Runtime.getRumtime().exec("所在目錄");

48.邏輯的端口分類
按端口號分布劃分
(1)知名端口(0-1023)
(2)動態端口(1024-65535)
按協議類型劃分
(1)TCP端口
(2)UDP端口

49.腳本語言
(1).腳本語言(JavaScript,VBscript等)介于HTML和C,C++,Java,C#等編程語言之間。
HTML通常用于格式化和鏈結文本。而編程語言通常用于向機器發出一系列復雜的指令。
(2).腳本語言與編程語言也有很多相似地方,其函數與編程語言比較相象一些,其也涉及到變量。與編程

語言之間最大的區別是編程語言的語法和規則更為嚴格和復雜一些.
(3).與程序代碼的關系:腳本也是一種語言,其同樣由程序代碼組成。
注:腳本語言一般都有相應的腳本引擎來解釋執行。 他們一般需要解釋器才能運行。

JAVASCRIPT,ASP,PHP,PERL都是腳本語言。C/C++編譯、鏈接后,可形成獨立執行的exe文件。
(4).腳本語言是一種解釋性的語言,例如vbscript,javascript,installshield script等等,它不象c/c++

等可以編譯成二進制代碼,以可執行文件的形式存在.
腳本語言不需要編譯,可以直接用,由解釋器來負責解釋。
(5).腳本語言一般都是以文本形式存在,類似于一種命令.

50.觀察者模式
被觀察者繼承Observable類
觀察者繼承Observer接口
在被觀察者之上添加觀察者對象
當被觀察者的值發生變化是通知觀察者進行更新
一個 observable 對象可以有一個或多個觀察者。觀察者可以是實現了 Observer 接口的任意對象。一

個 observable 實例改變后,調用 Observable 的 notifyObservers 方法的應用程序會通過調用觀察者

的 update 方法來通知觀察者該實例發生了改變。
事件監聽就是用這種模式

51.用Porperites文件來保存實際上就是創建一個Properites文件,在程序關閉的時候,將數據寫入文件

,再等程序啟動的時候,從這個Properties文件中讀出數據。

52.Object serialization的定義
Object serialization 允許你將實現了Serializable接口的對象轉換為字節序列,這些字節序列可以被

完全存儲以備以后重新生成原來的對象。
有實現Serializable借口的對象才能寫入ObjectOutputStream,用這個stream可以直接傳輸Java對象,

不管是通過 socket在網絡上傳還是寫入本地文件系統。這個接口沒有方法,其存在的意義就是識別能通

過ObjectOutputStream傳送的對象。至于為什么這樣在RMI的FAQ中有解釋,主要是防止程序員無意或胡

亂的用ObjectOutputStream寫對象。
Serializable這個接口只是一個標識接口,沒有任何方法,主要是用于實例的序列化。只要有類實現了

這個接口,就等于告訴jvm這個實例可以被序列化,只是起到一個標識的作用。在分布式系統中基本被要

求實現這個接口。"

53.java.lang.Class.getResource(String name)
查找帶有給定名稱的資源
java.lang.Thread.getContextClassLoader()
getContextClassLoader()
返回該線程的上下文 ClassLoader。
得到Classpath和當前類的絕對路徑的一些方法
1,FileTest.class.getResource("")
得到的是當前類FileTest.class文件的URI目錄。不包括自己!
2,FileTest.class.getResource("/")
得到的是當前的classpath的絕對URI路徑。
3,Thread.currentThread().getContextClassLoader().getResource("")
得到的也是當前ClassPath的絕對URI路徑。
4,FileTest.class.getClassLoader().getResource("")
得到的也是當前ClassPath的絕對URI路徑。
5,ClassLoader.getSystemResource("")
得到的也是當前ClassPath的絕對URI路徑。

54.abstract class和interface的區別
一:從語法定義的層面看
抽象類可以有自己的數據成員,也可以有非abstract的成員方法
而interface,只能有靜態的不能被修改的數據成員(也就是必須是static final的,不過在interface中一

般不定義數據成員),所有的成員方法都是abstract的.
從某種意義上說,interface是一種特殊形式的abstracr class.
二:從編程角度看
首先,abstract class在Java語言中表示的是一種繼承關系,一個類只能使用一次繼承關系。但是,一

個類卻可以實現多個interface。也許,這是Java語言的設計者在考慮Java對于多重繼承的支持方面的一

種折中考慮吧。
其次,在abstract class的定義中,我們可以賦予方法的默認行為。但是在interface的定義中,方法卻

不能擁有默認行為,為了繞過這個限制,必須使用委托,但是這會 增加一些復雜性,有時會造成很大的

麻煩。
三:從設計理念層面看abstract class和interface
前面已經提到過,abstarct class在Java語言中體現了一種繼承關系,要想使得繼承關系合理,父類和

派生類之間必須存在"is a"關系,即父類和派生類在概念本質上應該是相同的(參考文獻〔3〕中有關于

"is a"關系的大篇幅深入的論述,有興趣的讀者可以參考)。對于interface 來說則不然,并不要求

interface的實現者和interface定義在概念本質上是一致的,僅僅是實現了interface定義的契約而已。

為了使論述便于理解,下面將通過一個簡單的實例進行說明。
abstract class表示的是"is a"關系,interface表示的是"like a"關系

55.SOA
又稱面向服務的框架(Service oriented architecture),

56.java.awt.MediaTracker
MediaTracker類是一個跟蹤多種媒體對象狀態的實用工具類.媒體對象可以包括音頻剪輯和圖像,但目前

僅支持圖像
要使用媒體跟蹤器,需要創建一個 MediaTracker 實例,然后對每個要跟蹤的圖像調用其 addImage 方

法。另外,還可以為每個圖像分配一個惟一的標識符。此標識符可控制獲取圖像的優先級順序。它還可

用于標識可單獨等待的惟一圖像子集。具有較低 ID 的圖像比具有較高 ID 的圖像優先加載。

由于動畫圖像加載和繪制的多部分特性,跟蹤動畫圖像可能不是始終可用的,但這一功能的確受支持。

MediaTracker 在完成加載動畫圖像的第一幀之后就會認為動畫圖像已經加載完畢。這時,MediaTracker

會向所有等待者發出圖像已完全加載的信號。如果在第一幀加載完之后沒有 ImageObserver 查看此圖像

,則該圖像可能會自我刷新來保存資源(
waitForID(int id)
開始加載由此媒體跟蹤器跟蹤且具有指定標識符的所有圖像。

57. java.awt.Window
addNotify()
通過創建到其本機屏幕資源的連接,使此窗口變得可顯示。

58.java.awt.Container
paint(Graphics g)繪制容器
update(Graphics g)更新容器

59.java.awt.point
translate(int dx,int dy)平移(x,y)位置的點,沿x軸平移dx,沿Y軸平移dy,移動后得到(x+dx,y+dy)

60.java.awt.Component
createImage(int width,int height)
創建一幅用于雙緩沖的,可以在屏幕外繪制的圖像.
java.awt.Image
getGraphics()創建供繪制閉屏圖像使用的圖形上下文

61.輕量級(Lightweight)
輕量級的形容是相對于一些重量級的容器(如EJB 容器)來說的,Spring 的核心包在文件容量上只有不

到1MB 的大小,而使用Spring 核心包所需要的資源負擔也是很小的,您甚至可以在小型設備中使用

Spring 的核心包。

非侵入性(No intrusive)
框架原來的用意是提供一個架構的實現,讓開發人員可以在基于框架的基礎上,快速地開發出遵循架構

的所需的應用程序,然而有些框架一旦被使用,應用程序就與框架發生了依賴,例如大量使用了框架的

API,或直接繼承API 的某些類型等,都會使應用程序組件與框架發生依賴,而無法從框架中獨立出來,

更別說當中的組件可以直接重用到另一個應用程序之中。

容器(Container)
Spring 提供容器功能,容器可以管理對象的生命周期、對象與對象之間的依賴關系,您可以使用一個配

置文件(通常是XML),在上面定義好對象的名稱、如何產生(Prototype 方式或Singleton 方式)、哪

個對象產生之后必須設定成為某個對象的屬性等,在啟動容器之后,所有的對象都可以直接取用,不用

編寫任何一行程序代碼來產生對象,或是建立對象與對象之間的依賴關系。
換個更直白點的說明方式:容器是一個Java 所編寫的程序,原先必須自行編寫程序以管理對象關系,現

在容器都會自動幫您作好

62.典型地,一個java運行時刻以下面順序查找和加載類:
(1):在bootstrap列表中的類-這些是體現java平臺的類,例如在rt.jar中的類
(2):出現在擴展類列表中的類--這些類使用擴展機制框架來擴展java平臺,使用位于運行時刻環境

的/lib/ext目錄下的檔案文件
(3):這些類不使用-classpath命令行選項或CLASSPATH環境變量標識的擴展機制框架.

63.java.util.concurrent.atomic
類Atomic
getAndSet(long newValue)設置為給定值,并返回舊值

64.JVM本身包含了一個ClassLoader稱為Bootstrap ClassLoader,和JVM一樣, Bootstrap ClassLoader

是用本地代碼實現的,它負責加載核心Java Class(即所有java.*開頭的類)。另外JVM還會提供兩個

ClassLoader,它們都是用Java語言編寫的,由Bootstrap ClassLoader加載;其中 Extension

ClassLoader負責加載擴展的Java class(例如所有javax.*開頭的類和存放在JRE的ext目錄下的類),

Application ClassLoader負責加載應用程序自身的類。
在Java 1.2后,java class的加載采用所謂的委托模式(Delegation Modle),當調用一個

ClassLoader.loadClass()加載一個類的時候,將遵循以下的步驟:
1)檢查這個類是否已經被加載進來了?
2)如果還沒有加載,調用父對象加載該類
3)如果父對象無法加載,調用本對象的findClass()取得這個類

65.深層復制與淺層復制
將句柄傳入一個方法時,指向的仍然是相同的對象.
通常,我們調用一個方法是為了產生返回值,或者用它改變為其調用方法的那個對象的狀態(方法其

實就是我們向那個對象“發一條消息”的方式)。很少需要調用一個方法來處理它的參數;這叫作利用

方法的“副作用”(Side Effect)。
克隆時要注意的兩個關鍵問題是:幾乎肯定調用super.clone().以及注意將克隆設為public
Object.clone()會檢查原先的對象有多大,再為新對象騰出足夠多的內存,將所有二進制位從原來的對

象復制到新對象。這叫作“按位復制”,而且按一般的想法,這個工作應該是由clone()方法來做的。但

在Object.clone()正式開始操作前,首先會檢查一個類是否Cloneable,即是否具有克隆能力——換言之

,它是否實現了Cloneable接口。若未實現,Object.clone()就擲出一個CloneNotSupportedException違

例,指出我們不能克隆它。
Java對“是否等價”的測試并不對所比較對象的內部進行檢查,從而核實它們的值是否相同。==和!=運

算符只是簡單地對比句柄的內容。若句柄內的地址相同,就認為句柄指向同樣的對象,所以認為它們是

“等價”的。所以運算符真正檢測的是“由于別名問題,句柄是否指向同一個對象?”
只要沒有新增需要克隆的句柄,對Object.clone()的一個調用就能完成所有必要的復制--無論clone()是

在層次結構多深的一級定義的。
對Vector進行深層復制的先決條件:在克隆了Vector后,必須在其中遍歷,并克隆由Vector指向的每個

對象。


66.javascript的作用
頁面中的某個事件(點擊、選擇等)被JavaScript代碼捕捉到,JavaScript對事件涉及到的數據進行封

裝,封裝完成后以XML形式發送到服務器端,服務器端根據所給數據執行相應的查詢處理封裝出一份結果

返回給客戶端,客戶端JavaScript接收到返回結果后解析并展現在客戶端。

67.mysql 常識和基本操作
字段類型
1.INT[(M)]
   正常大小整數類型
2.DOUBLE[(M,D)] [ZEROFILL]
  正常大小(雙精密)浮點數字類型
3.DATE
   日期類型。支持的范圍是'1000-01-01'到'9999-12-31'。MySQL以'YYYY-MM-DD'格式來顯示
DATE值,但是允許你使用字符串或數字把值賦給DATE列
4.CHAR(M)
   定長字符串類型,當存儲時,總是是用空格填滿右邊到指定的長度
5.BLOB TEXT
   BLOB或TEXT類型,最大長度為65535(2^16-1)個字符。
6.VARCHAR
   變長字符串類型。


68.hibernate知識
當沒有設定column attribute的時候,hibernate缺省地使用JavaBean的屬性名作為字段名.

69.
檢查違例(Checked Exceptions)和不檢查違例(Unchecked Exceptions)
在Exception 的子類中有一個非常重要的類:RuntimeException(2)。Java中將自它或者它的子類衍生

出來的任何違例都稱作“不檢查違例” (Unchecked Exceptions),自其他Exception子類衍生出來的

違例都稱作“檢查違例”(Checked Exceptions)(3)。不檢查違例包括的問題主要有:造型錯誤,數

組越界存取,空指針訪問等,這些問題一般來說都是你程序編寫的問題。簡單地說,不檢查違例就是那

些由編譯器來檢查而無需你程序中控制的違例。而檢查違例是指那些你必須處理的違例,否則編譯時會

產生一個編譯錯誤。你可以選擇下面任意一種方法來處理它:

70.aop.oop
OOP(面向對象編程)針對業務處理過程的實體及其屬性和行為進行抽象封裝,以獲得更加清晰高效的邏輯

單元劃分.
AOP(面向切面編程)針對業務處理過程中的切面進行提取,它所面對的是處理過程中的某個步驟或階段,

以獲得邏輯過程中各部分之間的低耦合性的隔離效果

71.Java 動態代理
Java動態代理類位于Java.lang.reflect包下,一般主要涉及到一下兩個類
(1).Interface.InvocationHandler:該接口中僅定義了一個方法:invoke(Object obj,Method

method,Object[] args).第一個參數一般是指代理類,method是被代理的方法,args為該方法的參數數組.

這個抽象方法在代理中動態實現.
(2).Proxy:該類即為動態代理類,作用類似于上例中的ProxySubject,其中主要包含以下內容:

Protected Proxy(InvocationHandler h):構造函數,估計用于給內部的h賦值。

Static Class getProxyClass (ClassLoader loader, Class[] interfaces):獲得一個代理類,其中

loader是類裝載器,interfaces是真實類所擁有的全部接口的數組。

Static Object newProxyInstance(ClassLoader loader, Class[] interfaces, InvocationHandler h)

:返回代理類的一個實例,返回后的代理類可以當作被代理類使用(可使用被代理類的在Subject接口中

聲明過的方法)。

72. MYSQL學習
/0 一個ASCII 0(NUL)字符
/n 一個新行符
/t一個定位符
/r 一個回車符
/b 一個退格符
/' '
/" "
// /
/% %
/_ _


十六進制數
在字符串上下文,它們表現類似于一個二進制字符串,這里每一對十六進制數字被變換為一個字符。
mysql> select 0x5061756c;
-> Paul

當使用文本文件導入或導出格式(LOAD DATA INFILE, SELECT ... INTO OUTFILE)時,NULL可以用/N表示

。見7.16 LOAD DATA INFILE句法。

列類型
如果指定了ZEROFILL 會自動地增加UNSIGNED屬性
類型 有符號范圍 無符號范圍
TINYINT -128--127 0-255
SMALLINT -32768--32767 0-65535
MEDIUMINT -8388608--8388607 0-16777215
INT -2147483648-2147483647 0-4294967295
INTEGER INT的一個同義詞
BIGINT -9223372036854775808 18446744073709551615

FLOAT -3.402823466E+38到-1.175494351E-38 1.175494351E-38到3.402823466E+38
DOUBLE -1.7976931348623157E+308到-2.2250738585072014E-308 0和2.2250738585072014E-308到

1.7976931348623157E+308
DOUBLE PRECISION[(M,D)] [ZEROFILL]
REAL DOUBLE的同義詞
DECIMAL 一個未壓縮(unpack)的浮點數字。不能無符號。行為如同一個CHAR列
NUMERIC(M,D) [ZEROFILL] 這是DECIMAL的一個同義詞。

DATE '1000-01-01'到'9999-12-31' 以'YYYY-MM-DD'格式來顯示DATE值
DATETIME '1000-01-01 00:00:00'到'9999-12-31 23:59:59' 'YYYY-MM-DD HH:MM:SS'
TIMESTAMP '1970-01-01 00:00:00'到2037年的某時 以YYYYMMDDHHMMSS、YYMMDDHHMMSS、YYYYMMDD或

YYMMDD格式來顯示TIMESTAMP值
TIME 一個時間。范圍是'-838:59:59'到'838:59:59'
YEAR[(2|4)] MySQL以YYYY格式來顯示YEAR值

CHAR(M) [BINARY] M的范圍是1 ~ 255個字符
[NATIONAL] VARCHAR(M) [BINARY] M的范圍是1 ~ 255個字符

TINYBLOB
TINYTEXT 一個BLOB或TEXT列,最大長度為255(2^8-1)個字符。
BLOB
TEXT


MEDIUMBLOB
一個BLOB或TEXT列,最大長度為65535(2^16-1)個字符。見7.7.1 隱式列指定變化。
LONGBLOB
LONGTEXT
一個BLOB或TEXT列,最大長度為4294967295(2^32-1)個字符。見7.7.1 隱式列指定變化
ENUM('value1','value2',...) 一個ENUM最多能有65535不同的值。
SET('value1','value2',...) 一個SET最多能有64個成員。

一個表最多可有16個索引,一個索引可以由最多15個列組成


運算符
mysql> SELECT 0 = 'x6';
-> 1
<>  != 不等于
<=> 安全等于Null

INTERVAL(N,N1,N2,N3,...)
如果N< N1,返回0,如果N< N2,返回1等等。所有的參數被當作整數。為了函數能正確地工作,它要求

N1<N2<N3< ...<Nn。這是因為使用二進制搜索(很快)。
expr REGEXP pat  
expr RLIKE pat
執行一個字符串表達式expr對一個模式pat的模式匹配。模式可以是一個擴充的正則表達式。見MySQL 正

則表達式句法的 H 描述.如果expr匹配pat,返回1,否則返回0。RLIKE是REGEXP的一個同義詞,提供了

與mSQL的兼容性。注意:因為MySQL在字符串中使用C轉義語法(例如,“/n”), 你必須在你的REGEXP字

符串重復任何“/”。在MySQL3.23.4中,REGEXP對于正常的(不是二進制)字符串是忽略大小寫。
STRCMP(expr1,expr2) 比較
如果字符串相同,STRCMP()回來0,如果第一參數根據當前的排序次序小于第二個,返回-1,否則返回1

。

BINARY
BINARY操作符強制跟隨它后面的字符串為一個二進制字符串。即使列沒被定義為BINARY或BLOB,這是一

個強制列比較區分大小寫的簡易方法

IFNULL(expr1,expr2)
如果expr1不是NULL,IFNULL()返回expr1,否則它返回expr2。IFNULL()返回一個數字或字符串值,取決

于它被使用的上下文環境。
IF(expr1,expr2,expr3)
如果expr1是TRUE(expr1<>0且expr1<>NULL),那么IF()返回expr2,否則它返回expr3。IF()返回一個數

字或字符串值,取決于它被使用的上下文。
CASE value WHEN [compare-value] THEN result [WHEN [compare-value] THEN result ...] [ELSE

result] END
CASE WHEN [condition] THEN result [WHEN [condition] THEN result ...] [ELSE result] END
第一個版本返回result,其中value=compare-value。第二個版本中如果第一個條件為真,返回result。

如果沒有匹配的result值,那么結果在ELSE后的result被返回。如果沒有ELSE部分,那么NULL被返回。

數學函數
所有的數學函數在一個出錯的情況下返回NULL。
FLOOR(X) 返回不大于X的最大整數值
CEILING(X) 返回不小于X的最小整數值
ROUND(X) 返回參數X的四舍五入的一個整數。
EXP(X) 返回值e(自然對數的底)的X次方。
RAND()
RAND(N)
返回在范圍0到1.0內的隨機浮點值。如果一個整數參數N被指定,它被用作種子值。
LEAST(X,Y,...)
有2和2個以上的參數,返回最小(最小值)的參數。參數使用下列規則進行比較:
如果返回值被使用在一個INTEGER上下文,或所有的參數都是整數值,他們作為整數比較。
如果返回值被使用在一個REAL上下文,或所有的參數是實數值,他們作為實數比較。
如果任何參數是一個大小敏感的字符串,參數作為大小寫敏感的字符串被比較。
在其他的情況下,參數作為大小寫無關的字符串被比較。
TRUNCATE(X,D)
返回數字X,截斷為D位小數。如果D為0,結果將沒有小數點或小數部分。

字符串函數
如果結果的長度大于服務器參數max_allowed_packet,字符串值函數返回NULL
對于針對字符串位置的操作,第一個位置被標記為1
ASCII(str)
返回字符串str的最左面字符的ASCII代碼值。如果str是空字符串,返回0。如果str是NULL,返回NULL。
ORD(str)
如果字符串str最左面字符是一個多字節字符,通過以格式((first byte ASCII code)*256+(second

byte ASCII code))[*256+third byte ASCII code...]返回字符的ASCII代碼值來返回多字節字符代碼。

如果最左面的字符不是一個多字節字符。返回與ASCII()函數返回的相同值
CONV(N,from_base,to_base)
在不同的數字基之間變換數字。返回數字N的字符串數字,從from_base基變換為to_base基,如果任何參

數是NULL,返回NULL。參數N解釋為一個整數,但是可以指定為一個整數或一個字符串。最小基是2且最

大的基是36。如果to_base是一個負數,N被認為是一個有符號數,否則,N被當作無符號數。 CONV以64

位點精度工作。
BIN(N)
返回二進制值N的一個字符串表示,在此N是一個長整數(BIGINT)數字,這等價于CONV(N,10,2)。如果N是

NULL,返回NULL。
OCT(N)
返回八進制值N的一個字符串的表示,在此N是一個長整型數字,這等價于CONV(N,10,8)。如果N是NULL,

返回NULL。
HEX(N)
返回十六進制值N一個字符串的表示,在此N是一個長整型(BIGINT)數字,這等價于CONV(N,10,16)。如果

N是NULL,返回NULL。
CHAR(N,...)
CHAR()將參數解釋為整數并且返回由這些整數的ASCII代碼字符組成的一個字符串。NULL值被跳過。
CONCAT(str1,str2,...)
返回來自于參數連結的字符串。如果任何參數是NULL,返回NULL。可以有超過2個的參數。一個數字參數

被變換為等價的字符串形式。
LENGTH(str)
OCTET_LENGTH(str)
CHAR_LENGTH(str)
CHARACTER_LENGTH(str)
返回字符串str的長度

LOCATE(substr,str)
POSITION(substr IN str)
返回子串substr在字符串str第一個出現的位置,如果substr不是在str里面,返回0.

LOCATE(substr,str,pos)
返回子串substr在字符串str第一個出現的位置,從位置pos開始。如果substr不是在str里面,返回0。

INSTR(str,substr)
返回子串substr在字符串str中的第一個出現的位置。這與有2個參數形式的LOCATE()相同,除了參數被

顛倒。

LPAD(str,len,padstr)
返回字符串str,左面用字符串padstr填補直到str是len個字符長。

RPAD(str,len,padstr)
返回字符串str,右面用字符串padstr填補直到str是len個字符長。

LEFT(str,len)
返回字符串str的最左面len個字符。

RIGHT(str,len)
返回字符串str的最右面len個字符。

SUBSTRING(str,pos,len)

SUBSTRING(str FROM pos FOR len)

MID(str,pos,len)
從字符串str返回一個len個字符的子串,從位置pos開始。使用FROM的變種形式是ANSI SQL92語法。

SUBSTRING(str,pos)
SUBSTRING(str FROM pos)
從字符串str的起始位置pos返回一個子串

SUBSTRING_INDEX(str,delim,count)
返回從字符串str的第count個出現的分隔符delim之后的子串。如果count是正數,返回最后的分隔符到

左邊(從左邊數) 的所有字符。如果count是負數,返回最后的分隔符到右邊的所有字符(從右邊數)。

LTRIM(str)
返回刪除了其前置空格字符的字符串str。

RTRIM(str)
返回刪除了其拖后空格字符的字符串str。

TRIM([[BOTH | LEADING | TRAILING] [remstr] FROM] str)
返回字符串str,其所有remstr前綴或后綴被刪除了。如果沒有修飾符BOTH、LEADING或TRAILING給出,

BOTH被假定。如果remstr沒被指定,空格被刪除。

SOUNDEX(str)
返回str的一個同音字符串。聽起來“大致相同”的2個字符串應該有相同的同音字符串。一個“標準”

的同音字符串長是4個字符,但是SOUNDEX()函數返回一個任意長的字符串。你可以在結果上使用

SUBSTRING()得到一個“標準”的 同音串。所有非數字字母字符在給定的字符串中被忽略。所有在A-Z之

外的字符國際字母被當作元音

SPACE(N)
返回由N個空格字符組成的一個字符串。

REPLACE(str,from_str,to_str)
返回字符串str,其字符串from_str的所有出現由字符串to_str代替。

REPEAT(str,count)
返回由重復countTimes次的字符串str組成的一個字符串。如果count <= 0,返回一個空字符串。如果

str或count是NULL,返回NULL

REVERSE(str)
返回顛倒字符順序的字符串str。

INSERT(str,pos,len,newstr)
返回字符串str,在位置pos起始的子串且len個字符長得子串由字符串newstr代替。

ELT(N,str1,str2,str3,...)
如果N= 1,返回str1,如果N= 2,返回str2,等等。如果N小于1或大于參數個數,返回NULL。ELT()是

FIELD()反運算。

FIELD(str,str1,str2,str3,...)
返回str在str1, str2, str3, ...清單的索引。如果str沒找到,返回0。FIELD()是ELT()反運算。

FIND_IN_SET(str,strlist)
如果字符串str在由N子串組成的表strlist之中,返回一個1到N的值。一個字符串表是被“,”分隔的子

串組成的一個字符串。如果第一個參數是一個常數字符串并且第二個參數是一種類型為SET的列,

FIND_IN_SET()函數被優化而使用位運算!如果str不是在strlist里面或如果strlist是空字符串,返回0

。如果任何一個參數是NULL,返回NULL。如果第一個參數包含一個“,”,該函數將工作不正常

MAKE_SET(bits,str1,str2,...)
返回一個集合 (包含由“,”字符分隔的子串組成的一個字符串),由相應的位在bits集合中的的字符串

組成。str1對應于位0,str2對應位1,等等。在str1, str2, ...中的NULL串不添加到結果中。

EXPORT_SET(bits,on,off,[separator,[number_of_bits]])
返回一個字符串,在這里對于在“bits”中設定每一位,你得到一個“on”字符串,并且對于每個復位

(reset)的位,你得到一個“off”字符串。每個字符串用“separator”分隔(缺省“,”),并且只有

“bits”的“number_of_bits” (缺省64)位被使用。


LCASE(str)
LOWER(str)
返回字符串str,根據當前字符集映射(缺省是ISO-8859-1 Latin1)把所有的字符改變成小寫。該函數對

多字節是可靠

UCASE(str)
UPPER(str)
返回字符串str,根據當前字符集映射(缺省是ISO-8859-1 Latin1)把所有的字符改變成大寫。該函數對

多字節是可靠的。

LOAD_FILE(file_name)
讀入文件并且作為一個字符串返回文件內容。文件必須在服務器上,你必須指定到文件的完整路徑名,

而且你必須有file權限。文件必須所有內容都是可讀的并且小于max_allowed_packet。如果文件不存在

或由于上面原因之一不能被讀出,函數返回NULL。


日期和時間函數
DAYOFWEEK(date)
返回日期date的星期索引(1=星期天,2=星期一, ……7=星期六)。這些索引值對應于ODBC標準。
WEEKDAY(date)
返回date的星期索引(0=星期一,1=星期二, ……6= 星期天)。
DAYOFMONTH(date)
返回date的月份中日期,在1到31范圍內。
DAYOFYEAR(date)
返回date在一年中的日數, 在1到366范圍內。
MONTH(date)
返回date的月份,范圍1到12。
DAYNAME(date)
返回date的星期名字。
MONTHNAME(date)
返回date的月份名字。
QUARTER(date)
返回date一年中的季度,范圍1到4
WEEK(date)
WEEK(date,first)
對于星期天是一周的第一天的地方,有一個單個參數,返回date的周數,范圍在0到52。2個參數形式

WEEK()允許你指定星期是否開始于星期天或星期一。如果第二個參數是0,星期從星期天開始,如果第二

個參數是1,從星期一開始。
YEAR(date)
返回date的年份,范圍在1000到9999。
HOUR(time)
返回time的小時,范圍是0到23。
MINUTE(time)
返回time的分鐘,范圍是0到59。
SECOND(time)
回來time的秒數,范圍是0到59。
PERIOD_ADD(P,N)
增加N個月到階段P(以格式YYMM或YYYYMM)。以格式YYYYMM返回值。注意階段參數P不是日期值。
PERIOD_DIFF(P1,P2)
返回在時期P1和P2之間月數,P1和P2應該以格式YYMM或YYYYMM。注意,時期參數P1和P2不是日期值

TIME_FORMAT(time,format)
這象上面的DATE_FORMAT()函數一樣使用,但是format字符串只能包含處理小時、分鐘和秒的那些格式修

飾符。其他修飾符產生一個NULL值或0
CURDATE()
CURRENT_DATE
以'YYYY-MM-DD'或YYYYMMDD格式返回今天日期值,取決于函數是在一個字符串還是數字上下文被使用。
mysql> select CURDATE();
-> '1997-12-15'
mysql> select CURDATE() + 0;
-> 19971215
CURTIME()
CURRENT_TIME
以'HH:MM:SS'或HHMMSS格式返回當前時間值,取決于函數是在一個字符串還是在數字的上下文被使用
NOW()  
SYSDATE()  
CURRENT_TIMESTAMP
以'YYYY-MM-DD HH:MM:SS'或YYYYMMDDHHMMSS格式返回當前的日期和時間,取決于函數是在一個字符串還

是在數字的上下文被使用。
UNIX_TIMESTAMP()
UNIX_TIMESTAMP(date)
如果沒有參數調用,返回一個Unix時間戳記(從'1970-01-01 00:00:00'GMT開始的秒數)。如果

UNIX_TIMESTAMP()用一個date參數被調用,它返回從'1970-01-01 00:00:00' GMT開始的秒數值。date可

以是一個DATE字符串、一個DATETIME字符串、一個TIMESTAMP或以YYMMDD或YYYYMMDD格式的本地時間的一

個數字。
FROM_UNIXTIME(unix_timestamp)
以'YYYY-MM-DD HH:MM:SS'或YYYYMMDDHHMMSS格式返回unix_timestamp參數所表示的值,取決于函數是在

一個字符串還是或數字上下文中被使用。
FROM_UNIXTIME(unix_timestamp,format)
返回表示 Unix 時間標記的一個字符串,根據format字符串格式化。format可以包含與DATE_FORMAT()函

數列出的條目同樣的修飾符。
SEC_TO_TIME(seconds)
返回seconds參數,變換成小時、分鐘和秒,值以'HH:MM:SS'或HHMMSS格式化,取決于函數是在一個字符

串還是在數字上下文中被使用
TIME_TO_SEC(time)
返回time參數,轉換成秒。

其他函數
DATABASE()
返回當前的數據庫名字
USER()  
SYSTEM_USER()  
SESSION_USER()
返回當前MySQL用戶名。
ENCRYPT(str[,salt])
使用Unix crypt()系統調用加密str。salt參數應該是一個有2個字符的字符串。(MySQL 3.22.16中,

salt可以長于2個字符。)
ENCODE(str,pass_str)
使用pass_str作為口令加密str。為了解密結果,使用DECODE()。結果是一個二進制字符串,如果你想要

在列中保存它,使用一個BLOB列類型。
DECODE(crypt_str,pass_str)
使用pass_str作為口令解密加密的字符串crypt_str。crypt_str應該是一個由ENCODE()返回的字符串。
MD5(string)
對字符串計算MD5校驗和。值作為一個32長的十六進制數字被返回可以,例如用作哈希(hash)鍵。
LAST_INSERT_ID([expr])
返回被插入一個AUTO_INCREMENT列的最后一個自動產生的值。見20.4.29 mysql_insert_id()。
FORMAT(X,D)
格式化數字X為類似于格式'#,###,###.##',四舍五入到D為小數。如果D為0,結果將沒有小數點和小數

部分。
VERSION()
返回表明MySQL服務器版本的一個字符串。
GET_LOCK(str,timeout)
試圖獲得由字符串str給定的一個名字的鎖定,第二個timeout為超時。如果鎖定成功獲得,返回1,如果

嘗試超時了,返回0,或如果發生一個錯誤,返回NULL(例如從存儲器溢出或線程用mysqladmin kill被殺

死)。當你執行RELEASE_LOCK()時、執行一個新的GET_LOCK()或線程終止時,一個鎖定被釋放。該函數可

以用來實現應用鎖或模擬記錄鎖,它阻止其他客戶用同樣名字的鎖定請求;贊成一個給定的鎖定字符串

名字的客戶可以使用字符串執行子協作建議的鎖定。
RELEASE_LOCK(str)
釋放字符串str命名的通過GET_LOCK()獲得的鎖。如果鎖被釋放,返回1,如果鎖沒被這個線程鎖定(在此

情況下鎖沒被釋放)返回0,并且如果命名的鎖不存在,返回NULL。如果鎖從來沒有通過調用GET_LOCK()

獲得或如果它已經被釋放了,鎖將不存在
BENCHMARK(count,expr)
BENCHMARK()函數重復countTimes次執行表達式expr,它可以用于計時MySQL處理表達式有多快。結果值

總是0。意欲用于mysql客戶,它報告查詢的執行時間。

與GROUP BY子句一起使用的函數
COUNT(expr)
返回由一個SELECT語句檢索出來的行的非NULL值的數目。
COUNT(DISTINCT expr,[expr...])
返回一個不同值的數目。
AVG(expr)
返回expr的平均值。
MIN(expr)
MAX(expr)
返回expr的最小或最大值。MIN()和MAX()可以有一個字符串參數;在這種的情況下,他們返回最小或最

大的字符串值
SUM(expr)
返回expr的和。注意,如果返回的集合沒有行,它返回NULL!
STD(expr)  
STDDEV(expr)
返回expr標準差(deviation)。這是對 ANSI SQL 的擴展。該函數的形式STDDEV()是提供與Oracle的兼容

性。
BIT_OR(expr)
返回expr里所有位的位或。計算用 64 位(BIGINT)精度進行。
BIT_AND(expr)
返回expr里所有位的位與。計算用 64 位(BIGINT)精度進行。


mysql> SELECT 0 = 'x6';
-> 1

擴展正則表達式的一些字符是:

“.”匹配任何單個的字符。
一個字符類“[...]”匹配在方括號內的任何字符。例如,“[abc]”匹配“a”、“b”或“c”。為了命

名字符的一個范圍,使用一個“-”。“[a-z]”匹配任何小寫字母,而“[0-9]”匹配任何數字。
“ * ”匹配零個或多個在它前面的東西。例如,“x*”匹配任何數量的“x”字符,“[0-9]*”匹配的

任何數量的數字,而“.*”匹配任何數量的任何東西。
正則表達式是區分大小寫的,但是如果你希望,你能使用一個字符類匹配兩種寫法。例如,“[aA]”匹

配小寫或大寫的“a”而“[a-zA-Z]”匹配兩種寫法的任何字母。
如果它出現在被測試值的任何地方,模式就匹配(只要他們匹配整個值,SQL模式匹配)。
為了定位一個模式以便它必須匹配被測試值的開始或結尾,在模式開始處使用“^”或在模式的結尾用“

$”。


69.在JavaSE程序中,我們一般使用classpath來作為存放資源的目的地。但是,在Web應用程序中,我們

一般使用classpath外面的WEB-INF及其子目錄作為資源文件的存放地。

相對路徑:相對與某個基準目錄的路徑.包含Web的相對路徑(HTML中的相對目錄),例如:在Servlet中,"/"

代表Web應用的根目錄,和物理路徑的相對表示,例如:"./"代表當前目錄,"../"代表上級目錄.這種類似的

表示,也屬于相對路徑.


70.關于JSP/Servlet中的相對路徑和絕對路徑
2.1服務器端的地址

   服務器端的相對地址指的是相對于你的web應用的地址,這個地址是在服務器端解析的
(不同于html和javascript中的相對地址,他們是由客戶端瀏覽器解析的)也就是說這時候
在jsp和servlet中的相對地址應該是相對于你的web應用,即相對于http://192.168.0.1/webapp/的。

  其用到的地方有:
forward:servlet中的request.getRequestDispatcher(address);這個address是
在服務器端解析的,所以,你要forward到a.jsp應該這么寫:
request.getRequestDispatcher(“/user/a.jsp”)這個/相對于當前的web應用webapp,
其絕對地址就是:http://192.168.0.1/webapp/user/a.jsp。
sendRedirect:在jsp中<%response.sendRedirect("/rtccp/user/a.jsp");%>

2.22、客戶端的地址

所有的html頁面中的相對地址都是相對于服務器根目錄(http://192.168.0.1/)的,
而不是(跟目錄下的該Web應用的目錄)http://192.168.0.1/webapp/的。
Html中的form表單的action屬性的地址應該是相對于服務器根目錄(http://192.168.0.1/)的,
所以,如果提交到a.jsp為:action="/webapp/user/a.jsp"或action="<%=request.getContextPath

()%>"/user/a.jsp;
  提交到servlet為actiom="/webapp/handleservlet"
  Javascript也是在客戶端解析的,所以其相對路徑和form表單一樣。
 因此,一般情況下,在JSP/HTML頁面等引用的CSS,Javascript.Action等屬性前面最好都加上
<%=request.getContextPath()%>,以確保所引用的文件都屬于Web應用中的目錄。
另外,應該盡量避免使用類似".","./","../../"等類似的相對該文件位置的相對路徑,這樣
當文件移動時,很容易出問題。

71.XHTML是The Extensible HyperText Markup Language(可擴展超文本標識語言)的縮寫。HTML是一種

基本的WEB網頁設計語言,XHTML是一個基于XML的置標語言,看起來與HTML有些相象,只有一些小的但重

要的區別,XHTML就是一個扮演著類似HTML的角色的XML,所以,本質上說,XHTML是一個過渡技術,結合

了部分XML的強大功能及大多數HTML的簡單特性。
XSLT是一種把XML文件轉換成XHTML文檔或者其他的XML文檔的語言
XPath是一種由于操作XML文檔的語言。

72.內連接時,返回查詢結果集合中的僅是符合查詢條件和連接條件的行.而采用外連接時,它返回到查詢

結果集合中不僅包含符合連接條件的行,而且還包含左表(左外連接時),右表(右外連接時)或兩個邊接表(

全外連接)中的所有數據行.

交叉連接不帶where子句,它返回被連接的兩個表所有數據行的笛卡爾積.返回到結果集合中的數據行等于

第一個表中符合查詢條件的數據行數乘以第二個表中符合查詢條件的數據行數.

73.所有的雙向關聯需要有一端被設置為inverse,在一對多中是多的一端,多對多任意

74.put方法
put方法的作用是將一個對象(value)加入到map中,它的key為(key)。如果key重復了,將替換掉舊的值

,并將舊值返回。如果key沒有重復,將新的值插入。該部分代碼如下(有刪節):

75.
1、 MAP
特點:同鍵的新值將覆蓋舊值。
2、Set
特點:無序排列,不會存在重復的值,添加重復值也不會報錯.Set可以加入null值
3、List
特點:有序排序,可以加入重復的元素
4、Collections
特點:Collections.class是集合的工具方法類
5、Properties
特點:Properties繼承自Hashtable,是Map的一個實現。不過它在讀取Properties文件方法特別方便

76.frame跳轉
java.io.PrintWriter out1 = response.getWriter();
out1.println("<html>");
out1.println("<script>");
out1.println("window.open ('../login.jsp', '_top')");
out1.println("</script>");
out1.println("</html>");

77.
  把Putty下載到機器上,雙擊putty.exe,就出現如圖1的配置界面。選擇“Session”,在“Host

Name(or IP address)”輸入框中輸入欲訪問的主機名或IP,比如server1或192.168.9.4。端口號(Port

)根據使用的協議有所區別,ssh 默認使用22,telnet默認使用23,rlogin默認使用513。在“Protocol

”單選欄中選擇使用的協議,一般是telnet或ssh,這取決于服務器提供的服務。在“Saved Session”

輸入欄中輸入任務的名字,單擊“Save”按鈕,就可以把任務配置保存起來了。

78.中斷線程的方法:1.共享變量 2.interrupt

79.在Java中,一個類用其完全匹配類名(fully qualified class name)作為標識,這里指的完全匹配類

名包括包名和類名。但在JVM中一個類用其全名和一個加載類ClassLoader的實例作為唯一標識。因此,

如果一個名為Pg的包中,有一個名為Cl的類,被類加載器KlassLoader的一個實例kl1加載,Cl的實例,

即C1.class在JVM中表示為 (Cl, Pg, kl1)。這意味著兩個類加載器的實例(Cl, Pg, kl1) 和 (Cl, Pg,

kl2)是不同的,被它們所加載的類也因此完全不同,互不兼容的。那么在JVM中到底有多少種類加載器的

實例?下一節我們揭示答案。

1.JDBC事務
事務是將一些SQL語句作為一個整體來很執行,要么所有語句全部完成,要么一條語句都不執行。當調用方法commit或rollback時,當前事務即告結束,另一個事務隨即開始。

缺省情況下,新連接將于自動提交的模式,也就是說,當執行完語句后,將自動對那個語句調用commit方法。這種情況下,由于每個語句都是被單獨提交的,因此,一個事務只由一個語句組成。如果禁用自動提交模式,事務將要等到commit或rollback方法被顯式調用才結束,因此,它將包括上一次調用commt或 rollback方法以來所有執行過的語句。對于第二種情況,事務中的所有語句將作為組來提交或還原。

java學習小知識集錦2


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦?。?!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 免费看色 | 久久亚洲精中文字幕冲田杏梨 | 另类综合图片 | 深夜成人影院 | 99精品国产成人一区二区 | 欧洲成人在线视频 | 99热国产这里只有精品9九 | 国产在线乱子伦一区二区 | 久久99国产精品久久欧美 | 国产精品你懂的在线播放 | 国产萝控精品福利视频免费 | 免费看h片网站 | 亚洲天天干 | 中国性孕妇xxxxxxxx孕交 | 欧美综合色网 | 日本不卡高清中文字幕免费 | 色网在线免费观看 | 五月天激情亚洲婷婷在线 | 越南黄色录像 | 二级毛片在线观看 | 97国产成人精品视频 | 日本操比 | 久久99中文字幕 | 日韩久久网 | 91青娱国产 | 国产午夜亚洲精品久久999 | 亚洲精品入口一区二区在线观看 | 欧美一级一极性活片免费观看 | 国产成版人视频网站免费下 | 曰本一级毛片 | 免费福利在线视频 | 国产成人精品免费午夜 | 久久爱www. | 日本深夜影院 | 日本一级毛片在线观看 | 五月婷婷啪 | 九九热视 | 伊人激情网 | 天天搞天天操 | 四虎影院在线播放 | 国产成人精品日本亚洲语音1 |