類(lèi)和對(duì)象
對(duì)象:對(duì)象是類(lèi)的一個(gè)實(shí)例余舶,有狀態(tài)和行為。
創(chuàng)建對(duì)象:聲明发绢,new 實(shí)例化硬耍,調(diào)用構(gòu)造方法初始化對(duì)象。
類(lèi):描述一類(lèi)對(duì)象的行為和狀態(tài)朴摊,是一個(gè)模板。
局部變量:聲明在方法此虑、構(gòu)造方法或者語(yǔ)句塊中甚纲。在方法、構(gòu)造方法朦前、或者語(yǔ)句塊被執(zhí)行的時(shí)候創(chuàng)建介杆,當(dāng)它們執(zhí)行完成后鹃操,變量將會(huì)被銷(xiāo)毀。
成員變量:聲明在一個(gè)類(lèi)中春哨,在方法荆隘、構(gòu)造方法和語(yǔ)句塊之外。在對(duì)象創(chuàng)建的時(shí)候創(chuàng)建赴背,在對(duì)象被銷(xiāo)毀的時(shí)候銷(xiāo)毀椰拒。
類(lèi)變量:靜態(tài)變量,在類(lèi)中以static關(guān)鍵字聲明凰荚,在方法構(gòu)造方法和語(yǔ)句塊之外燃观。常用于常量。靜態(tài)變量在第一次被訪問(wèn)時(shí)創(chuàng)建便瑟,在程序結(jié)束時(shí)銷(xiāo)毀缆毁。
抽象類(lèi):abstract class
不能實(shí)例化對(duì)象,必須被繼承到涂,只有抽象類(lèi)的非抽象子類(lèi)可以創(chuàng)建對(duì)象脊框。
一個(gè)類(lèi)只能繼承一個(gè)抽象類(lèi),卻能實(shí)現(xiàn)多個(gè)接口践啄。
抽象類(lèi)中的方法只是聲明浇雹,不給出方法的具體實(shí)現(xiàn)功能。
抽象類(lèi)的非抽象子類(lèi)必須給出抽象類(lèi)中的抽象方法的具體實(shí)現(xiàn)往核。
構(gòu)造方法箫爷,類(lèi)方法(用 static 修飾的方法)不能聲明為抽象方法。
抽象方法
抽象父類(lèi)中定義聂儒,該方法的具體實(shí)現(xiàn)由子類(lèi)確定虎锚。
抽象類(lèi)中不一定包含抽象方法,但是有抽象方法的類(lèi)必定是抽象類(lèi)衩婚。
繼承:extends
子類(lèi)繼承父類(lèi)的特征和行為窜护,使得子類(lèi)對(duì)象(實(shí)例)具有父類(lèi)的實(shí)例域和方法。
重寫(xiě)和重載
重寫(xiě):子類(lèi)對(duì)父類(lèi)中允許訪問(wèn)的方法的實(shí)現(xiàn)過(guò)程進(jìn)行重新編寫(xiě), 返回值和形參都不能改變非春。
重載:在一個(gè)類(lèi)里柱徙,方法名字相同,而參數(shù)不同奇昙。返回類(lèi)型可以相同也可以不同护侮。
多態(tài)
同一接口,使用不同的實(shí)例而執(zhí)行不同操作储耐。
三種實(shí)現(xiàn)方法:重寫(xiě)羊初、接口、抽象類(lèi)和抽象方法。
封裝
減少耦合长赞,類(lèi)內(nèi)部結(jié)構(gòu)自由修改晦攒,接口調(diào)用,隱藏及控制變量信息得哆。
接口:interface
抽象類(lèi)型脯颜,是抽象方法的集合,接口中所有的方法必須是抽象方法贩据。
一個(gè)類(lèi)通過(guò)繼承接口的方式栋操,從而來(lái)繼承接口的抽象方法。
接口無(wú)法被實(shí)例化乐设,非抽象類(lèi)要定義接口中的所有方法讼庇。
類(lèi)為單一繼承,但接口允許多繼承近尚。
除了 static 和 final 變量外蠕啄,接口不能包含其他成員變量。
多線程
線程是一個(gè)動(dòng)態(tài)執(zhí)行的過(guò)程戈锻,它也有一個(gè)從產(chǎn)生到死亡的過(guò)程歼跟。
生命周期:新建狀態(tài),就緒狀態(tài)格遭,運(yùn)行狀態(tài)哈街,阻塞狀態(tài),死亡狀態(tài)拒迅。
Java 提供了三種創(chuàng)建線程的方法:
通過(guò)實(shí)現(xiàn) Runnable 接口骚秦;通過(guò)繼承 Thread 類(lèi)本身;通過(guò) Callable 和 Future 創(chuàng)建線程璧微。
采用實(shí)現(xiàn) Runnable作箍、Callable 接口的方式創(chuàng)建多線程時(shí),線程類(lèi)只是實(shí)現(xiàn)了 Runnable 接口或 Callable 接口前硫,還可以繼承其他類(lèi)胞得。
使用繼承 Thread 類(lèi)的方式創(chuàng)建多線程時(shí),編寫(xiě)簡(jiǎn)單屹电,如果需要訪問(wèn)當(dāng)前線程阶剑,則無(wú)需使用 Thread.currentThread() 方法,直接使用 this 即可獲得當(dāng)前線程危号。
JVM 虛擬機(jī)
Java 語(yǔ)言使用 Java 虛擬機(jī)屏蔽了與具體平臺(tái)相關(guān)的信息牧愁,使得 Java 語(yǔ)言編譯程序只需生成在 Java 虛擬機(jī)上運(yùn)行的目標(biāo)代碼,就可以在多種平臺(tái)上不加修改地運(yùn)行外莲。
Java 虛擬機(jī)在執(zhí)行字節(jié)碼時(shí)猪半,把字節(jié)碼解釋成具體平臺(tái)上的機(jī)器指令執(zhí)行。這就是 Java 的能夠“一次編譯,到處運(yùn)行”的原因办龄。
參考文章:Java 教程 http://www.runoob.com/java