亚洲国产日韩欧美在线a乱码,国产精品路线1路线2路线,亚洲视频一区,精品国产自,www狠狠,国产情侣激情在线视频免费看,亚洲成年网站在线观看

Java工程師筆試題

時(shí)間:2024-10-17 08:55:12 雪桃 筆試題目 我要投稿
  • 相關(guān)推薦

Java工程師筆試題

  在日常學(xué)習(xí)和工作中,我們需要用到試題的情況非常的多,借助試題可以檢測(cè)考試者對(duì)某方面知識(shí)或技能的掌握程度。你所了解的試題是什么樣的呢?下面是小編收集整理的Java工程師筆試題,僅供參考,希望能夠幫助到大家。

Java工程師筆試題

  Java工程師筆試題 1

  一、選擇題(共50題,每題1.5分,共75分。多選題選不全或選錯(cuò)都不得分。)

  1.以下屬于面向?qū)ο蟮奶卣鞯氖?C,D)。(兩項(xiàng))

  A) 重載

  B) 重寫(xiě)

  C) 封裝

  D) 繼承

  2.以下代碼運(yùn)行輸出是(C)

  public class Person{

  private String name=”P(pán)erson”;

  int age=0;

  }

  public class Child extends Person{

  public String grade;

  public static void main(String[] args){

  Person p = new Child( );

  System.out.println(p.name);

  }

  }

  A) 輸出:Person

  B) 沒(méi)有輸出

  C) 編譯出錯(cuò)

  D) 運(yùn)行出錯(cuò)

  3.在使用super 和this關(guān)鍵字時(shí),以下描述正確的是(A)

  A) 在子類(lèi)構(gòu)造方法中使用super( )顯示調(diào)用父類(lèi)的構(gòu)造方法,super( )必須寫(xiě)在子類(lèi)構(gòu)造方法的第一行,否則編譯不通過(guò)

  B) super( )和this( )不一定要放在構(gòu)造方法內(nèi)第一行

  C) this( )和super( )可以同時(shí)出現(xiàn)在一個(gè)構(gòu)造函數(shù)中

  D) this( )和super( )可以在static環(huán)境中使用,包括static方法和static語(yǔ)句塊

  4.以下對(duì)封裝的描述正確的是(D)

  A) 只能對(duì)一個(gè)類(lèi)中的方法進(jìn)行封裝,不能對(duì)屬性進(jìn)行封裝。

  B) 如果子類(lèi)繼承了父類(lèi),對(duì)于父類(lèi)中進(jìn)行封裝的方法,子類(lèi)仍然可以直接調(diào)用

  C) 封裝的意義不大,因此在編碼時(shí)盡量不要使用

  D) 封裝的主要作用在于對(duì)外隱藏內(nèi)部實(shí)現(xiàn)細(xì)節(jié),增強(qiáng)程序的安全性

  5.以下對(duì)繼承的描述錯(cuò)誤的是(A)

  A) Java中的繼承允許一個(gè)子類(lèi)繼承多個(gè)父類(lèi)

  B) 父類(lèi)更具有通用性,子類(lèi)更具體

  C) Java中的繼承存在著傳遞性

  D) 當(dāng)實(shí)例化子類(lèi)時(shí)會(huì)遞歸調(diào)用父類(lèi)中的構(gòu)造方法

  6.以下程序的運(yùn)行結(jié)果是(D)

  class Person{

  public Person( ){

  System.out.println(“this is a Person”);

  }

  }

  public class Teacher extends Person{

  private String name=”tom”;

  public Teacher( ){

  System.out.println(“this is a teacher”);

  super( );

  }

  public static void main(String[] args){

  Teacher teacher = new Teacher( );

  System.out.println(this.name);

  }

  }

  A) this is a Person

  this is a teacher

  tom

  B) this is a teacher

  this is a Person

  tom

  C) 運(yùn)行出錯(cuò)

  D) 編譯有兩處錯(cuò)誤

  7.以下說(shuō)法錯(cuò)誤的是( )

  A) super.方法( )可以調(diào)用父類(lèi)的所有非私有方法

  B) super( )可以調(diào)用父類(lèi)的所有非私有構(gòu)造函數(shù)

  C) super.屬性可以調(diào)用父類(lèi)的所有非私有屬性

  D) this和super關(guān)鍵字可以出現(xiàn)在同一個(gè)構(gòu)造函數(shù)中

  8.以下關(guān)于final關(guān)鍵字說(shuō)法錯(cuò)誤的是(A,C)(兩項(xiàng))

  A) final是java中的修飾符,可以修飾類(lèi)、接口、抽象類(lèi)、方法和屬性

  B) final修飾的類(lèi)肯定不能被繼承

  C) final修飾的方法不能被重載

  D) final修飾的變量不允許被再次賦值

  9.訪問(wèn)修飾符作用范圍由大到小是(D)

  A) private-default-protected-public

  B) public-default-protected-private

  C) private-protected-default-public

  D) public-protected-default-private

  10.以下(D)不是Object類(lèi)的方法

  A) clone( )

  B) finalize( )

  C) toString( )

  D) hasNext( )

  11.多態(tài)的表現(xiàn)形式有(A)

  A) 重寫(xiě)

  B) 抽象

  C) 繼承

  D) 封裝

  12.以下對(duì)重載描述錯(cuò)誤的是(B)

  A) 方法重載只能發(fā)生在一個(gè)類(lèi)的內(nèi)部

  B) 構(gòu)造方法不能重載

  C) 重載要求方法名相同,參數(shù)列表不同

  D) 方法的返回值類(lèi)型不是區(qū)分方法重載的條件

  13.以下(D)添加到ComputerBook中不會(huì)出錯(cuò)

  class Book{

  protected int getPrice( ){

  return 30;

  }

  }

  public class ComputerBook extends Book{

  }

  A) protected float getPrice( ){}

  B) protected int getPrice(int page){}

  C) int getPrice( ){}

  D) public int getPrice( ){return 10;}

  14.以下對(duì)抽象類(lèi)的描述正確的是(C)

  A) 抽象類(lèi)沒(méi)有構(gòu)造方法

  B) 抽象類(lèi)必須提供抽象方法

  C) 有抽象方法的類(lèi)一定是抽象類(lèi)

  D) 抽象類(lèi)可以通過(guò)new關(guān)鍵字直接實(shí)例化

  15.以下對(duì)接口描述錯(cuò)誤的有(D)

  A) 接口沒(méi)有提供構(gòu)造方法

  B) 接口中的方法默認(rèn)使用public、abstract修飾

  C) 接口中的屬性默認(rèn)使用public、static、final修飾

  D) 接口不允許多繼承

  16.以下代碼,描述正確的有(A)

  interface IDemo{

  public static final String name;1

  void print( );2

  public void getInfo( );3

  }

  abstract class Person implements IDemo{4

  public void print( ){

  }

  }

  A) 第1行錯(cuò)誤,沒(méi)有給變量賦值

  B) 第2行錯(cuò)誤,方法沒(méi)有修飾符

  C) 第4行錯(cuò)誤,沒(méi)有實(shí)現(xiàn)接口的全部方法

  D) 第3行錯(cuò)誤,沒(méi)有方法的實(shí)現(xiàn)

  17.接口和抽象類(lèi)描述正確的有(B,C)(兩項(xiàng))

  A) 抽象類(lèi)沒(méi)有構(gòu)造函數(shù)

  B) 接口沒(méi)有構(gòu)造函數(shù)

  C) 抽象類(lèi)不允許多繼承

  D) 接口中的方法可以有方法體

  18.以下描述錯(cuò)誤的有(C)

  A) abstract 可以修飾類(lèi)、接口、方法

  B) abstract修飾的類(lèi)主要用于被繼承

  C) abstract 可以修飾變量

  D) abstract修飾的類(lèi),其子類(lèi)也可以是abstract修飾的

  19.以下描述正確的有(B)

  A) 方法的重寫(xiě)應(yīng)用在一個(gè)類(lèi)的內(nèi)部

  B) 方法的重載與返回值類(lèi)型無(wú)關(guān)

  C) 構(gòu)造方法不能重載

  D) 構(gòu)造方法可以重寫(xiě)

  20.以下程序運(yùn)行結(jié)果是(A)

  public class Test extends Father{

  private String name=”test”;

  public static void main(String[] args){

  Test test = new Test( );

  System.out.println(test.getName( ));

  }

  }

  class Father{

  private String name=”father”;

  public String getName( ) {

  return name;

  }

  }

  A) father

  B) test

  C) 編譯出錯(cuò)

  D) 運(yùn)行出錯(cuò),無(wú)輸出

  21.以下對(duì)異常的描述不正確的有(C)

  A) 異常分為Error和Exception

  B) Throwable是所有異常類(lèi)的父類(lèi)

  C) Exception是所有異常類(lèi)父類(lèi)

  D) Exception包括RuntimeException和RuntimeException之外的異常

  22.在try-catch-finally語(yǔ)句塊中,以下可以單獨(dú)與finally一起使用的是(B)

  A) catch

  B) try

  C) throws

  D) throw

  23.下面代碼運(yùn)行結(jié)果是(B)

  public class Demo{

  public int add(int a,int b){

  try{

  return a+b;

  }catch(Exception e){

  System.out.println(“catch 語(yǔ)句塊”);

  }finally{

  System.out.println(“finally 語(yǔ)句塊”);

  }

  return 0;

  }

  public static void main(String[] args){

  Demo demo = new Demo( );

  System.out.println(“和是:”+demo.add(9,34));

  }

  }

  A) 編譯異常

  B) finally語(yǔ)句塊 和是:43

  C) 和是:43 finally語(yǔ)句塊

  D) catch語(yǔ)句塊 和是:43

  24.以下描述不正確的有(D)

  A) try塊不可以省略

  B) 可以使用多重catch塊

  C) finally塊可以省略

  D) catch塊和finally塊可以同時(shí)省略

  25.以下對(duì)自定義異常描述正確的是(C)

  A) 自定義異常必須繼承Exception

  B) 自定義異?梢岳^承自Error

  C) 自定義異?梢愿用鞔_定位異常出錯(cuò)的位置和給出詳細(xì)出錯(cuò)信息

  D) 程序中已經(jīng)提供了豐富的異常類(lèi),使用自定義異常沒(méi)有意義

  26.以下程序運(yùn)行結(jié)果是(D)

  public class Test {

  public int div(int a, int b) {

  try {

  return a / b;

  }catch(Exception e){

  System.out.println(“Exception”);

  }catch(NullPointerException e){

  System.out.println(“ArithmeticException”);

  }

  catch (ArithmeticException e) {

  System.out.println(“ArithmeticException”);

  } finally {

  System.out.println(“finally”);

  }

  return 0;

  }

  public static void main(String[] args) {

  Test demo = new Test( );

  System.out.println(“商是:” + demo.div(9, 0));

  }

  }

  A) Exception finally 商是:0

  B) ArithmeticException finally 商是:0

  C) finally商是:0

  D) 編譯報(bào)錯(cuò)

  27.以下對(duì)TCP和UDP描述正確的是(D)

  A) TCP不能提供數(shù)據(jù)的可靠性

  B) UDP能夠保證數(shù)據(jù)庫(kù)的可靠性

  C) TCP數(shù)據(jù)傳輸效率高于UDP

  D) UDP數(shù)據(jù)傳輸效率高于TCP

  28.在Java中,下面對(duì)于構(gòu)造函數(shù)的描述正確的是(D)。(選擇一項(xiàng))

  A) 類(lèi)必須顯示定義構(gòu)造函數(shù)

  B) 構(gòu)造函數(shù)的返回類(lèi)型是void

  C) 構(gòu)造函數(shù)和類(lèi)有相同的名稱(chēng),并且不能帶任何參數(shù)

  D) 一個(gè)類(lèi)可以定義多個(gè)構(gòu)造函數(shù)

  29.根據(jù)下面的代碼,

  String s = null;

  會(huì)拋出NullPointerException異常的有(A,C)。[兩項(xiàng)]

  A) if( (s!=null) & (s.length( )>0) )

  B) if( (s!=null) & & (s.length( )>0) )

  C) if( (s==null) | (s.length( )==0) )

  D) if( (s==null) || (s.length( )==0) )

  30..在Java中,關(guān)于HashMap類(lèi)的描述,以下廉潔錯(cuò)誤的是( B )。

  A) HashMap使用鍵/值得形式保存數(shù)據(jù)

  B) HashMap 能夠保證其中元素的順序

  C) HashMap允許將null用作鍵

  D) HashMap允許將null用作值

  31.下列選項(xiàng)中關(guān)于java中super關(guān)鍵字的說(shuō)法錯(cuò)誤的是( B )

  A) super關(guān)鍵字是在子類(lèi)對(duì)象內(nèi)部指代其父類(lèi)對(duì)象的引用

  B) super關(guān)鍵字不僅可以指代子類(lèi)的直接父類(lèi),還可以指代父類(lèi)的父類(lèi)

  C) 子類(lèi)可以通過(guò)super關(guān)鍵字調(diào)用父類(lèi)的方法

  D) 子類(lèi)可以通過(guò)super關(guān)鍵字調(diào)用父類(lèi)的屬性

  32.在Java中,以下代碼( A )正確地創(chuàng)建了一個(gè)InputStreamReader對(duì)象。

  A) InuptStreamReader(new FileInputStream(“1.dat”));

  B) InuptStreamReader(new FileReader(“1.dat”));

  C) InuptStreamReader(new BufferReader(“1.dat”));

  D) InuptStreamReader (“1.dat”);

  33.在Java中,( D )類(lèi)提供定位本地文件系統(tǒng),對(duì)文件或目錄及其屬性進(jìn)行基本操作。

  A) FileInputStream

  B) FileReader

  C) FileWriter

  D) File

  34.Java中的集合類(lèi)包括ArrayList、LinkedList、HashMap等類(lèi),下列關(guān)于集合類(lèi)描述錯(cuò)誤的`是(C)(選擇一項(xiàng))

  A) ArrayList和LinkedList均實(shí)現(xiàn)了List接口

  B) ArrayList的訪問(wèn)速度比LinkedList快

  C) 添加和刪除元素時(shí),ArrayList的表現(xiàn)更佳

  D) HashMap實(shí)現(xiàn)Map接口,它允許任何類(lèi)型的鍵和值對(duì)象,并允許將null用作鍵或值

  35.在Java中開(kāi)發(fā)JDBC應(yīng)用程序時(shí),使用DriverManager類(lèi)的getConnection( )方法

  建立與數(shù)據(jù)源的連接語(yǔ)句為:

  Connection con = DriverManager.getConnection(“jdbc:odbc:news”);

  URL連接中的”n ews”表示的是(C)(選擇一項(xiàng))

  A) 數(shù)據(jù)庫(kù)中表的名稱(chēng)

  B) 數(shù)據(jù)庫(kù)服務(wù)器的機(jī)器名

  C) 數(shù)據(jù)源的名稱(chēng)

  D) 用戶(hù)名

  36.在Java中,JDBCAPI定義了一組用于與數(shù)據(jù)庫(kù)進(jìn)行通信的接口和類(lèi),它們包括在(B)包中。

  A) java.lang

  B) java.sql

  C) java.util

  D) java.math

  37.Java中,以下( B )接口以鍵_值對(duì)的方式存儲(chǔ)對(duì)象。

  A) java.util.Collection

  B) java.util.Map

  C) java.util.List

  D) java.util.Set

  38.以下關(guān)于對(duì)象序列化描述正確的是( C,D )[兩項(xiàng)]

  A) 使用FileOutputStream可以將對(duì)象進(jìn)行傳輸

  B) 使用PrintWriter可以將對(duì)象進(jìn)行傳輸

  C) 使用ObjectOutputStream類(lèi)完成對(duì)象存儲(chǔ),使用ObjectInputStream類(lèi)完成對(duì)象讀取

  D) 對(duì)象序列化的所屬類(lèi)需要實(shí)現(xiàn)Serializable接口

  39.在Java中,( A )類(lèi)可用于創(chuàng)建鏈表數(shù)據(jù)結(jié)構(gòu)的對(duì)象。

  A) LinkedList

  B) ArrayList

  C) Collection

  D) HashMap

  40.分析下面這段Java代碼,它的運(yùn)行結(jié)果是( C )。

  Import java.io.*;

  Public class B{

  Public static void main(string [] args){

  int i=12;

  System.out.println(i+=i-=i*=i);}}

  A) 100

  B) 0

  C) -120

  D) 程序無(wú)法編譯

  41.使用JDBC事務(wù)的步驟是(C,A,B,D)(多選)

  A) 取消Connection的事務(wù)自動(dòng)提交方式

  B) 發(fā)生異;貪L事務(wù)

  C) 獲取Connection對(duì)象

  D) 操作完畢提交事務(wù)

  42.以下對(duì)JDBC事務(wù)描述錯(cuò)誤的是( B )

  A) JDBC事務(wù)屬于JAVA事務(wù)的一種

  B) JDBC事務(wù)屬于容器事務(wù)類(lèi)型

  C) JDBC事務(wù)可以保證操作的完整性和一致性

  D) JDBC事務(wù)是由Connection發(fā)起的,并由Connection控制

  43.要通過(guò)可滾動(dòng)的結(jié)果集更新數(shù)據(jù),以下正確的是(A

  A) pst=con.prepareStatement(sql, ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE)

  B) pst=con.prepareStatement(sql, ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY)

  C) pst=con.prepareStatement(sql, Resu ltSet.TYPE_SCROLL_SENSITIVE)

  D) pst=con.prepareStatement(sql, ResultSet.CONCUR_UPDATABLE)

  44.存儲(chǔ)過(guò)程pro有兩個(gè)參數(shù),第一個(gè)為輸入?yún)?shù),第二個(gè)為輸出參數(shù),以下代碼正確的是(C)

  A) CallableStatement cst=con.prepareCall(“(call pro(?,?))”);

  B) CallableStatement cst=con.prepareCall(“(call pro(?))”);

  C) CallableStatement cst=con.prepareCall(“{call pro(?,?)}”);

  D) CallableStatement cst=con.prepareCall(“{call pro(?,?,?)}”);

  45.以下描述正確的是(B)

  A) CallableStatement是PreparedStatement的父接口

  B) PreparedStatement是CallableStatement的父接口

  C) CallableStatement是Statement的子接口

  D) PreparedStatement是Statement的父接口

  46.要?jiǎng)h除book表中書(shū)籍(bookName)是”java”的記錄,以下代碼正確的是(A

  String sql=” from book where bookName=?”;

  PreparedStatement pst=con.preparedStatement(sql);

  ______________________________

  pst.execute( );

  A) pst.setString(1,”java”);

  B) pst.setString(0,”java”);

  C) pst.setInt(0,”java”);

  D) 以上選項(xiàng)都不正確

  47.獲取ResutlSet對(duì)象rst的第一行數(shù)據(jù),以下正確的是(B)

  A) rst.hashNext( );

  B) rst.next( );

  C) rst.first( );

  D) rst.nextRow( );

  48.以下可以正確獲取結(jié)果集的有(AD)(多選)

  A) Statement sta=con.createStatement( );

  ResultSet rst=sta.executeQuery(“select * from book”);

  B) Statement sta=con.createStatement(“select * from book”);

  ResultSet rst=sta.executeQuery( );

  C) PreparedStatement pst=con.preparedStatement( );

  ResultSet rst=pst.executeQuery(“select * from book”);

  D) PreparedStatement pst=con.preparedStatement(“select * from book”);

  ResultSet rst=pst.executeQuery( );

  49.以下負(fù)責(zé)建立與數(shù)據(jù)庫(kù)連接的是(D)

  A) Statement

  B) PreparedStatement

  C) ResultSet

  D) DriverManager

  50.使用JDBC連接數(shù)據(jù)庫(kù)的順序是(B,A,D,C,E)(多選)

  A) 加載驅(qū)動(dòng)

  B) 導(dǎo)入驅(qū)動(dòng)包

  C) 發(fā)送并處理SQL語(yǔ)句

  D) 建立于數(shù)據(jù)庫(kù)的連接

  E 關(guān)閉連接

  二、簡(jiǎn)答題(各5分,共25分)

  1、在java中如果聲明一個(gè)類(lèi)為final,表示什么意思? (不計(jì)分)

  答:final是最終的意思,final可用于定義變量、方法和類(lèi)但含義不同,聲明為final的類(lèi)不能被繼承。

  1、父類(lèi)的構(gòu)造方法是否可以被子類(lèi)覆蓋(重寫(xiě))?

  答:父類(lèi)的構(gòu)造方法不可以被子類(lèi)覆蓋,因?yàn)楦割?lèi)和子類(lèi)的類(lèi)名是不可能一樣的。

  2、請(qǐng)講述String 和StringBuffer的區(qū)別。

  答:String 類(lèi)所定義的對(duì)象是用于存放”長(zhǎng)度固定”的字符串。

  StringBuffer類(lèi)所定義的對(duì)象是用于存放”長(zhǎng)度可變動(dòng)”的字符串。

  3、如果有兩個(gè)類(lèi)A、B(注意不是接口),你想同時(shí)使用這兩個(gè)類(lèi)的功能,那么你會(huì)如何編寫(xiě)這個(gè)C類(lèi)呢?

  答:因?yàn)轭?lèi)A、B不是接口,所以是不可以直接繼承的,但可以將A、B類(lèi)定義成父子類(lèi),那么C類(lèi)就能實(shí)現(xiàn)A、B類(lèi)的功能了。假如A為B的父類(lèi),B為C的父類(lèi),此時(shí)C就能實(shí)現(xiàn)A、B的功能。

  4、結(jié)合Java視頻Lesson5(多線程),分析sleep( )和wait( )方法的區(qū)別。

  答: Sleeping睡眠的意思 : sleep( ) 方法用來(lái)暫時(shí)中止執(zhí)行的線程。在睡眠后,線程將進(jìn)入就緒狀態(tài)。

  waiting等待的意思: 如果調(diào)用了 wait( ) 方法,線程將處于等待狀態(tài)。用于在兩個(gè)或多個(gè)線程并發(fā)運(yùn)行時(shí)。

  5、談?wù)勀銓?duì)抽象類(lèi)和接口的理解。

  答:定義抽象類(lèi)的目的是提供可由其子類(lèi)共享的一般形式、子類(lèi)可以根據(jù)自身需要擴(kuò)展抽象類(lèi)、抽象類(lèi)不能實(shí)例化、抽象方法沒(méi)有函數(shù)體、抽象方法必須在子類(lèi)中給出具體實(shí)現(xiàn)。他使用extends來(lái)繼承。

  接口:一個(gè)接口允許一個(gè)類(lèi)從幾個(gè)接口繼承而來(lái),Java 程序一次只能繼承一個(gè)類(lèi)但可以實(shí)現(xiàn)幾個(gè)接口,接口不能有任何具體的方法,接口也可用來(lái)定義可由類(lèi)使用的一組常量。其實(shí)現(xiàn)方式是interface來(lái)實(shí)現(xiàn)。

  Java工程師筆試題 2

  1.J2EE 是什么?它包括哪些技術(shù)?

  解答:從整體上講,J2EE 是使用 Java 技術(shù)開(kāi)發(fā)企業(yè)級(jí)應(yīng)用的工業(yè)標(biāo)準(zhǔn),它是 Java 技術(shù)不斷適應(yīng)和促進(jìn)企業(yè)級(jí)應(yīng)用過(guò)程中的產(chǎn)物.適用于企業(yè)級(jí)應(yīng)用的 J2EE,提供一個(gè)平臺(tái) 獨(dú)立的、可移植的、多用戶(hù)的、安全的和基于標(biāo)準(zhǔn)的企業(yè)級(jí)平臺(tái),從而簡(jiǎn)化企業(yè)應(yīng)用的開(kāi)發(fā)、管理和部署。J2EE 是一個(gè)標(biāo)準(zhǔn),而不是一個(gè)現(xiàn)成的產(chǎn)品。

  主要包括以下這些技術(shù):

  1) Servlet

  Servlet 是 Java 平臺(tái)上的 CGI 技術(shù)。Servlet 在服務(wù)器端運(yùn)行,動(dòng)態(tài)地生成 Web 頁(yè)面。與傳統(tǒng)的 CGI和許多其它類(lèi)似 CGI 的技術(shù)相比,Java Servlet 具有更高的效率并更容易使用。對(duì)于 Servlet,重復(fù)的請(qǐng)求不會(huì)導(dǎo)致同一程序的多次轉(zhuǎn)載,它是依靠線程的方式來(lái)支持并發(fā)訪問(wèn)的。

  2)JSP

  JSP(Java Server Page)是一種實(shí)現(xiàn)普通靜態(tài) HTML 和動(dòng)態(tài)頁(yè)面輸出混合編碼的技術(shù)。從這一點(diǎn)來(lái)看,非常類(lèi)似 MicrosoftASP、PHP 等技術(shù)。借助形式上的內(nèi)容和外觀表現(xiàn)的分離,Web 頁(yè)面制作的任務(wù)可以比較方便地劃分給頁(yè)面設(shè)計(jì)人員和程序員,并方便地通過(guò)JSP 來(lái)合成。在運(yùn)行時(shí)態(tài),JSP 將會(huì)被首先轉(zhuǎn)換成 Servlet,并以 Servlet 的形態(tài)編譯運(yùn)行,因此它的效率和功能與 Servlet 相比沒(méi)有差別,一樣具有很高的效率。

  3) EJB

  EJB 定義了一組可重用的組件:Enterprise Beans。開(kāi)發(fā)人員可以利用這些組件,像搭積木一樣建立分布式應(yīng)用。

  4)JDBC

  JDBC(Java Database Connectivity , Java 數(shù)據(jù)庫(kù)連接)API 是 一 個(gè) 標(biāo) 準(zhǔn) SQL(Structured QueryLanguage,結(jié)構(gòu)化查詢(xún)語(yǔ)言)數(shù)據(jù)庫(kù)訪問(wèn)接口,它使數(shù)據(jù)庫(kù)開(kāi)發(fā)人員能夠用標(biāo)準(zhǔn) Java API 編寫(xiě)數(shù)據(jù)庫(kù)應(yīng)用程序。JDBC API 主要用來(lái)連接數(shù)據(jù)庫(kù)和直接調(diào)用 SQL 命令執(zhí)行各種 SQL 語(yǔ)句。利用 JDBC API 可以執(zhí)行一般的 SQL 語(yǔ)句、 動(dòng)態(tài) SQL 語(yǔ)句及帶 IN 和 OUT 參數(shù)的存儲(chǔ)過(guò)程。 Java 中的 JDBC 相當(dāng)于 Microsoft平臺(tái)中的 ODBC(Open DatabaseConnectivity)。

  2.測(cè)試生命周期、測(cè)試過(guò)程分為幾個(gè)階段,以及各階段的含義?

  解答:軟件測(cè)試生命周期一般包括 6 個(gè)階段:1)計(jì)劃 2)分析,3)設(shè)計(jì),4)構(gòu)建,5)測(cè)試周期,6)最后測(cè)試和實(shí)施,1) 計(jì)劃:產(chǎn)品定義階段2).分析:外部文檔階段3).設(shè)計(jì):文檔架構(gòu)階段4).構(gòu)建:單元測(cè)試階段5).測(cè)試周期:錯(cuò)誤修正,重復(fù)系統(tǒng)測(cè)試階段6).最后的測(cè)試和實(shí)施:代碼凍結(jié)階段

  4.什么是 Web 容器?

  解答:容器就是一種服務(wù)程序,在服務(wù)器一個(gè)端口就有一個(gè)提供相應(yīng)服務(wù)的程序,而這個(gè)程序就是處理從客戶(hù)端發(fā)出的請(qǐng)求,如 JAVA 中的 Tomcat 容器,ASP 的 IIS 或 PWS 都是這樣的容器。

  5.運(yùn)行時(shí)異常與一般異常有何異同?

  解答:異常表示程序運(yùn)行過(guò)程中可能出現(xiàn)的非正常狀態(tài),運(yùn)行時(shí)異常表示虛擬機(jī)的通常操作中可能遇到的異常,是一種常見(jiàn)運(yùn)行錯(cuò)誤。java 編譯器要求方法必須聲明拋出可能發(fā)生的非運(yùn)行時(shí)異常,但是并不要求必須聲明拋出未被捕獲的運(yùn)行時(shí)異常。

  9.試述數(shù)據(jù)庫(kù)完整保護(hù)的主要任務(wù)和措施。

  解答:數(shù)據(jù)庫(kù)的完整性保護(hù)也就是數(shù)據(jù)庫(kù)中數(shù)據(jù)正確性的維護(hù)。數(shù)據(jù)庫(kù)完整性包括三個(gè)內(nèi)容:實(shí)體完整性規(guī)則,參照物完整性規(guī)則以及用戶(hù)定義完整性規(guī)則。前兩個(gè)是有 DBMS 自動(dòng)處理。實(shí)體完整性規(guī)則是說(shuō)針對(duì)于基表中的關(guān)鍵字中屬性值不能為空值,是數(shù)據(jù)庫(kù)完整性的基本要求,主關(guān)鍵字和元組的唯一性對(duì)應(yīng)。參照物完整性規(guī)則是不允許引用不存在的元組:即基表中的外關(guān)鍵字要么為空,要么關(guān)聯(lián)基表中必存在元組。用戶(hù)定義完整性規(guī)則針對(duì)具體的數(shù)據(jù)環(huán)境由用戶(hù)具體設(shè)置的規(guī)則,它反應(yīng)了具體應(yīng)用中的語(yǔ)義要求。一個(gè)完整性規(guī)則一般由下面三部分組成:完整性約束條件設(shè)置,完整性約束條件的檢查以及完整性約束條件的處理.后兩部分在數(shù)據(jù)庫(kù)中一般有相應(yīng)的模塊處理。另外觸發(fā)器也可以做完整性的保護(hù),但觸發(fā)器大量用于主動(dòng)性領(lǐng)域。

  12.類(lèi)有哪三個(gè)基本特性?各特性的優(yōu)點(diǎn)?

  解答:類(lèi)具有封裝性、繼承性和多態(tài)性。

  封裝性:類(lèi)的封裝性為類(lèi)的成員提供公有、缺省、保護(hù)和私有等多級(jí)訪問(wèn)權(quán)限,目的是隱藏類(lèi)中的私有變量和類(lèi)中方法的實(shí)現(xiàn)細(xì)節(jié)。

  繼承性:類(lèi)的繼承性提供從已存在的類(lèi)創(chuàng)建新類(lèi)的機(jī)制,繼承(inheritance)使一個(gè)新類(lèi)自動(dòng)擁有被繼承類(lèi)(父類(lèi))的全部可繼承的成員。

  多態(tài)性:類(lèi)的多態(tài)性提供類(lèi)中方法執(zhí)行的多樣性,多態(tài)性有兩種表現(xiàn)形式:重載和覆蓋。

  13.談?wù)剬?duì) XML 的理解?說(shuō)明 Web 應(yīng)用中 Web.xml 文件的作用?

  解答:XML(Extensible Markup Language)即可擴(kuò)展標(biāo)記語(yǔ)言,它與 HTML 一樣,都是 SGML(Standard GeneralizedMarkup Language,標(biāo)準(zhǔn)通用標(biāo)記語(yǔ)言)。Xml 是 Internet 環(huán)境中跨平臺(tái)的,依賴(lài)于內(nèi)容的技術(shù),是當(dāng)前處理結(jié)構(gòu)化文檔信息的有力工具。擴(kuò)展標(biāo)記語(yǔ)言 XML 是一種簡(jiǎn)單的數(shù)據(jù)存儲(chǔ)語(yǔ)言,使用一系列簡(jiǎn)單的標(biāo)記描述數(shù)據(jù),而這些標(biāo)記可以用方便的方式建立,雖然 XML 占用的空間比二進(jìn)制數(shù)據(jù)要占用更多的空間,但 XML 極其簡(jiǎn)單易于掌握和使用。web.xml的作用是配置歡迎頁(yè),servlet,filter,listener 等的。

  14.jsp 有哪些內(nèi)置對(duì)象?作用分別是什么?(至少三個(gè))

  解答:1)request 表示 HttpServletRequest 對(duì)象。它包含了有關(guān)瀏覽器請(qǐng)求的信息,并且提供了幾個(gè)用于獲取cookie, header 和 session 數(shù)據(jù)的有用的方法。

  2)response 表示 HttpServletResponse 對(duì)象,并提供了幾個(gè)用于設(shè)置送回瀏覽器的響應(yīng)的方法(如cookies,頭信息等)。

  3)out 對(duì)象是javax.jsp.JspWriter 的一個(gè)實(shí)例, 并提供了幾個(gè)方法使你能用于向?yàn)g覽器回送輸出結(jié)果。

  4)pageContext 表示一個(gè) javax.servlet.jsp.PageContext 對(duì)象。它是用于方便存取各種范圍的名字空間、servlet 相關(guān)的對(duì)象的 API,并且包裝了通用的servlet 相關(guān)功能的方法。

  5)session 表示一個(gè)請(qǐng)求的 javax.servlet.http.HttpSession 對(duì)象。Session 可以存貯用戶(hù)的狀態(tài)信息。

  6)application 表示一個(gè) javax.servle.ServletContext 對(duì)象。這有助于查找有關(guān) servlet 引擎和servlet 環(huán)境的信息。

  7)config 表示一個(gè) javax.servlet.ServletConfig 對(duì)象。該對(duì)象用于存取 servlet 實(shí)例的初始化參數(shù)。

  8)page 表示從該頁(yè)面產(chǎn)生的一個(gè)servlet 實(shí)例。

  9)exception 針對(duì)錯(cuò)誤網(wǎng)頁(yè),未捕捉的例外

  15.事務(wù)是什么?有哪些屬性,并簡(jiǎn)要說(shuō)明這些屬性的`含義。

  解答:事務(wù)(Transaction)是訪問(wèn)并可能更新數(shù)據(jù)庫(kù)中各種數(shù)據(jù)項(xiàng)的一個(gè)程序執(zhí)行單元(unit)。事務(wù)通常由高級(jí)數(shù)據(jù)庫(kù)操縱語(yǔ)言或編程語(yǔ)言(如 SQL,C++或 Java)書(shū)寫(xiě)的用戶(hù)程序的執(zhí)行所引起,并用形如 begin transaction 和 end transaction 語(yǔ)句(或函數(shù)調(diào)用)來(lái)界定。事務(wù)由事務(wù)開(kāi)始(begintransaction)和事務(wù)結(jié)束(end transaction)之間執(zhí)行的全體操作組成。事務(wù)應(yīng)該具有 4 個(gè)屬性:原子性、一致性、隔離性、持續(xù)性。這四個(gè)屬性通常稱(chēng)為 ACID 特性。

  (atomicity)。一個(gè)事務(wù)是一個(gè)不可分割的工作單位,事務(wù)中包括的諸操作要么都做,要么都不做。

  一致性(consistency)。事務(wù)必須是使數(shù)據(jù)庫(kù)從一個(gè)一致性狀態(tài)變到另一個(gè)一致性狀態(tài)。一致性與原子性是密切相關(guān)的。

  隔離性(isolation)。一個(gè)事務(wù)的執(zhí)行不能被其他事務(wù)干擾。即一個(gè)事務(wù)內(nèi)部的操作及使用的數(shù)據(jù)對(duì)并發(fā)的其他事務(wù)是隔離的,并發(fā)執(zhí)行的各個(gè)事務(wù)之間不能互相干擾。

  持久性(durability)。持續(xù)性也稱(chēng)永久性(permanence),指一個(gè)事務(wù)一旦提交,它對(duì)數(shù)據(jù)庫(kù)中數(shù)據(jù)的改變就應(yīng)該是永久性的。接下來(lái)的其他操作或故障不應(yīng)該對(duì)其有任何影響。

  19、HashMap 和 Hashtable 的區(qū)別?

  解答:HashMap 是 Hashtable 的輕量級(jí)實(shí)現(xiàn)(非線程安全的實(shí)現(xiàn)) ,他們都實(shí)現(xiàn)了 Map 接口,主要區(qū)別在于HashMap 允許空(null)鍵值(key),由于非線程安全,效率上高于 Hashtable。HashMap 允許將 null 作為一個(gè) entry 的 key 或者 value, Hashtable 不允許HashMap 把 Hashtable 的 contains方法去掉了,改成 containsvalue 和 containsKey。因?yàn)?contains 方法容易讓人引起誤解Hashtable繼承自 Dictionary 類(lèi),而 HashMap 是 Java1.2 引進(jìn)的 Map interface 的一個(gè)實(shí)現(xiàn)。最大的不同是,Hastable 的方法是 synchronize 的,而 HashMap 不是,在多個(gè)線程訪問(wèn) Hashtable 時(shí),不需要自己為s它的方法實(shí)現(xiàn)同步,而 HashMap 就必須為之提供同步。

  20.請(qǐng)說(shuō)出 ArrayList,Vector, LinkedList 的存儲(chǔ)性能和特性

  解答: ArrayList 和 Vector 都是使用數(shù)組方式存儲(chǔ)數(shù)據(jù),此數(shù)組元素?cái)?shù)大于實(shí)際存儲(chǔ)的數(shù)據(jù)以便增加和插入元素,它們都允許直接按序號(hào)索引元素,但是插入元素要涉及數(shù)組元素移動(dòng)等內(nèi)存操作,所以索引數(shù)據(jù)快而插入數(shù)據(jù)慢,Vector 由于使用了 synchronized 方法(線程安全),通常性能上較ArrayList 差,而 LinkedList 使用雙向鏈表實(shí)現(xiàn)存儲(chǔ),按序號(hào)索引數(shù)據(jù)需要進(jìn)行前向或后向遍歷,但是插入數(shù)據(jù)時(shí)只需要記錄本項(xiàng)的前后項(xiàng)即可,所以插入速度較快。

  21.描述 J2EE 框架的多層結(jié)構(gòu),并簡(jiǎn)要說(shuō)明各層的作用。

  解答:

  1)Presentation layer(表示層)

  a.表示邏輯(生成界面代碼)

  b.接收請(qǐng)求

  c.處理業(yè)務(wù)層拋出的異常

  d.負(fù)責(zé)規(guī)則驗(yàn)證(數(shù)據(jù)格式,數(shù)據(jù)非空等)

  e.流程控制

  2) Service layer(服務(wù)層/業(yè)務(wù)層)

  a.封裝業(yè)務(wù)邏輯處理,并且對(duì)外暴露接口

  b.負(fù)責(zé)事務(wù),安全等服務(wù)

  3) Persistence layer(持久層)

  a.封裝數(shù)據(jù)訪問(wèn)的邏輯,暴露接口

  b.提供方便的數(shù)據(jù)訪問(wèn)的方案(查詢(xún)語(yǔ)言,API,映射機(jī)制等)

  4)Domain layer(域?qū)樱?/p>

  a.業(yè)務(wù)對(duì)象以及業(yè)務(wù)關(guān)系的表示

  b.處理簡(jiǎn)單的業(yè)務(wù)邏輯

  c.域?qū)拥膶?duì)象可以穿越表示層,業(yè)務(wù)層,持久層軟件分層結(jié)構(gòu)使得代碼維護(hù)非常方便,設(shè)計(jì)明確,各層獨(dú)立,專(zhuān)注自己擅長(zhǎng)的領(lǐng)域。

  23.簡(jiǎn)要描述如何結(jié)合 struts、hibernate、spring 開(kāi)發(fā) Web 應(yīng)用?

  解答:Struts 可以將 jsp 頁(yè)面的表單關(guān)聯(lián)起來(lái),就是把 JSP 頁(yè)面的表單數(shù)據(jù)封裝成 javaBean,這樣的話,在 action 中你再也不需要使用傳統(tǒng)的 request.getParameter("name");還有 struts 有一個(gè)控制器,你在 struts 編程中的控制器(XxxAction)都是繼承總的 ActionServlet,它能集中處理請(qǐng)求,然后轉(zhuǎn)到相關(guān)的頁(yè)面。還有 struts 的表單驗(yàn)證組件,不用你寫(xiě) js 驗(yàn)證了,只需要你配置一下文件就可以了。另外 struts 的令牌機(jī)制可以防表單重復(fù)提交。

  Spring 是一個(gè)輕量級(jí)容器,非侵入性.包含依賴(lài)注入,AOP 等。它是為了解決企業(yè)應(yīng)用程序開(kāi)發(fā)復(fù)雜性而創(chuàng)建的?蚣艿闹饕獌(yōu)勢(shì)之一就是其分層架構(gòu),分層架構(gòu)允許您選擇使用哪一個(gè)組件,同時(shí)為J2EE 應(yīng)用程序開(kāi)發(fā)提供集成的框架。

  Hibernate:它可以讓我們以 OO 的方式操作數(shù)據(jù)庫(kù),這讓我們看到了 hibernate 的強(qiáng)大之處,體驗(yàn)到操作數(shù)據(jù)的方便。但 hibernate 最耀眼之處是 hibernate 的緩存機(jī)制,而不是以 OO 的方式操作數(shù)據(jù)庫(kù)。Hibernate 的緩存機(jī)制不外乎是一級(jí)緩存 session,二級(jí)緩存 sessionFactory,和第三方緩存 如 ehcache 。 也就 是 hibernate 的 最 強(qiáng)大 的地 方 是 它的 緩存 , 理解了 這 個(gè) 才能 真正 的 理解hibernate,Hibernate 的命名查詢(xún)/命名參數(shù)查詢(xún), 就是將 hql 語(yǔ)句放在一個(gè)單獨(dú)的 xml 文件之中, 它仍然讓人們以面向?qū)ο蟮姆绞饺ゲ倏v數(shù)據(jù),而不用在以 OO 的方式寫(xiě)著代碼的同時(shí),然后再轉(zhuǎn)變思維,用面向關(guān)系的方式去寫(xiě)那些 sql 語(yǔ)句。但 hibernate不僅做了這些,它的native sql 查詢(xún)方式,完全滿(mǎn)足 sql 語(yǔ)句的偏愛(ài)者,它像 ibatis 一樣,將 sql 語(yǔ)句放在配置文件之中

  24.列出自己常用的 jdk 包

  解答:JDK 常用的 package

  java.lang:這個(gè)是系統(tǒng)的基礎(chǔ)類(lèi),比如 String 等都是這里面的,這個(gè) package 是唯一一個(gè)可以不用 import 就可以使用的 Package

  java.io: 這里面是所有輸入輸出有關(guān)的類(lèi),比如文件操作等

  java.net: 這里面是與網(wǎng)絡(luò)有關(guān)的類(lèi),比如 URL,URLConnection 等。

  java.util : 這個(gè)是系統(tǒng)輔助類(lèi),特別是集合類(lèi) Collection,List,Map 等。

  java.sql: 這個(gè)是數(shù)據(jù)庫(kù)操作的類(lèi),Connection, Statememt,ResultSet 等

【Java工程師筆試題】相關(guān)文章:

Java工程師面試題03-29

Java工程師面試題及答案03-14

java軟件開(kāi)發(fā)工程師筆試題10-26

java中級(jí)工程師面試題03-30

軟通動(dòng)力Java工程師筆試題08-07

某公司Java工程師面試題筆試題目04-03

java筆試題10-26

Java工程師面試常考試題及答案03-12

中興Java Web開(kāi)發(fā)工程師筆試題及答案02-10