JAVA開發(fā)工程師面試題(整理)_第1頁
JAVA開發(fā)工程師面試題(整理)_第2頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、一、 概念題1、解釋什么是隊(duì)列(queue),什么棧(stack),有何區(qū)別? 隊(duì)列是一種特殊的線性表,他按照先進(jìn)先出的原則存儲數(shù)據(jù)。棧是一種數(shù)據(jù)結(jié)構(gòu),它按照后進(jìn)先出的原則存儲數(shù)據(jù),先進(jìn)入的數(shù)據(jù)被壓入 棧底,最后的數(shù)據(jù)在棧頂,需要讀數(shù)據(jù)的時候從棧頂開始彈出數(shù)據(jù)。2、用 C/C+或者 Php,或 Java,給出例子,解釋什么是異常(exception) ?3、簡述 HashMap、HashSe、HashTable 的區(qū)別。Hashtable 類Hashtable 繼承 Map 接口,實(shí)現(xiàn)一個 key-value 映射的哈希表。任何非空(non- null )的對象都可作為 key 或者 valu

2、e。HashMap 類HashMap 和 Hashtable 類似,不同之處在于HashMap 是非同步的,并且允許null,即 null value 和 null key,null key 只能有一個。HashSet 類HashSet 繼承 Set 接口。Set 是一種不包含重復(fù)的元素的 Collection。4、public、protect 和 private 的區(qū)別是什么?二、 數(shù)據(jù)庫相關(guān)題試設(shè)計(jì)一個商品相關(guān)數(shù)據(jù)庫,要求包括商品類別、商品的基本信息,并完成下 面的三個查詢。1. 請寫出創(chuàng)建相關(guān)表的 SQL 語句。2. 使用標(biāo)準(zhǔn) SQL 得到 2008 年 1 月份入庫的所有商品信息。3.

3、 使用標(biāo)準(zhǔn) SQL 得到“ Toy”分類下的所有商品信息。4. 使用標(biāo)準(zhǔn) SQL 統(tǒng)計(jì)出所有包含商品價格低于 100.00 的分類。三、程序填空題。閱讀下列說明、圖以及 Java 程序,將應(yīng)填入 _(n)_處的字句寫在答題紙的對應(yīng)欄 內(nèi)。1、說明某訂單管理系統(tǒng)的部分 UML 類圖如圖 1-1 所示圖 4-1 訂單管理系統(tǒng)的部分類圖圖 1-1 中,Product 表示產(chǎn) 品,ProductList 表示所銷售產(chǎn)品的列表, Order 表示產(chǎn)品訂 單,Orderitem 表示產(chǎn)品訂單中的一個條目, OrderList 表示訂單列 表,SalesSystem 提 供訂單管理系統(tǒng)的操作接口。各個類的部

4、分屬性和方法說明如表1-1 所示。表 1-1類成員說明ProductListArrayList(Product) productsProduct StringString code產(chǎn)品編號descripti on產(chǎn)品描述double price產(chǎn)品單價Boolea n equals(Object object)右兩個產(chǎn)品相冋則返回true,否則返回 falseOrderltemProduct product訂單項(xiàng)中的產(chǎn)品int qua ntity產(chǎn)品的訂購數(shù)量Product getProduct()獲取訂單項(xiàng)中的產(chǎn)品OrderArrayList(Orderlten) items訂單中包含的訂單

5、項(xiàng)OrderListArrayList(Order)orders訂單void addOrder(0rder order)向訂單列表中添加新訂單in t getNumberOfOrders()獲取訂單列表中的訂單總數(shù)SalesSystemProductList catalog產(chǎn)品目錄OrderList sales訂單列表void statistic()依次統(tǒng)計(jì)產(chǎn)品目錄中每個產(chǎn)品的訂購總量,并打印 出每個產(chǎn)品的編號、說明、訂購總量和訂購金額可以使用類 java . util。ArrayList來實(shí)現(xiàn)對象的聚集關(guān)系,如圖4-1 中 OrderList 與Order 之間的聚集關(guān)系。for-each

6、循環(huán)提供了一種遍歷對象集合的簡單方法。在for-each循環(huán)中,可以指定需要遍歷的對象集合以及用來接收集合中每個元素的變量,其語法如 下: for(用來接收集合中元素的變量:需要遍歷的對象集合),如果要使用 for-each 循 環(huán)來遍歷對象集合,那么包含該對象集合的類必須實(shí)現(xiàn)接口java.util.lterable。Java 程序 1-1 和 Java 程序 1-2 分別給出了類 OrderList 和方法 statistic 的 Java 代碼。public OrderListO this.orders = newpublic void addOrder(Order order)。publ

