- 1、Java開發面試題
- 2、java 面試題
- 3、用java編寫網吧計費系統
- 4、簡單的JAVA 面試題
- 5、java軟件面試題
1、面向對象的特徵有哪些方面?
答:面向對象的特徵主要有以下幾個方面:
– 抽象:抽象是將一類對象的共同特徵總結出來構造類的過程,包括數據抽象和行為抽象兩方面。抽象只關注對象有哪些屬性和行為,並不關注這些行為的細節是什麼。
– 繼承:繼承是從已有類得到繼承信息創建新類的過程。提供繼承信息的類被稱為父類(超類、基類);得到繼承信息的類被稱為子類(派生類)。繼承讓變化中的軟件系統有了一定的延續性,同時繼承也是封裝程序中可變因素的重要手段(如果不能理解請閱讀閻宏博士的《Java與模式》或《設計模式精解》中關於橋樑模式的部分)。
– 封裝:通常認為封裝是把數據和操作數據的方法綁定起來,對數據的訪問只能通過已定義的接口。面向對象的本質就是將現實世界描繪成一系列完全自治、封閉的對象。我們在類中編寫的方法就是對實現細節的一種封裝;我們編寫一個類就是對數據和數據操作的封裝。可以說,封裝就是隱藏一切可隱藏的東西,只向外界提供最簡單的編程接口(可以想想普通洗衣機和全自動洗衣機的差別,明顯全自動洗衣機封裝更好因此操作起來更簡單;我們現在使用的智能手機也是封裝得足夠好的,因為幾個按鍵就搞定了所有的事情)。
– 多態性:多態性是指允許不同子類型的對象對同一消息作出不同的響應。簡單的說就是用同樣的對象引用調用同樣的方法但是做了不同的事情。多態性分為編譯時的多態性和運行時的多態性。如果將對象的方法視為對象向外界提供的服務,那麼運行時的多態性可以解釋為:當A系統訪問B系統提供的服務時,B系統有多種提供服務的方式,但一切對A系統來說都是透明的(就像電動剃鬚刀是A系統,它的供電系統是B系統,B系統可以使用電池供電或者用交流電,甚至還有可能是太陽能,A系統只會通過B類對象調用供電的方法,但並不知道供電系統的底層實現是什麼,究竟通過何種方式獲得了動力)。方法重載(overload)實現的是編譯時的多態性(也稱為前綁定),而方法重寫(override)實現的是運行時的多態性(也稱為後綁定)。運行時的多態是面向對象最精髓的東西,要實現多態需要做兩件事:1). 方法重寫(子類繼承父類並重寫父類中已有的或抽象的方法);2). 對象造型(用父類型引用引用子類型對象,這樣同樣的引用調用同樣的方法就會根據子類對象的不同而表現出不同的行為)。
2、訪問修飾符public,private,protected,以及不寫(默認)時的區別?
答:
修飾符
當前類
同 包
子 類
其他包
public √ √ √ √
protected √ √ √ ×
default √ √ × ×
private √ × × ×
類的成員不寫訪問修飾時默認為default。默認對於同一個包中的其他類相當於公開(public),對於不是同一個包中的其他類相當於私有(private)。受保護(protected)對子類相當於公開,對不是同一包中的沒有父子關係的類相當於私有。Java中,外部類的修飾符只能是public或默認,類的成員(包括內部類)的修飾符可以是以上四種。
3、String 是最基本的數據類型嗎?
答:不是。Java中的基本數據類型只有8個:byte、short、int、long、float、double、char、boolean;除了基本類型(primitive type)和枚舉類型(enumeration type),剩下的都是引用類型(reference type)。
4、float f=3.4;是否正確?
答:不正確。3.4是雙精度數,將雙精度型(double)賦值給浮點型(float)屬於下轉型(down-casting,也稱為窄化)會造成精度損失,因此需要強制類型轉換float f =(float)3.4; 或者寫成float f =3.4F;。
5、short s1 = 1; s1 = s1 + 1;有錯嗎?short s1 = 1; s1 += 1;有錯嗎?
答:對於short s1 = 1; s1 = s1 + 1;由於1是int類型,因此s1+1運算結果也是int 型,需要強制轉換類型才能賦值給short型。而short s1 = 1; s1 += 1;可以正確編譯,因為s1+= 1;相當於s1 = (short)(s1 + 1);其中有隱含的強制類型轉換。
6、Java有沒有goto?
答:goto 是Java中的保留字,在目前版本的Java中沒有使用。(根據James Gosling(Java之父)編寫的《The Java Programming Language》一書的附錄中給出了一個Java關鍵字列表,其中有goto和const,但是這兩個是目前無法使用的關鍵字,因此有些地方將其稱之為保留字,其實保留字這個詞應該有更廣泛的意義,因為熟悉C語言的程序員都知道,在系統類庫中使用過的有特殊意義的單詞或單詞的組合都被視為保留字)
7、int和Integer有什麼區別?
答:Java是一個近乎純潔的面向對象編程語言,但是為了編程的方便還是引入了基本數據類型,但是為了能夠將這些基本數據類型當成對象操作,Java為每一個基本數據類型都引入了對應的包裝類型(wrapper class),int的包裝類就是Integer,從Java 5開始引入了自動裝箱/拆箱機制,使得二者可以相互轉換。
1,C
只有C選項中的三個類全是用final關鍵字修飾
final修飾類,表示類不能被繼承,修飾方法表示方法不可覆蓋(重寫),修飾屬性表示不可改變(常量)
2,A
此類完全由在 collection 上進行操作或返回 collection 的靜態方法組成
3,看不到類
4,B
A應該改為INSERT INTO TABLE_USER(UserID,Name) VALUES(‘001′,’xxx’);
C應該改為SELECT * FROM TABLE_USER WHERE UserID = ‘001’;
加上幾張表,判斷一下而已,邏輯並不難,卡號密碼正確與否不用說了吧,餘額不足在登錄方法里加入判斷餘額是否0就行,正在使用機器加一個字段,1代表正在使用。也在登錄的時候判斷一下這個字段,等於1就不讓他登錄,等於0則進行登錄操作,並update字段為1
import java.util.Scanner;
public class OODemo {
private double price1 = 1.5;//金卡會員價格
private double price2 = 1.8;//銀卡會員價格
private double price3 = 2.0;//普通客戶價格
/**
* 根據buyer的購物數和會員級別計算total金額
* @param num
* @param card
* @return
*/
public double countPrice(int num,String card)
{
double total = 0.0;
if(card.equals(“1”))
{
total = price1*num;
}
else if(card.equals(“2”))
{
total = price2*num;
}
else if(card.equals(“3”))
{
total = price3*num;
}else{
System.out.println(“無效的選擇!”);
}
return total;
}
public void method()
{
Scanner s = new Scanner(System.in);
System.out.println(“Please input a cardDept num to get your totalPrice:”);
System.out.println(“————————————————“);
System.out.println(“1—-金卡會員”);
System.out.println(“2—-銀卡會員”);
System.out.println(“3—-普通會員”);
System.out.println(“4—-Exit”);
String card = s.next();
if(card.equals(“1”)||card.equals(“2”)||card.equals(“3”))
{
System.out.println(“該會員等級為”+card);
System.out.println(“請輸入購買數:num”);
int num = s.nextInt();
double total = countPrice(num, card);
System.out.println(“總計金額為:”+total);
}else if(card.equals(“4”))
{
System.out.println(“Exit…”);
System.exit(0);
}else{
System.out.println(“無效的會員等級!”);
System.out.println(“重新輸入:”);
method();
}
}
public static void main(String[] args) {
OODemo demo = new OODemo();
demo.method();
}
}
1 java思想中 動態代理 方便維護和拓展 樓主可以搜下(Dynamic Proxy)。
2 答案不唯一, 事實考你的是servlet線程不安全的概念,servlet中是不用 成員變量的,因為線程不安全。(參考 搜索servlet的線程不安全解決方法)本題答案,加一個“局部線程”變量綁定。
3 reques
4 對象流要傳送對象 一定要實現Serializable 接口 form傳的對象reques,response
5 EL表達式 我了解的不是很透 ,樓主再查找下。
你面試的問題 既基本 ,又砸人……很考察基礎。
原創文章,作者:MHE85,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/126273.html