一、專有名詞
1‘ 容器
創建一種對象類型,持有對其他對象的引用,被稱為容器的新對象。在任何時候都可以擴充自己以容納置于其中的所有東西。
java在其標準類庫中包含了大量的容器。在某些類庫中,一兩個通用容器足以滿足所有的需要;但是在其他類庫中,具有不同的需要的各種類型的容器,如List,Map,Set,以及隊列,樹,堆棧等更多構件。
2‘ 異常處理:處理錯誤
異常處理將錯誤處理直接置于編程語言中,有時甚至置于OS中。異常是一種對象,從出錯地點被拋出,并被專門設計用來處理特定類型錯誤的相應的異常處理器捕獲。
3’并發編程
對于大量的問題,把問題分成多個可獨立運行的部分(任務),在程序中,這些彼此獨立運行的部分稱為線程,上述概念稱為“并發”。即為計算機編程的一個基本概念,在同一時刻處理多個任務的思想。
縣城只是一種為單一處理器分配執行時間的手段。如果OS支持多處理器,那么每個人物都可以被指派給不同的處理器,并且他們是真正地并行執行。多線程的優點之一就是程序員無需操心是多處理器還是單處理器。
并發也有一個隱患:共享資源。多個并行任務都要訪問一項資源,就會出問題。解決方法:某個任務鎖定某項資源,完成其任務,然后釋放資源鎖,使其他任務可以使用這項資源。
3‘ C/S
客戶/服務器系統的核心思想:系統具有一個中央信息存儲池(central ?repository ?of ?information),用來存儲某種數據,通常在于數據庫,可以根據需要將它分發給某些人員或機器集群。該概念的關鍵在于信息存儲池的位置集中于中央,可以被修改,并將修改傳播給信息消費者。
總之,信息存儲池、用于分發信息的軟件以及信息與軟件所駐留的機器或機群被總稱為服務器。
4’ 客戶端編程
通用網關接口(common ?gateway ?interface,CGI):由web服務器提供,接收提交動作并傳遞。
(1) 插件plug-in
將插件插入到瀏覽器適當的位置,以此來為瀏覽器添加新功能。例如google的瀏覽器可以很方便的下載并插入插件。
插件對于客戶端編程的價值在于:允許程序員不需經過瀏覽器生產商的許可,就可以開發某種語言擴展,并將它們添加到服務器中。因此,插件提供了一個“后門”,使得可以創建新的客戶端編程語言。
(2) 腳本語言scripting ?language
通過某些sl,可以將客戶端程序的源代碼直接嵌入到html頁面中,解釋這種語言的插件在html頁面被顯示時自動激活。
他們只是作為html頁面一部分的簡單文本,當服務器收到要獲取該頁面的請求時,可以被快速加載。缺點是代碼會暴露給任何人去瀏覽。
JS(java scripting),一種腳本語言在web瀏覽器不需要任何插件就可以得到支持。
5‘ 服務器端編程
常見情形是復雜的數據庫搜索請求,然后服務器將結果進行格式編排,使其成為一個html頁面發回給客戶端。
二、
1’ 用new創建一個新對象
程序運行時,對象的放置安排,內存的分配,有5個不同的地方可以存儲數據:
Ⅰ 寄存器:最快的存儲區,位于處理器內部。但是寄存器數量有限,所以寄存器根據需求進行分配。
Ⅱ 堆棧:位于通用RAM(隨機訪問存儲器)中,但通過堆棧指針可以從處理器那里獲得直接支持。堆棧指針若向下移動,則分配新的內存;若向上移動,則釋放那些內存。這種快速有效的分配存儲方法僅次于寄存器。
Ⅲ 堆:一種通用的的內存池(也位于RAM區),用于存放所有的java對象。堆不同于堆棧的好處:編譯器不需要存儲的數據在對立存活多長時間,因而在堆里分配存儲有很大的靈活性。用new創建一個對象時,被執行代碼時就會自動在堆里進行存儲分配。
Ⅳ 常量存儲:通常直接存放在程序代碼內部。有時候,在嵌入式系統中,常量本身會和其他部分隔離開,此時可以選擇將其存放在ROM(只讀存儲器)中。
Ⅴ 非ROM存儲:如果數據完全存活于程序之外,那么他可以不受程序的任何控制,在程序沒有運行時也可以存在。其中兩個基本的例子:流對象和持久化對象。流對象中,對象轉化為字節流,通常被發送給另一臺機器。持久化對象中,對象存放在磁盤上,即便程序終止也仍可保持自己的狀態。這種存儲方式的技巧在于:把對象轉化成可以存放在其他媒介上的事物,需要時可以恢復成常規的、基于RAM的對象。java提供了對輕量級持久化的支持,而諸如JDBC、Hibernate這樣的機制提供了更加復雜的對在數據庫中存儲和讀取對象信息的支持。
2‘ 基本類型
基本類型 | 大小 | 包裝器類型 |
boolean | ? | Boolean |
char | 16bit | Character |
byte | 8bit | Byte |
short | 16bit | Short |
int | 32bit | Integer |
long | 64bit | Long |
float | 32bit | Float |
double | 64bit | Double |
void | ? | ? |
基本類型具有的包裝器類,使得可以在堆中創建一個非基礎對象,用來表示對應的基本類型。
如: char ?c='x'; Character ?ch=new ? ?Characte(c);
或者 Character ? ch=new Character('x');
或者 Character ? ch='x'; //(java ?SE5的自動包裝功能自動將基本類型轉為包裝器類型)
并且可以反向轉換: char ?c=ch;
3' 代碼注釋和嵌入式文檔
注釋方法: ? /* .......
.....*/
或者 // ........
?
注釋文檔: 代碼同文檔“鏈接”,將所有東西放在同一個文件內。為實現這一目的,必須使用一種特殊的注釋語法來標記文檔,此外還需一個工具用于提取注釋,并將其轉換成有用的形式,此為java所需為。
javadoc便是用于提取注釋的工具,是JDK安裝的一部分。采用java編譯器的某些技術,查找程序內的特殊注釋標簽。他不僅解析由這些標簽標記的信息,也將毗鄰注釋的雷鳴或方法名提取出來。javadoc輸出的是一個html文件,可以用web瀏覽器查看。該工具只需文明創建和維護單一的源文件,便能自動生成有用的文檔。詳細敘述查看JDK文檔。
?