1. 程式人生 > >JAVA實習生/應屆生面試筆試題(一)

JAVA實習生/應屆生面試筆試題(一)

一:單選題

1. 下列哪一種敘述是正確的(D 
Aabstract修飾符可修飾字段、方法和類
B. 抽象方法的body部分必須用一對大括號{ }包住
C. 宣告抽象方法,大括號可有可無
D宣告抽象方法不可寫出大括號

2. 如下程式碼
public class Test {
public int aMethod() {
static int i = 0;i++;
return i;
}
public static void main (String args[]) {
Test test = new Test();
test.aMethod();
int j = test.aMethod();
System.out.println(j);
}
}
輸出結果是什麼?

 D
A. 0
B. 1
C. 2
D.編譯失敗

3. 下列哪種說法是正確的( D
A. 例項方法可直接呼叫超類的例項方法
B. 例項方法可直接呼叫超類的類方法
C. 例項方法可直接呼叫其他類的例項方法
D例項方法可直接呼叫本類的類方法

4. 如下程式碼:
class Super {
public Integer getLenght() { return new Integer(4); }
}

public class Sub extends Super {
public Long getLenght() { return new Long(5); }
public static void main(String[] args) {
Super sooper = new Super();
Sub sub = new Sub();
System.out.println(sooper.getLenght().toString() + "," +
 sub.getLenght().toString() );
}
}
輸出是什麼?   A


A. 4,4
B. 4,5
C. 5,4
D. 5,5
E. 編譯失敗.---------重定時不能改變返回型別

5. 在Servlet處理請求的方式為:   C
A.以程序的方式
B.以程式的方式
C.以執行緒的方式
D.以響應的方式

6. JDBC中,用於表示資料庫連線的物件是:   B
A.Statement
B.Connection
C.DriverManager
D.PreparedStatement

7. 用於呼叫儲存過程的物件是:   C
A.ResultSet
B.DriverManager
C.CallableStatemet
D.PreparedStatement

8. 按照MVC設計模式,JSP用於實現:   B


A.Model
B.View
C.Controller
D.容器

9. 如下程式碼
10. public Object m() {
11. Object o = new Float(3.14F);
12. Object [] oa = new Object[1];
13. oa[0] = o;
14. o = null;
15. oa[0] = null;
16. print 'return 0';
17. }
當Float物件在第11行被建立後, 什麼時候能夠被垃圾回收?   C
A. 13行以後.
B. 14行以後.
C. 15行以後.
D. 16行以後.

10. 如下程式碼:
class Base {
Base() { System.out.print("Base"); }
}
public class Alpha extends Base {
public static void main( String[] args ) {
new Alpha(); -----呼叫父類無參的構造方法new Base();
}
}
結果是什麼?   B
A. Base
B. BaseBase
C. 編譯失敗.
D. 程式碼執行但沒有輸出.
E. 執行時丟擲異常

11. 在J2EE中屬於Web層的元件有:   A
A.Servlet
B.EJB
C.Applet
D.HTML

12. 在Servlet的生命週期中,容器只調用一次的方法是:   C
A.service
B.getServletConfig
C.init
D.destroy

13. 以下關於異常的說法正確的是:D

. 一旦出現異常,程式執行就終止了  

. 如果一個方法申明將丟擲某個異常,它就必須真的丟擲那個異常 

. catch子句中匹配異常是一種精確匹配

. 可能丟擲系統異常的方法是不需要申明異常的

14. 如下程式碼:
public class Foo {
public static void main(String[] args) {
try {
return;
} finally {
System.out.println( "Finally" );
}
}
}
輸出結果是什麼?   A
A. Finally
B.編譯失敗
C. 程式碼正常執行但沒有任何輸出.
D. 執行時丟擲異常

15.  jsp指令中isELIgnored="boolean"的意思是(C 

A.決定是否實現Servler的單執行緒模式,

B.決定改頁面是否是一個錯誤處理頁面,

C.決定是否支援EL表示,

D.沒有具體的含義。

16. 下面關於Java的引用,說法正確的是:B

. 應用實際上就是指標  

. 應用本身是Primitive ???????????????????????????

. 引用就是物件本身

. 一個物件只能被一個引用所指引

17. 對於import java.util包,以下那種說法是錯誤的C

. Vector類屬於java.util包  

. Vector類放在…/java/util/目錄下  

. Vector類放在java.util檔案中 

. Vector類是Sun公司的產品

18. 在一個執行緒中Sleep1000)方法,將使得該執行緒在多少時間後獲得對CPU的控制(假設睡眠過程中不會有其他事件喚醒該執行緒)?C

. 正好1000毫秒  

. 1000毫秒不到  

. =>1000毫秒

. 不一定

19. 在WEB-INF目錄下,必須存放的檔案為:   B
A.class檔案
B.web.xml
B.jar檔案
D.html檔案

20. 下面關於垃圾收集的說法正確的是:D

. 一旦一個物件成為垃圾,就立刻被收集掉。

. 物件空間被收集掉之後,會執行該物件的finalize方法

. finalize方法和C++的解構函式是完全一回事情

. 一個物件成為垃圾是因為不再有引用指著它,但是執行緒並非如此。

21. 下面的語句會產生什麼樣的輸出 A
System.out.println(4&7);
  A.4
  B.5
  C.6
  D.7
  E.0

22. 下面的程式中,temp的最終值是什麼?  B
long temp=(int)3.9;
temp%=2;
  A .0
  B .1
  C .2
  D .3
  E .4

23. 下面哪個不是JAVA關鍵字  A
  A integer
  B  double
  C  float
  D  default

24. Which method is used by a Servlet to place its session ID in a URL that is written to the servlet’s response output stream?    B
A. The encodeURL method of the HttpServletRequest interface.
B. The encodeURL method of the HttpServletResponse interface.
C. The rewriteURL method of the HttpServletRequest interface.
D. The rewriteURL method of the HttpServletResponse interface.

25.  每個使用Swing構件的程式必須有一個(   ).    D
    A.按鈕     B.標籤     C.選單  D.容器  

26. 下列識別符號(名字)命名原則中,正確的是( )  D
  A. 類名的首字母小寫

B. 變數和方法名的首寫字母大寫
C. 介面名的首寫字母小寫

D. 常量完全大寫

27. Test1定義如下:
1public class Test1{
2public float aMethodfloat afloat b{ return 0;}
3
4}
將以下哪種方法插入行3是不合法的。B 
Apublic float aMethodfloat afloat bfloat c{ return 0;}
Bpublic float aMethodfloat cfloat d{ return 0;}
Cpublic int aMethodint aint b{ return 0;}
Dprivate float aMethodint aint bint c{ return 0;}

28. 哪個語句建立了一個數組例項 A
A. int[] ia = new int [15];
B. float fa = new float [20];
C. char[] ca = “Some String”;
D. int ia [][] = {4, 5, 6} {1, 2, 3};

29. public修飾的類如:public class Car{…} Car( )   A
A、可被其它程式包中的類使用 B、僅能被本程式包中的類使用
C、不能被任意其它類使用 D、不能被其它類繼承

30. 下列哪個屬於容器型構件( )   C
A .JEdit   B.JButton   C.JPanel   D.JTextField

31. Java程式的執行過程中用到一套JDK工具,其中java.exe是指( )   B
A.Java文件生成器 B.Java直譯器
C.Java編譯器 D.Java類分解器

32. 下列關於構造方法的敘述中,錯誤的是( )   C
  A. Java語言規定構造方法名與類名必須相同
  B. Java語言規定構造方法沒有返回值,但不用vold宣告
  C. Java語言規定構造方法不可以過載
  D. Java語言規定構造方法只能通過new自動呼叫

33. 建構函式何時被呼叫( )   B
A.類定義時 B.建立物件時
C.呼叫物件方法時 D.使用物件的變數時

34. break語句( )   D
A、只中斷最內層的迴圈 B、只中斷最外層的迴圈
C、藉助於標號,可以實現任何外層迴圈中斷 D、只中斷某一層的迴圈

35. Java語言中下面哪個可以用作正確的變數名稱 B
A3D  Bname  Cextends  Dimplements

36. JavaScript中如何驗證一個數據是否是數字(D

A.如果用Integer.parseInt(value)有誤就不是數字

B. int I = value 若報錯就不是數字,

C. 沒有方法驗證

D .利用isNaN(value) 返回的boolean進行判斷

------返回一個 Boolean 值,指明提供的值是否是保留值 NaN (不是數字)。

37. 下面哪一個不能作JSP的伺服器( D)
A. IBM WebSphere   B. BEA WebLogic   C. Tomcat    D. pws

38. 下面哪項不是JSP操作指令( D ) ------???????????????????????
A. getProperty       B. forward
C. include            D. import

39. 如果希望控制元件在介面上按表格行分列排列,應使用下列那種佈局管理器?( B)
ABoxLayout  BGridLayout  CBorderLayout  DFlowLouLayout

40. 下面哪一項不是Java類訪問控制關鍵字( C )
A. public B. protected
C. this D. private

41. 在配置tomcat虛擬目錄時,需要開啟哪個檔案? ( C )
A. index.jsp          B. web.xml          C.server.xml        D.以上都不是

42. 下面哪個不是表單標記(  D  )
A. INPUT  B.RADIO  C.CHECKBOX  D. TR

43. 下面哪項不是response物件的方法( C )
A. setContentType(String contentTypestr)
B. setHeader(String headername,String headervalue)
C. getParameter(String str)
D. sendError(int errorcode)

44. 以下( B  )是編寫Servlet必須匯入的包.
A.java.sql.* B.java.servlet.* C.java.util.* D.java.lang.*

45. 下面哪項不屬於SQL語句的子類(  D )
A. 資料定義語言(DDL)
B. 資料查詢語言(DQL)
C. 事務控制語言(TCL)
D. 資料插入語言 (DIL)

46. 選出所有正確的答案
 public class Outer{
 public void someOuterMethod() {
 // Line 3
 }
 public class Inner{}
 public static void main( String[]argv ) {
 Outer o = new Outer();
 // Line 8
 }
 }

Which instantiates an instance of Inner?  A  
A. new Inner(); // At line 3
B. new Inner(); // At line 8
C. new o.Inner(); // At line 8
D. new Outer.Inner(); // At line 8

二:多選題

1. 下列屬於jsp中註釋的有(  AD )

 A.<%--  --%>

 B. /

 C. /** **/

D.  <!-- -->

2. 按照學生平均成績(avg_grade) 將students表中的資料檢索出來,下面SQL語句正確的是(  ACD )
A) SELECT * FROM students ORDER BY avg_grade
B) SELECT * FROM students GROUP BY avg_grade ASC
C) SELECT * FROM students ORDER BY avg_grade DESC
D) SELECT * FROM students ORDER by avg_grade asc

