面試java工程師技巧(一)
1、 類、對象的概念:
1) 類:具有共同屬性和行為的對象的抽象。類是創(chuàng)建對象的模板。
2) 對象:現(xiàn)實世界中的實體。在計算機中,是指可標(biāo)識的存儲區(qū)域。
3) 類是對象的抽象、對象是類的實例。
2、 抽象:是從特定的實例中抽取共同性質(zhì)形成一般化概念的過程。
3、 接口與抽象類:
1)接口和抽象類都用于抽象,接口是抽象類的抽象。
2)接口中只有方法聲明,沒有實現(xiàn)(無方法體);在接口中聲明的方法具有public和abstract屬性,一個類可以實現(xiàn)多個接口(即多繼承),接口以‘,’分隔;接口中的方法必須全部實現(xiàn)。
3)抽象類可以有部分方法實現(xiàn),抽象類必須通過繼承才能使用。
4、內(nèi)部類(Inner Class):
1)內(nèi)部類是嵌套在另一個類中的類。
2)內(nèi)部類用于名稱隱藏和程序代碼的組織,另外內(nèi)部類擁有直接訪問其外部類所有成員(包括private的)的權(quán)限(無需任何關(guān)鍵字修飾)。
3)內(nèi)部類不可以在其他類或main方法里實例化,必須使用如下方法(非靜態(tài)內(nèi)部類)
外部類.內(nèi)部類 對象名=new 外部類().new 內(nèi)部類();
靜態(tài)內(nèi)部類調(diào)用方式:
外部類.內(nèi)部類 對象名=new 外部類.內(nèi)部類();
4)非靜態(tài)內(nèi)部類不可以聲明靜態(tài)成員;靜態(tài)內(nèi)部類的非靜態(tài)成員可以訪問其外部類的靜態(tài)成員,聲明為靜態(tài)的成員不可以訪問外部的非靜態(tài)成員。
5、訪問修飾符限制:
Private protected friendly(default) public
同類 Y Y Y Y
同包不同類 N Y Y Y
同包子類 N Y Y Y
不同包不同類 N N N Y
不同包子類 N Y N Y
6、Static關(guān)鍵字的使用:
1)類成員,直接使用 類名.成員 調(diào)用。
2)靜態(tài)方法只能訪問靜態(tài)成員。
3)靜態(tài)方法不能使用this、super關(guān)鍵字。
4)靜態(tài)方法不能被非靜態(tài)方法重寫或重載。
7、final關(guān)鍵字:
1)被final修飾的變量為常量不能改變。
2)被final修飾的方法不可以重寫。
3)被final修飾的類不能被繼承。
8、abstract關(guān)鍵字:
1)被abstract修飾的類不能實例化。
2)被abstract修飾的方法只能在子類中實現(xiàn)。
9、native關(guān)鍵字:非Java語言的編寫,例如JNI技術(shù)。
10、synchronized關(guān)鍵字:多線程的同步訪問控制。
11、分類列舉服務(wù)器和組件技術(shù):
1)服務(wù)器端技術(shù):Jsp、Servlet;
2)組件技術(shù):JavaBean、EJB。
12、Http與Https:Https即多了安全的Http,s(Security Socket Layer)指加密套接字協(xié)議層(簡寫SSL)。
13、OSI(Open System Interconnection)網(wǎng)絡(luò)抽象模型:
1)由國際標(biāo)準(zhǔn)化組織(ISO)提出。
2)將互聯(lián)網(wǎng)分為七層,從下至上分別為:物理層(physical)、數(shù)據(jù)鏈路層(data link)、網(wǎng)絡(luò)層(network)、傳送層(transport)、會話層(session)、表示層(presentation)、應(yīng)用層 (application)。底層通過提供接口支持上層功能。各層詳解:
物理層:LAN/ATM,為硬件層。
數(shù)據(jù)鏈路層:LAN/ATM
網(wǎng)絡(luò)層:IP協(xié)議,IOS
傳輸層:TCP/UDP協(xié)議,支持Java Socket。
會話層:
表示層:HTML、XML
應(yīng)用層:HTTP協(xié)議,使用Java Servlet/JSP
<第八層(Web服務(wù)層):SOAP/UDDI>
14、J2EE的容器與服務(wù)器:
容器負(fù)責(zé)EJB組件中生命周期的控制;
服務(wù)器包含在容器外,提供系統(tǒng)級操作底層服務(wù),包括事務(wù)、事件、多線程……。
15、繼承限制:
父類對象不可以賦給子類對象,因為子類可能具有更多的成員,反之可以。
16、邏輯操作:c=(a>b)?a:b;等同于下式
if(a>b) c=a; else c=b;