不卡AV在线|网页在线观看无码高清|亚洲国产亚洲国产|国产伦精品一区二区三区免费视频

學(xué)習(xí)啦>創(chuàng)業(yè)指南>職場(chǎng)>面試題>

JAVA開(kāi)發(fā)工程師面試題

時(shí)間: 護(hù)托1061 分享

  用C/C++或者Php,或Java,給出例子,解釋什么是異常(exception)?下面就由學(xué)習(xí)啦小編為大家介紹一下JAVA開(kāi)發(fā)工程師面試題的文章,歡迎閱讀。

  JAVA開(kāi)發(fā)工程師面試題篇1

  1、解釋什么是隊(duì)列(queue),什么棧(stack),有何區(qū)別?

  隊(duì)列是一種特殊的線性表,他按照先進(jìn)先出的原則存儲(chǔ)數(shù)據(jù)。

  棧是一種數(shù)據(jù)結(jié)構(gòu),它按照后進(jìn)先出的原則存儲(chǔ)數(shù)據(jù),先進(jìn)入的數(shù)據(jù)被壓入棧底,最后的數(shù)據(jù)在棧頂,需要讀數(shù)據(jù)的時(shí)候從棧頂開(kāi)始彈出數(shù)據(jù)。

  2、用C/C++或者Php,或Java,給出例子,解釋什么是異常(exception)?

  3、簡(jiǎn)述HashMap、HashSet、HashTable的區(qū)別。

  Hashtable類(lèi)

  Hashtable繼承Map接口,實(shí)現(xiàn)一個(gè)key-value映射的哈希表。任何非空(non-null)的對(duì)象都可作為key或者value。

  HashMap類(lèi)

  HashMap和Hashtable類(lèi)似,不同之處在于HashMap是非同步的,并且允許null,即null value和null key,null key只能有一個(gè)。

  HashSet類(lèi)

  HashSet繼承Set接口。

  Set是一種不包含重復(fù)的元素的Collection。

  4、public、protect和private的區(qū)別是什么?

  JAVA開(kāi)發(fā)工程師面試題篇2

  試設(shè)計(jì)一個(gè)商品相關(guān)數(shù)據(jù)庫(kù),要求包括商品類(lèi)別、商品的基本信息,并完成下面的三個(gè)查詢(xún)。

  1、請(qǐng)寫(xiě)出創(chuàng)建相關(guān)表的SQL語(yǔ)句。

  2. 使用標(biāo)準(zhǔn)SQL,得到2008年1月份入庫(kù)的所有商品信息。

  3. 使用標(biāo)準(zhǔn)SQL,得到“Toy”分類(lèi)下的所有商品信息。

  4. 使用標(biāo)準(zhǔn)SQL,統(tǒng)計(jì)出所有包含商品價(jià)格低于100.00的分類(lèi)。

  JAVA開(kāi)發(fā)工程師面試題篇3

  閱讀下列說(shuō)明、圖以及Java程序,將應(yīng)填入__(n)__處的字句寫(xiě)在答題紙的對(duì)應(yīng)欄內(nèi)。

  1、[說(shuō)明]

  某訂單管理系統(tǒng)的部分UML類(lèi)圖如圖1-1所示

  圖4-1 訂單管理系統(tǒng)的部分類(lèi)圖

  圖1-1中,Product表示產(chǎn) 品,ProductList表示所銷(xiāo)售產(chǎn)品的列表,Order表示產(chǎn)品訂單,0rderltem表示產(chǎn)品訂單中的一個(gè)條目,OrderList表示訂單列 表,SalesSystem提供訂單管理系統(tǒng)的操作接口。各個(gè)類(lèi)的部分屬性和方法說(shuō)明如表1-1所示。

  表1-1

  類(lèi)

  成員

  說(shuō)明

  ProductList

  ArrayList(Product) products

  Product String

  String code

  產(chǎn)品編號(hào)

  description

  產(chǎn)品描述

  double price

  產(chǎn)品單價(jià)

  Boolean equals(Object object)

  若兩個(gè)產(chǎn)品相同則返回true,否則返回false

  Orderltem

  Product product

  訂單項(xiàng)中的產(chǎn)品

  int quantity

  產(chǎn)品的訂購(gòu)數(shù)量

  Product getProduct()

  獲取訂單項(xiàng)中的產(chǎn)品

  Order

  ArrayList(Orderlten) items

  訂單中包含的訂單項(xiàng)

  OrderList

  ArrayList(Order)orders

  訂單

  void addOrder(0rder order)

  向訂單列表中添加新訂單

  int getNumberOfOrders()

  獲取訂單列表中的訂單總數(shù)

  SalesSystem

  ProductList catalog

  產(chǎn)品目錄

  OrderList sales

  訂單列表

  void statistic()

  依次統(tǒng)計(jì)產(chǎn)品目錄中每個(gè)產(chǎn)品的訂購(gòu)總量,并打印 出每個(gè)產(chǎn)品的編號(hào)、說(shuō)明、訂購(gòu)總量和訂購(gòu)金額

  可以使用類(lèi)java.util。ArrayList來(lái)實(shí)現(xiàn)對(duì)象的聚集關(guān)系,如圖4-1中OrderList與Order之間的聚集關(guān)系。for-each循環(huán)提供了一種遍歷對(duì)象集合的簡(jiǎn)單方法。在for-each循環(huán)中,可以指定需要遍歷的對(duì)象集合以及用來(lái)接收集合中每個(gè)元素的變量,其語(yǔ)法如下: for(用來(lái)接收集合中元素的變量:需要遍歷的對(duì)象集合),如果要使用for-each循環(huán)來(lái)遍歷對(duì)象集合,那么包含該對(duì)象集合的類(lèi)必須實(shí)現(xiàn)接口java.util.Iterable。Java程序1-1和Java程序1-2分別給出了類(lèi)OrderList和方法statistic的Java代碼。

  [Java程序1-1]

  import java.util.*;

  public class OrderList __(1)__ {

  private ArrayList orders;

  public OrderListO {

  this.orders = new ArrayList(Order) 0;

  }

  public void addOrder(Order order) {

  this.orders, add (order);

  }

  public Iterator iteratorO {

  return __(2)__;

  }

  public int getNunberOfOrders() {

  return this.orders. size();

  }

  }

  [Java程序1-2]

  import java.util.*;

  public class SalesSystem {

  private ProductList catalog;

  private OrderList sales;

  private static PrintWriter stdOut = new PrintWriter(System.out,true);

  public void statistic(){

  for(Product product : __(3)__{

  int number = 0;

  for(Order order : __(4)__ {

  for(__(5)__ : order){

  if

  numbe r += item.getQuantity();

  }

  }

  stdOut.println(product.getCode() + ” ”

  + product.getDescription() + ” ”

  + number + ” ” + number *product.getPrice());

  }

  }

  //其余的方法未列出

  }

  2、[說(shuō)明]

  傳輸門(mén)是傳輸系統(tǒng)中的重要裝置。傳輸門(mén)具有 Open(打開(kāi))、Closed(關(guān)閉)、Opening(正在打開(kāi))、StayOpen(保持打開(kāi))、Closing(正在關(guān)閉)五種狀態(tài)。觸發(fā)狀態(tài)的轉(zhuǎn)換事件有 click、complete 和 timeout 三種。事件與其相應(yīng)的狀態(tài)轉(zhuǎn)換如圖 2-1 所示。

  圖 2-1 傳輸門(mén)響應(yīng)事件與其狀態(tài)轉(zhuǎn)換圖

  下面的[Java 代碼 1]與[Java 代碼 2]分別用兩種不同的設(shè)計(jì)思路對(duì)傳輸門(mén)進(jìn)行狀態(tài)模擬,請(qǐng)?zhí)钛a(bǔ)代碼中的空缺。

  [Java 代碼 1]

  public class Door {

  public static final int CLOSED = 1;

  public static final int OPENING = 2;

  public static final int OPEN = 3;

  public static final int CLOSING = 4;

  public static final int STAYOPEN = 5;

  private int state = CLOSED;//定義狀態(tài)變量,用不同的整數(shù)表示不同狀態(tài)

  private void setState(int state){this.state = state;} //設(shè)置傳輸門(mén)當(dāng)前狀態(tài)

  public void getState(){

  // 此處代碼省略,本方法輸出狀態(tài)字符串,

  // 例如,當(dāng)前狀態(tài)為 CLOSED 時(shí),輸出字符串為”CLOSED”

  }

  public void click() { //發(fā)生 click 事件時(shí)進(jìn)行狀態(tài)轉(zhuǎn)換

  if ((1) ) setState(OPENING);

  else if ( (2) ) setState(CLOSING);

  else if ((3) ) setState(STAYOPEN);

  //發(fā)生 timeout 事件時(shí)進(jìn)行狀態(tài)轉(zhuǎn)換

  public void timeout(){ if (state == OPEN) setState(CLOSING); }

  public void complete(){ //發(fā)生 complete 事件時(shí)進(jìn)行狀態(tài)轉(zhuǎn)換

  if (state == OPENING) setState(OPEN);

  else if (state == CLOSING) setState(CLOSED);

  }

  public static void main(String [] args){

  Door aDoor = new Door();

  aDoor.getState();

  aDoor.click();

  aDoor.getState();

  aDoor.complete();

  aDoor.getState();

  aDoor.click();

  aDoor.getState();

  aDoor.click();

  aDoor.getState();

  return;

  }

  }

  [Java 代碼 2]

  public class Door {

  public final DoorState CLOSED = new DoorClosed(this);

  public final DoorState OPENING = new DoorOpening(this);

  public final DoorState OPEN = new DoorOpen(this);

  public final DoorState CLOSING = new DoorClosing(this);

  public final DoorState STAYOPEN = new DoorStayOpen(this);

  private DoorState state = CLOSED;

  //設(shè)置傳輸門(mén)當(dāng)前狀態(tài)

  public void setState(DoorState state){ this.state = state;}

  public void getState(){ //根據(jù)當(dāng)前狀態(tài)輸出對(duì)應(yīng)的狀態(tài)字符串

  System.out.println(state.getClass().getName());

  }

  public void click(){ (4) ;} //發(fā)生 click 事件時(shí)進(jìn)行狀態(tài)轉(zhuǎn)換

  public void timeout(){ (5) ;}//發(fā)生 timeout 事件時(shí)進(jìn)行狀態(tài)轉(zhuǎn)換

  public void complete(){ (6) ;}//發(fā)生 complete 事件時(shí)進(jìn)行狀態(tài)轉(zhuǎn)換

  public static void main(String[] args){

  Door aDoor = new Door();

  aDoor.getState();

  aDoor.click();

  aDoor.getState();

  aDoor.complete();

  aDoor.getState();

  aDoor.timeout();

  aDoor.getState();

  return;

  }

  }

  public abstract class DoorState { //定義所有狀態(tài)類(lèi)的基類(lèi)

  protected Door door ;

  public DoorState(Door door) {this.door = door;}

  public void click() {}

  public void complete() {}

  public void timeout() {}

  }

  class DoorClosed extends DoorState{ //定義一個(gè)基本的 Closed 狀態(tài)

  public DoorClosed(Door door) { super(door); }

  public void click() { (7) ; }

  //該類(lèi)定義的其余代碼省略

  }

  //其余代碼省略

JAVA開(kāi)發(fā)工程師面試題

用C/C++或者Php,或Java,給出例子,解釋什么是異常(exception)?下面就由學(xué)習(xí)啦小編為大家介紹一下JAVA開(kāi)發(fā)工程師面試題的文章,歡迎閱讀。 JAVA開(kāi)發(fā)工程師面試題篇1 1、解釋什么是隊(duì)列(queue),什么棧(stack),有何區(qū)別? 隊(duì)列是一種特
推薦度:
點(diǎn)擊下載文檔文檔為doc格式

精選文章

  • 熱門(mén)的高級(jí)Java面試題
    熱門(mén)的高級(jí)Java面試題

    可變參數(shù),斷言,垃圾回收,初始化器,令牌化,日期,日歷等等都是Java核心問(wèn)題。下面就由學(xué)習(xí)啦小編為大家介紹一下熱門(mén)的高級(jí)Java面試題的文章,歡

  • Java高級(jí)工程師面試題目
    Java高級(jí)工程師面試題目

    Java的應(yīng)用可以說(shuō)是無(wú)處不在,從桌面辦公應(yīng)用到網(wǎng)絡(luò)數(shù)據(jù)庫(kù)等應(yīng)用,從PC到嵌入式移動(dòng)平臺(tái),從Java小應(yīng)用程序(Applet)到架構(gòu)龐大的J2EE企業(yè)級(jí)解決方案,處處

  • Java服務(wù)器端開(kāi)發(fā)面試題
    Java服務(wù)器端開(kāi)發(fā)面試題

    當(dāng)然對(duì)于一些大公司,基礎(chǔ)知識(shí)可能不是最被看重的,關(guān)鍵是學(xué)習(xí)能力,獨(dú)立解決問(wèn)題的能力,是否是一個(gè)靈性的人,我一直覺(jué)得我們程序員是在創(chuàng)造一個(gè)

  • java Io流面試題和選擇題
    java Io流面試題和選擇題

    Java對(duì)象的序列化指將一個(gè)java對(duì)象寫(xiě)入OI流中,與此對(duì)應(yīng)的是,對(duì)象的反序列化則從IO流中恢復(fù)該java對(duì)象。下面就由學(xué)習(xí)啦小編為大家介紹一下java Io流面試

3152043