3. 下列是jsp作用域的通訊物件的有(  ABC    )

 A.Session

B.  application

 C.pageContext

D.cookie

4. 在介面中以下哪條定義是正確的? ( AB  )
A. void methoda();
B. public double methoda();
C. public final double methoda();
D. static void methoda(double d1);
E. protected void methoda(double d1);

5.   下面哪個語句正確地宣告一個整型的二維陣列?CDE 
  A. int   a[][]   =   new   int[][]
  B. int   a[10][10]   =   new   int[][]
  C. int   a[][]   =   new   int[10][10]
  D. int   [][]a   =   new   int[10][10]
  E. int   []a[]   =   new   int[10][10]

6. 下面哪些不是java的簡單資料型別?    BC
A. short  B. Boolean  C. Double  D. float

7. 下面哪些語句能夠正確地生成5個空字串? AB        
  A.String   a[]=new   String[5]for(int   i=0i<5a[i++]=“”)
  B.String   a[]={“”“”“”“”“”}
  C.String   a[5]
  D.String[5]a
  E.String   []a=new   String[5]for(int   i=0i<5a[i++]=null)

8. 下列說法錯誤的有( BCD
A. 陣列是一種物件
B. 陣列屬於一種原生類
Cint number=[]={31,23,33,43,35,63}
D. 陣列的大小可以任意改變

9. 不能用來修飾interface的有(ACD 
Aprivate  Bpublic  Cprotected  Dstatic

10. 下列說法錯誤的有(ACD 
A. 在類方法中可用this來呼叫本類的類方法
B. 在類方法中呼叫本類的類方法時可直接呼叫
C. 在類方法中只能呼叫本類中的類方法
D. 在類方法中絕對不能呼叫例項方法

11. 如下程式碼
class A {
A() { }
}

class B extends A {
}
哪兩個說明是正確的?  BD
A. B類的構造器應該是 public.
B. B類的構造器應該是沒有引數
C. B類的構造器應該呼叫this().
D. B類的構造器應該呼叫super().

12. 下列識別符號不合法的有( ACD
Anew  B$Usdollars  C1234  Dcar.taxi

13. 在介面中以下哪條定義是正確的?   AB

A. void methoda();
B. public double methoda();
C. public final double methoda();
D. static void methoda(double d1);
E. protected void methoda(double d1);

14. 以下哪四個能使用throw丟擲?   ADEF
A. Error
B. Event
C. Object
D. ThrowableE. ExceptionF. RuntimeException

15. javax.Servlet的包中,屬於類的是:   BC
A.Servlet
B.GenericServletC.ServletException
D.ServletContext

16. 如下程式碼:
public class X {
public X aMethod() { return this;}
}
public class Y extends X {
  
}
哪兩個方法能加到Y類的定義中?    CE
A. public void aMethod() {}
B. private void aMethod() {}
C. public void aMethod(String s) {
D. private Y aMethod() { return null; }
E. public X aMethod() { return new Y(); }

17. 對該段程式碼描述正確的有<% int i = Integer.parseInt(request.getParemeter(“value”)) %>(  BDC  )    

A) 不會有錯

B)  valueint 型別不匹配時回報錯

C )  value=""時會報錯

D) 為了安全起見應該將該段程式碼放在try{}和catch(){}之間

18. 選出所有正確的答案
Which two are equivalent?     BG

A. <%= YoshiBean.size%>
B. <%= YoshiBean.getSize()%>
C. <%= YoshiBean.getProperty("size")%>
D. <JSP:getProperty id="YoshiBean" param="size"/>
E. <jsp:getProperty name="YoshiBean" param="size"/>
F. <jsp:getProperty id="YoshiBean" property="size"/>
G. <jsp:getProperty name="YoshiBean" property="size"/>

19. 下面哪三個描述是正確的?   BCE
A. 預設構造器初始化方法變數
B. 預設構造器有和它所在類相同的訪問修飾詞.
C. 預設構造器呼叫其父類的無參構造器.
D. 如果一個類沒有無參構造器,編譯器會它建立一個預設構造器.
E. 只有當一個類沒有任何構造器時,編譯器會為它建立一個預設構造器

20. 哪二種宣告防止方法覆蓋?   AD

A、final void methoda() {}

B、void final methoda() {}

C、static void methoda() {}

D、static final void methoda() {}

E、final abstract void methoda() {}

三:簡答題

1. JSP和Servlet有哪些相同點和不同點,他們之間的聯絡是什麼? 

JSP是Servlet技術的擴充套件,本質上是Servlet的簡易方式,更強調應用的外表表達。JSP編譯後是"類servlet"。Servlet和JSP最主要的不同點在於,Servlet的應用邏輯是在Java檔案中,並且完全從表示層中的HTML裡分離開來。而JSP的情況是Java和HTML可以組合成一個副檔名為.jsp的檔案。JSP側重於檢視,Servlet主要用於控制邏輯。

2. swtich是否能作用在byte上,是否能作用在long上,是否能作用在String?

switch(expr1)中,expr1是一個整數表示式。因此傳遞給 switch 和 case 語句的引數應該是 int、 short、 char 或者 byte。long,string 都不能作用於swtich。

3. 如何利用ServletContext和ServletConfig物件獲得初始化引數

String psw = config.getInitParameter("psw");

ServletContext ss = config.getServletContext();

String ppp = ss.getInitParameter("name");

1. 如何用css約束一個層不可見?

  <div style="display:none"> </div>  -----表示不可見

  <div style="display:block"> </div>------表示可見

2. 在表單中存在一組名稱為checkbox1的多選框,如何才能取得這些多選框內的值?

在頁面中用javaScript方式取值

<script>

function  sss(){

         var str = document.getElementsByName("checkbox1");   

var checkValue = new Array();      

for(var i=0;i<str.length;i++){

            if(str[i].checked){

alert(str[i].value);

}

         }      

      }    

</script>

Function sss()

Var str=document.getElementsByName(checkbox1);

Var checkValue=new Array()

For(var i=0;i<str.length;i++){

If(str[i].checked){

Alert(str[i].value);

}

}

  Servlet中取值

   String str[] = request.getParameterValues("checkbox1");

3. 說出資料連線池的工作機制是什麼?

J2EE伺服器啟動時會建立一定數量的池連線,並一直維持不少於此數目的池連線。客戶端程式需要連線時,池驅動程式會返回一個未使用的池連線並將其標記為忙。如果當前沒有空閒連線,池驅動程式就新建一定數量的連線,新建連線的數量由配置引數決定。當使用的池連線呼叫完成後,池驅動程式將此連線表記為空閒,其他呼叫就可以使用這個連線。

4. 多執行緒有幾種實現方法,都是什麼?同步有幾種實現方法,都是什麼?

多執行緒有兩種實現方法,分別是繼承Thread類與實現Runnable介面
同步的實現方面有兩種,分別是synchronized,waitnotify

5. 一個頁面在開啟時,需要處理一些事情(比如彈出一個廣告頁),需要定義視窗的什麼事件?

<script>

        window.onload=function(){…}

</script>

或是

<body onload="">

6. HTML的Form和XFORM的區別

7. 描述forwardredirect的區別

forward是伺服器請求資源,伺服器直接訪問目標地址的URL,目標地址可以接收request 請求引數,然後把結果發給瀏覽器,瀏覽器根本不知道伺服器傳送的內容是從哪兒來的,所以它的位址列中還是原來的地址。
redirect就是服務端根據邏輯,傳送一個狀態碼,告訴瀏覽器重新去請求哪個地址,瀏覽器會重新進行請求,此時不能用request傳值,瀏覽器的位址列會變成新的地址

8. Static變數是什麼含義

   static是靜態變數,就是變數值不隨函式執行結束而消失,下次呼叫同一函式時,上次所賦予的值仍存在。

9. 垃圾回收器的基本原理是什麼?垃圾回收器可以馬上回收記憶體嗎?有什麼辦法主動通知虛擬機器進行垃圾回收

對於GC來說,當程式設計師建立物件時,GC就開始監控這個物件的地址、大小以及使用情況。通常,GC採用有向圖的方式記錄和管理堆(heap)中的所有物件。通過這種方式確定哪些物件是"可達的",哪些物件是"不可達的"。當GC確定一些物件為"不可達"時,GC就有責任回收這些記憶體空間。可以。程式設計師可以手動執行System.gc(),通知GC執行,但是Java語言規範並不保證GC一定會執行。

10. OverloadOverride的區別。Overloaded的方法是否可以改變返回值的型別?

   方法的重寫Overriding和過載OverloadingJava多型性的不同表現。重寫Overriding是父類與子類之間多型性的一種表現,過載Overloading是一個類中多型性的一種表現。如果在子類中定義某方法與其父類有相同的名稱和引數,我們說該方法被重寫 (Overriding)。子類的物件使用這個方法時,將呼叫子類中的定義,對它而言,父類中的定義如同被“遮蔽”了。如果在一個類中定義了多個同名的方法,它們或有不同的引數個數或有不同的引數型別,則稱為方法的過載(Overloading)Overloaded的方法是可以改變返回值的型別。

11. 說出Servlet的生命週期,並說出ServletCGI的區別

Servlet被伺服器例項化後,容器執行其init方法,請求到達時執行其service方法,service方法自動派遣執行與請求對應的doXXX方法(doGet,doPost)等,當伺服器決定將例項銷燬的時候呼叫其destroy方法。
cgi的區別在於servlet處於伺服器程序中,它通過多執行緒方式執行其service方法,一個例項可以服務於多個請求,並且其例項一般不會銷燬,而CGI對每個請求都產生新的程序,服務完成後就銷燬,所以效率上低於servlet

四:程式設計題

1. 請編寫一JSP程式,它提供一個徵求客戶意見的文字區,在客戶提交意見後,它能將意見及其他客戶以前提交的意見一起顯示出來。

2. 寫一個演算法對1852497進行順序排列

publicclass OrderbyArray {

//氣泡排序 Bubble Sort 最簡單的排序方法是氣泡排序方法

publicint[] orderArray(int[] array){

for(int i=0;i<array.length;i++){

for(int j=i;j<array.length;j++){

if(array[i]>array[j]){

int s = array[i];

array[i] = array[j];

array[j] = s;

}

}

}

return array;

    }

publicstaticvoid main(String[] args) {

int [] array = {1,8,5,2,4,9,7};

OrderbyArray order = new OrderbyArray();

array = order.orderArray(array);          

}

}

3. 寫一段Jdbc連線Oracle的程式,並實現資料查詢

建立一個連線資料庫的工具類

  import java.sql.*;

   publicclass DbUtil {

publicstatic Connection getConnection(){

   String driver = "";

   String url = "";

   String name = "scot";

   String psw = "123";

   Connection conn = null;

try {

Class.forName(driver);

conn = DriverManager.getConnection(url,name,psw);

} catch (ClassNotFoundException e) {

e.printStackTrace();

} catch (SQLException e) {

e.printStackTrace();

}

return conn;

   }

}

import java.sql.*;

publicclass SearchInfo {

publicvoid searchInfo(int id){

   Connection conn = null;

   PreparedStatement pstat = null;

   ResultSet res = null;

   String sql = "select * from users where id=?";

   conn = DbUtil.getConnection();

try {

pstat = conn.prepareStatement(sql);

pstat.setInt(1, id);

res = pstat.executeQuery();

while(res.next()){

String name = res.getString("name");

}

} catch (SQLException e) {

e.printStackTrace();

}

   }

}

4. 請利用JSP編寫一簡易的購物車程式,它包括一購物介面及往購物車中新增商品與刪除商品功能,並能將使用者當前已購的所有商品顯示出來。

5. 寫一個Singleton(單例模式)出來

public class LazySingleton {

private static LazySingleton instance = null;

// 預設的私有的構造方法,保證外界無法直接例項化

private LazySingleton() {

}

// 靜態方法,返回此類的唯一例項

public  static LazySingleton getInstance() {

if (instance == null) {

instance = new LazySingleton();

}

return instance;

}

public void pp(){

System.out.println("lazy ok");

}

}

6. 用迴圈控制語句列印輸出:1+3+5+…….+99=?結果。

        int sum = 0;

for(int i=1;i<100;i+=2){

sum = sum+i;

}

System.out.println("1+3+5+...+99 = "+sum);

7. 請編寫一JSP程式,它能根據輸入的訂單號查尋出該訂單的詳細資訊,包括訂單使用者名稱及價錢,其中訂單號以請求引數的形式傳給該JSP。訂單資訊都儲存在SQLSERVER資料庫中。並要求將查尋到的訂單資訊以表格的形式顯示給使用者。