代碼命名規范工程總述本項目的整體命名規范,在Java語言的命名規范的基礎上,做出更符合這次項目開發的規定,下面的表格是Java命名規范的一些規定,之后的分述中,我們還有更詳盡的約束。
JFCUnit使得你能夠為Java偏移應用程序編寫測試例子。它為從用代碼打開的窗口上獲得句柄提供了支持;為在一個部件層次定位部件提供支持;為在部件中發起事件(例如按一個按鈕)以及以線程安全方式處理部件測試提供支持。Cactus是一個基于JUnit框架的簡單測試框架,用來單元測試服務端Java代碼。Cactus框架的主要目標是能夠單元測試服務端的使用Servlet對象的Java方法如HttpServletRequest,HttpServletResponse,HttpSession等針對外部可測試組件運行時,需要把JUnit測試運行為發送HTTP請求給組件的客戶端進程。為了在服務器容器內部運行JUnit測試,可以用Cactus框架,它是一個免費的開源框架,是Apache Jakarta項目的一部分。Cactus 包含了關于JUnit客戶端如何連接到服務器,然后使測試運行的詳細信息。
線程的創建和啟動,Java語言已經內置了多線程支持,所有實現Runnable接口的類都可被啟動一個新線程,新線程會執行該實例的run()方法,當run()方法執行完畢后,線程就結束了。一旦一個線程執行完畢,這個實例就不能再重新啟動,只能重新生成一個新實例,再啟動一個新線程。Thread類是實現了Runnable接口的一個實例,它代表一個線程的實例,并且,啟動線程的唯一方法就是通過Thread類的start()實例方法()。
一,網絡編程中兩個主要的問題一個是如何準確的定位網絡上一臺或多臺主機,另一個就是找到主機后如何可靠高效的進行數據傳輸。在TCP/IP協議中IP層主要負責網絡主機的定位,數據傳輸的路由,由IP地址可以唯一地確定Internet上的一臺主機。而TCP層則提供面向應用的可靠(tcp)的或非可靠(UDP)的數據傳輸機制,這是網絡編程的主要對象,一般不需要關心IP層是如何處理數據的。目前較為流行的網絡編程模型是客戶機/服務器(C/S)結構。即通信雙方一方作為服務器等待客戶提出請求并予以響應。
Java技術與Java虛擬機說起Java,人們首先想到的是Java編程語言,然而事實上,Java是一種技術,它由四方面組成:Java編程語言、Java類文件格式、Java虛擬機和Java應用程序接口(Java API)。它們的關系如下圖所示:圖1??Java四個方面的關系運行期環境代表著Java平臺,開發人員編寫Java代碼(.java文件),然后將之編譯成字節碼(.class文件)。最后字節碼被裝入內存,一旦字節碼進入虛擬機,它就會被解釋器解釋執行,或者是被即時代碼發生器有選擇的轉換成機器碼執行。從上圖也可以看出Java平臺由Java虛擬機和Java應用程序接口搭建,Java語言則是進入這個平臺的通道,用Java語言編寫并編譯的程序可以運行在這個平臺上。這個平臺的結構如下圖所示:在Java平臺的結構中,可以看出,Java虛擬機(JVM)處在核心的位置,是程序與底層操作系統和硬件無關的關鍵。它的下方是移植接口,移植接口由兩部分組成:適配器和Java操作系統,其中依賴于平臺的部分稱為適配器;JVM通過移植接口在具體的平臺和操作系統上實現;在JVM的上方是Java的基本類庫和擴展類庫以及它們的API,利用JavaAPI編寫的應用程序(application)和小程序(Javaapplet)可以在任何Java平臺上運行而無需考慮底層平臺,就是因為有Java虛擬機(JVM)實現了程序與操作系統的分離,從而實現了Java的平臺無關性。那么到底什么是Java虛擬機(JVM)呢?通常我們談論JVM時,我們的意思可能是:對JVM規范的的比較抽象的說明;對JVM的具體實現;在程序運行期間所生成的一個JVM實例。對JVM規范的的抽象說明是一些概念的集合,它們已經在書《TheJavaVirtualMachineSpecification》(《Java虛擬機規范》)中被詳細地描述了;對JVM的具體實現要么是軟件,要么是軟件和硬件的組合,它已經被許多生產廠商所實現,并存在于多種平臺之上;運行Java程序的任務由JVM的運行期實例單個承擔。在本文中我們所討論的Java虛擬機(JVM)主要針對第三種情況而言。它可以被看成一個想象中的機器,在實際的計算機上通過軟件模擬來實現,有自己想象中的硬件,如處理器、堆棧、寄存器等,還有自己相應的指令系統。JVM在它的生存周期中有一個明確的任務,那就是運行Java程序,因此當Java程序啟動的時候,就產生JVM的一個實例;當程序運行結束的時候,該實例也跟著消失了。下面我們從JVM的體系結構和它的運行過程這兩個方面來對它進行比較深入的研究。
Java的堆是一個運行時數據區,類的實例(對象)從中分配空間。Java虛擬機(JVM)的堆中儲存著正在運行的應用程序所建立的所有對象,這些對象通過new、newarray、anewarray和multianewarray等指令建立,但是它們不需要程序代碼來顯式地釋放。一般來說,堆的是由垃圾回收來負責的,盡管JVM規范并不要求特殊的垃圾回收技術,甚至根本就不需要垃圾回收,但是由于內存的有限性,JVM在實現的時候都有一個由垃圾回收所管理的堆。垃圾回收是一種動態存儲管理技術,它自動地釋放不再被程序引用的對象,按照特定的垃圾收集算法來實現資源自動回收的功能。
一個好的用戶界面(GUI)的設計通常可以在現實世界找到相應的表現。例如,如果在您的面前擺放著一個類似于電腦鍵盤按鍵的一個簡單的按鈕,然而就是這么簡單的一個按鈕,我們就可以看出一個GUI設計的規則,它由兩個主要的部分構成,一部分使得它具有了按鈕應該具有的動作特性,例如可以被按下。另外一部分則負責它的表現,例如這個按鈕是代表了A還是B。 看清楚這兩點你就發現了一個很強大的設計方法,這種方法鼓勵重用reuse,而不是重新設計redesign。你發現按鈕都有相同的機理,你只要在按鈕的頂上噴上不同的字母便能制造出“不同”的按鈕,而不用為了每個按鈕而重新設計一份圖紙。這大大減輕了設計工作的時間和難度。 如果您把上述設計思想應用到軟件開發領域,那么取得相似的效果一點都不讓人驚奇。一個在軟件開發領域應用的非常廣泛的技術Model/View/Controller(MVC)便是這種思想的一個實現。
在JSTL提供了四個標簽庫(核心標簽庫、國際化標簽庫、數據庫標簽庫和XML標簽庫),涉及到了 幾十個標簽。雖然這些標簽可以完成比較復雜的工作,但它們仍然無法滿足程序中的特殊需求。因此,就 需要用戶根據自己的需要來定制JSP標簽,這種由用戶自己實現的JSP標簽被稱為自定義標簽。
5.1 使用AWT(Abstract Window Toolkit)構件<br> 5.2 包含構件的構件----構件容器(container)<br> 5.3 事件的傳遞<br> 5.4 各種構件的應用實例(一)<br> 5.5 外觀的管理與控制<br> 5.6 各種構件的應用實例(二)<br> 5.7 總結
如果你曾經用過Perl或任何其他內建正則表達式支持的語言,你一定知道用正則表達式處理文本和匹配模式是多么簡單。如果你不熟悉這個術語,那么“正則表達式”(RegularExpression)就是一個字符構成的串,它定義了一個用來搜索匹配字符串的模式。許多語言,包括Perl、PHP、Python、JavaScript和JScript,都支持用正則表達式處理文本,一些文本編輯器用正則表達式實現高級“搜索-替換”功能。那么Java又怎樣呢?本文寫作時,一個包含了用正則表達式進行文本處理的Java規范需求(SpecificationRequest)已經得到認可,你可以期待在JDK的下一版本中看到它。然而,如果現在就需要使用正則表達式,又該怎么辦呢?你可以從Apache.org下載源代碼開放的Jakarta-ORO庫。本文接下來的內容先簡要地介紹正則表達式的入門知識,然后以Jakarta-OROAPI為例介紹如何使用正則表達式。
在我們學習Java的過程中,掌握其中的基本概念對我們的學習無論是J2SE,J2EE,J2ME都是很重要的,J2SE是Java的基礎,所以有必要對其中的基本概念做以歸納,以便大家在以后的學習過程中更好的理解java的精髓,在此我總結了30條基本的概念。
基于HTTP的協議的網絡文件下載,工作原理建立在請求/響應模式(Request/Response)上:一個客戶端與服務器建立連接后,客戶端向Web服務器發出一個HTTP請求行;Web服務器在收到有效的請求后,返回一個狀態行或多個響應標題、一個空白行和相關文檔。HTTP協議使用的端口號,通常為80。開發基于http協議的網絡文件下載必須掌握HTTP協議,包括向服務器發送請求和獲取服務器響應狀態的過程。HTTP1.0協議不支持斷點續傳功能.本文用java提供了一個簡單的實現.
JavaME入門課程:目標<br> 了解JavaME平臺體系熟悉<br> JavaME開發平臺的搭建<br> 理解MIDlet應用程序的運行機制<br> 掌握開發、打包部署MIDlet應用的步驟<br>
掌握 EntityBean3.0的編寫<br> 開始引入SLSB的編寫,為下節內容打基礎<br> 掌握 JBOSS下EJB3 的部署。<br> 編寫調用SLSB的CLIENT,掌握JNDI的使用
一 插入排序 <br> 該算法在數據規模小的時候十分高效,該算法每次插入第K+1到前K個有序數組中一個合適位置,K從0開始到N-1,從而完成排序: <br> 二 冒泡排序 <br> 這可能是最簡單的排序算法了,算法思想是每次從數組末端開始比較相鄰兩元素,把第i小的冒泡到數組的第i個位置。i從0一直到N-1從而完成排序。(當然也可以從數組開始端開始比較相鄰兩元素,把第i大的冒泡到數組的第N-i個位置。i從0一直到N-1從而完成排序。) <br> 三,選擇排序 <br> 選擇排序相對于冒泡來說,它不是每次發現逆序都交換,而是在找到全局第i小的時候記下該元素位置,最后跟第i個元素交換,從而保證數組最終的有序。相對與插入排序來說,選擇排序每次選出的都是全局第i小的,不會調整前i個元素了。 四 Shell排序 <br>
線性表,鏈表,哈希表是常用的數據結構,在進行Java開發時,JDK已經為我們提供了一系列相應的類來實現基本的數據結構。這些類均在java.util包中。本文試圖通過簡單的描述,向讀者闡述各個類的作用以及如何正確使用這些類。