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

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

時間: 護托1061 分享

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

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

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

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

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

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

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

  Hashtable類

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

  HashMap類

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

  HashSet類

  HashSet繼承Set接口。

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

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

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

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

  1、請寫出創(chuàng)建相關(guān)表的SQL語句。

  2. 使用標準SQL,得到2008年1月份入庫的所有商品信息。

  3. 使用標準SQL,得到“Toy”分類下的所有商品信息。

  4. 使用標準SQL,統(tǒng)計出所有包含商品價格低于100.00的分類。

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

  閱讀下列說明、圖以及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)品訂單,0rderltem表示產(chǎn)品訂單中的一個條目,OrderList表示訂單列 表,SalesSystem提供訂單管理系統(tǒng)的操作接口。各個類的部分屬性和方法說明如表1-1所示。

  表1-1

  類

  成員

  說明

  ProductList

  ArrayList(Product) products

  Product String

  String code

  產(chǎn)品編號

  description

  產(chǎn)品描述

  double price

  產(chǎn)品單價

  Boolean equals(Object object)

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

  Orderltem

  Product product

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

  int quantity

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

  Product getProduct()

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

  Order

  ArrayList(Orderlten) items

  訂單中包含的訂單項

  OrderList

  ArrayList(Order)orders

  訂單

  void addOrder(0rder order)

  向訂單列表中添加新訂單

  int getNumberOfOrders()

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

  SalesSystem

  ProductList catalog

  產(chǎn)品目錄

  OrderList sales

  訂單列表

  void statistic()

  依次統(tǒng)計產(chǎn)品目錄中每個產(chǎn)品的訂購總量,并打印 出每個產(chǎn)品的編號、說明、訂購總量和訂購金額

  可以使用類java.util。ArrayList來實現(xiàn)對象的聚集關(guān)系,如圖4-1中OrderList與Order之間的聚集關(guān)系。for-each循環(huán)提供了一種遍歷對象集合的簡單方法。在for-each循環(huán)中,可以指定需要遍歷的對象集合以及用來接收集合中每個元素的變量,其語法如下: for(用來接收集合中元素的變量:需要遍歷的對象集合),如果要使用for-each循環(huán)來遍歷對象集合,那么包含該對象集合的類必須實現(xiàn)接口java.util.Iterable。Java程序1-1和Java程序1-2分別給出了類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、[說明]

  傳輸門是傳輸系統(tǒng)中的重要裝置。傳輸門具有 Open(打開)、Closed(關(guān)閉)、Opening(正在打開)、StayOpen(保持打開)、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è)計思路對傳輸門進行狀態(tài)模擬,請?zhí)钛a代碼中的空缺。

  [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è)置傳輸門當前狀態(tài)

  public void getState(){

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

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

  }

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

  if ((1) ) setState(OPENING);

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

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

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

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

  public void complete(){ //發(fā)生 complete 事件時進行狀態(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è)置傳輸門當前狀態(tài)

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

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

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

  }

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

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

  public void complete(){ (6) ;}//發(fā)生 complete 事件時進行狀態(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)類的基類

  protected Door door ;

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

  public void click() {}

  public void complete() {}

  public void timeout() {}

  }

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

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

  public void click() { (7) ; }

  //該類定義的其余代碼省略

  }

  //其余代碼省略

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

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

精選文章

  • 熱門的高級Java面試題
    熱門的高級Java面試題

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

  • Java高級工程師面試題目
    Java高級工程師面試題目

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

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

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

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

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

3152043