Thread 線程
它能鎖定任何對(duì)象占用的內(nèi)存(內(nèi)存實(shí)際是多種共享資源的一種),所以同一時(shí)間只能有一個(gè)線程使用特定的內(nèi)存空間。為達(dá)到這個(gè)目的,需要使用synchronized關(guān)鍵字。
瀏覽器最初只是純粹的查看程序,這是由于每次采取一些要求編程的操作時(shí),必須將信息反饋回服務(wù)器,在服務(wù)器那一端進(jìn)行處理。所以完全可能需要等待數(shù)秒乃至數(shù)分鐘的時(shí)間才會(huì)發(fā)現(xiàn)自己剛才拼錯(cuò)了一個(gè)單詞。這就叫作“客戶端編程”。
applet 程序片
時(shí)刻提醒自己注意以下幾個(gè)問題:
(1) 對(duì)象是什么?(怎樣將自己的項(xiàng)目分割成一系列單獨(dú)的組件?)
(2) 它們的接口是什么?(需要將什么消息發(fā)給每一個(gè)對(duì)象?)
在確定了對(duì)象和它們的接口后,便可著手編寫一個(gè)程序。出于對(duì)多方面原因的考慮,可能還需要比這更多的說明及文檔,但要求掌握的資料絕對(duì)不能比這還少。
想象成用遙控板(句柄)操縱電視機(jī)(對(duì)象)。只要握住這個(gè)遙控板,就相當(dāng)于掌握了與電視機(jī)連接的通道。但一旦需要“換頻道”或者“關(guān)小聲音”,我們實(shí)際操縱的是遙控板(句柄),再由遙控板自己操縱電視機(jī)(對(duì)象)。如果要在房間里四處走走,并想保持對(duì)電視機(jī)的控制,那么手上拿著的是遙控板,而非電視機(jī)。
此外,即使沒有電視機(jī),遙控板亦可獨(dú)立存在。
Heap 堆
Java對(duì)象本身永遠(yuǎn)都不會(huì)置入靜態(tài)存儲(chǔ)空間
wrapper 封裝器 Scope 作用域
class ATypeName {/*類主體置于這里}
這樣就引入了一種新類型,接下來便可用new創(chuàng)建這種類型的一個(gè)新對(duì)象:
ATypeName a = new ATypeName();
我們?cè)贘ava里的全部工作就是定義類、制作那些類的對(duì)象以及將消息發(fā)給那些對(duì)象
class DataOnly {
int i;
float f;
boolean b;
}
這個(gè)類并沒有做任何實(shí)質(zhì)性的事情,但我們可創(chuàng)建一個(gè)對(duì)象:
DataOnly d = new DataOnly();
可將值賦給數(shù)據(jù)成員,但首先必須知道如何引用一個(gè)對(duì)象的成員。為達(dá)到引用對(duì)象成員的目的,首先要寫上對(duì)象句柄的名字,再跟隨一個(gè)點(diǎn)號(hào)(句點(diǎn)),再跟隨對(duì)象內(nèi)部成員的名字。即“對(duì)象句柄.成員”。例如:
d.i = 47;
d.f = 1.1f;
d.b = false;
Method 方法
Java的方法只能作為類的一部分創(chuàng)建。只能針對(duì)某個(gè)對(duì)象調(diào)用一個(gè)方法
import的作用是指示編譯器導(dǎo)入一個(gè)“包”——或者說一個(gè)“類庫”