7、ic Iterator iteratorOpublic int getN un berOfOrders() retur n Java 程序 1-2 import java.util.* ; public classSalesSystem private ProductList catalog ;private OrderList sales ;private static PrintWriter stdOut = new PrintWriter(System.out, true)。public voidstatistic()for(Product product : _(3)_int numb

8、er = 0 ;for(Order order : _ for(_ :order)ifproduct.equals(item.getProduct()nu mbe r +=item.getQua ntity() ;stdOut.pri ntln (product.getCode() + + product.getDescriptio n() + + number + + number *product . getPrice() ;其余的方法未列出 2、說明傳輸門是傳輸系統(tǒng)中的重要裝置。傳輸門具有Open (打開)、Closed (關(guān)閉)、Opening (正在打開)、StayOpen (保持打

9、開)、Closing (正在關(guān)閉) 五種狀態(tài)。觸發(fā)狀態(tài)的轉(zhuǎn)換事件有 click、complete 和 timeout 三種。事件 與其相應(yīng)的狀態(tài)轉(zhuǎn)換如圖 2-1 所示。圖 2-1 傳輸門響應(yīng)事件與其狀態(tài)轉(zhuǎn)換圖下面的Java 代碼 1與Java 代碼 2分別用兩種不同的設(shè)計(jì)思路對傳輸 門進(jìn)行狀態(tài)模擬,請?zhí)钛a(bǔ)代碼中的空缺。Java 程序 1-1 import java.util.*public class OrderList _(1)_ privateArrayList orders。ArrayList(Order) 0。this.orders, add (order)return _(2)_th

10、is.orders. size()。Java 代碼 1public class Door public static final int CLOSED = 1。 public staticfinal int OPENING = 2。public static final int OPEN = 3。publicstatic final int CLOSING = 4。public static final int STAYOPEN = 5。private int state = CLOSED。/定義狀態(tài)變量,用不同的整數(shù)表示不同狀態(tài) private voidsetState(int state)

11、this.state = state。/ 設(shè)置傳輸門當(dāng)前狀態(tài) public void getState()此處代碼省略,本方法輸出狀態(tài)字符串,/例如,當(dāng)前狀態(tài)為 CLOSED 時,輸出字符串為” CLOSEDpublic void click() /發(fā)生 click事件時進(jìn)行狀態(tài)轉(zhuǎn)換if (1) ) setState(OPENING)。else if (2) ) setState(CLOSING)。else if (3) ) setState(STAYOPEN)。/發(fā)生 timeout 事件時進(jìn)行狀態(tài)轉(zhuǎn)換public void timeout() if (state = OPEN)setSta

12、te(CLOSING)。public void complete() /發(fā)生 complete 事件時進(jìn)行狀態(tài)轉(zhuǎn)換if (state = OPENING) setState(OPEN) 。else if (state = CLOSING) setState(CLOSED) 。public static void main( Stri ng args)Door aDoor = new Door()。aDoor.getState()。aDoor.click()。aDoor.getState()。aDplete()。aDoor.getState()。aDoor.click()。aDoor.getSt

13、ate()。aDoor.click()。aDoor.getState()。return。Java 代碼 2public class Door public final DoorState CLOSED = new DoorClosed(this) 。public final DoorState OPENING = new DoorOpe nin g(this)。public final DoorState OPEN = new DoorOpe n(this) 。public final DoorState CLOSING = new DoorClosi ng(this)。public fina

14、l DoorState STAYOPEN = new DoorStayOpe n( this)。private DoorState state = CLOSED 。/ 設(shè)置傳輸門當(dāng)前狀態(tài) public void setState(DoorStatestate) this.state = state。publicvoid getState() /根據(jù)當(dāng)前狀態(tài)輸出對應(yīng)的狀態(tài)字符串System.out.pri ntln (state.getClass().getName()。public void click()( 4) 。 /發(fā)生 click事件時進(jìn)行狀態(tài)轉(zhuǎn)換public void timeout

15、()(5)。/ 發(fā)生 timeout 事件時進(jìn)行狀態(tài)轉(zhuǎn)換public void complete()(6)。/ 發(fā)生 complete 事件時進(jìn)行狀態(tài)轉(zhuǎn)換public static void main( Stri ng args)Door aDoor = new Door()。aDoor.getState()。aDoor.click()。aDoor.getState()。aDplete()。aDoor.getState()。aDoor.timeout()。aDoor.getState()。return。public abstract class DoorState / 定義所有狀態(tài)類的基類protected Door door 。public Do

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論