java筆試題集1

java筆試題集1

一:單選題

  1. 下列哪一種敘述是正確的( D  ) 
    A. abstract修飾符可修飾字段、方法和類 
    B. 抽象方法的body部分必須用一對大括號{ }包住 
    C. 聲明抽象方法,大括號可有可無 
    D. 聲明抽象方法不可寫出大括號
  2. 如下代碼 
    package temp;
    
    public class Test {
    
    	public int func()
    	{
    		static int i=0;   //error成員函數不可以聲明靜態變量
    		i++;
    		return i;
    	}
    	public static void main(String[] args) {
    		
    		Test test=new Test();
    		test.func();
    		int j=test.func();
    		
    		System.out.println(j);
    	}
    	
    }
    輸出結果是什麼?   D 
    A. 0 
    B. 1 
    C. 2 
    D. 編譯失敗
  3. 下列哪種說法是正確的(  D ) 
    A. 實例方法可直接調用超類的實例方法 
    B. 實例方法可直接調用超類的類方法 
    C. 實例方法可直接調用其他類的實例方法 
    D. 實例方法可直接調用本類的類方法
  4. 如下代碼: 
    package temp;
    
    class Super{
    	public Integer getLength()
    	{
    		return new Integer(4);
    	}
    }
    
    public class Sub extends Super
    {
    	public Long getLength() //重寫,返回類型應該一致
    	{
    		return new Long(5);
    	}
    	
    	public static void main(String[] args)
    	{
    		Super super1=new Super();
    		Sub sub=new Sub();
    		
    		System.out.println(super1.getLength()+";"+sub.getLength());
    	}
    }
    輸出是什麼?   E 
    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

A. 一旦出現異常,程序運行就終止了

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

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

D. 可能拋出系統異常的方法是不需要申明異常的

14. 如下代碼:

public class Foo {

public static void main(String[] args) {

try {

return;

} finally {

System.out.println( "Finally" );

}

}

}

輸出結果是什麼?    A

A. Finally

B.編譯失敗

C. 代碼正常運行但沒有任何輸出.

D. 運行時拋出異常

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

A.決定是否實現Servler的單線程模式,

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

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

D.沒有具體的含義。

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

A. 引用實際上就是指針

B. 引用本身是Primitive

C. 引用就是對象本身

D. 一個對象只能被一個引用所指引

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

A. Vector類屬於java.util包

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

C. Vector類放在java.util文件中

D. Vector類是Sun公司的產品

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

A. 正好1000毫秒

B. 1000毫秒不到

C. =>1000毫秒

D. 不一定

18. 在WEB-INF目錄下,必須存放的文件爲: B

A.class文件

B.web.xml

B.jar文件

D.html文件

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

A. 一旦一個對象成爲垃圾,就立刻被收集掉。

B. 對象空間被收集掉之後,會執行該對象的finalize方法

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

D. 一個對象成爲垃圾是因爲不再有引用指着它,但是線程並非如此。

20.下面的語句會產生什麼樣的輸出?  A

System.out.println(4&7);

A.4

B.5

C.6

D.7

E.0

21.下面的程序中,temp的最終值是什麼?  B

long temp=(int)3.9;

temp%=2;

A .0

B .1

C .2

D .3

E .4

22.下面哪個不是JAVA關鍵字  A

A  integer

B  double

C  float

D  default

23.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.

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

25.下列標識符(名字)命名原則中,正確的是( )  D

A. 類名的首字母小寫

B. 變量和方法名的首寫字母大寫

C. 接口名的首寫字母小寫

D. 常量完全大寫

26.類Test1定義如下:

1.public class Test1{ 

2. public float aMethod(float a,float b){ return 0;} 

3. 

4.} 

將以下哪種方法插入行3是不合法的。(B)

A、public float aMethod(float a, float b,float c){ return 0;} 

B、public float aMethod(float c,float d){ return 0;} 

C、public int aMethod(int a, int b){ return 0;} 

D、private float aMethod(int a,int b,int c){ return 0;}

27.哪個語句創建了一個數組實例? 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};

28以public修飾的類如:public class Car{…} 則Car( )   A A、可被其它程序包中的類使用 B、僅能被本程序包中的類使用

C、不能被任意其它類使用 D、不能被其它類繼承

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

30.Java程序的執行過程中用到一套JDK工具,其中java.exe是指( )   B

A.Java文檔生成器 B.Java解釋器 

C.Java編譯器 D.Java類分解器

31.下列關於構造方法的敘述中,錯誤的是( )   C

A. Java語言規定構造方法名與類名必須相同 

B. Java語言規定構造方法沒有返回值,但不用void聲明 

C. Java語言規定構造方法不可以重載 

D. Java語言規定構造方法只能通過new自動調用

32.構造函數何時被調用( )   B

A.類定義時 B.創建對象時 

C.調用對象方法時 D.使用對象的變量時

33.break語句( )   D

A、只中斷最內層的循環 B、只中斷最外層的循環 

C、藉助於標號,可以實現任何外層循環中斷

D、只中斷某一層的循環

33.Java語言中下面哪個可以用作正確的變量名稱() B A、3D  B、name  C、extends  D、implements

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

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

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

C. 沒有方法驗證

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

35.下面哪一個不能作JSP的服務器( D ) 

A. IBM WebSphere   B. BEA WebLogic   C. Tomcat    D. pws

36.下面哪項不是JSP操作指令( D )

A. getProperty       B. forward 

C. include            D. import

37.如果希望控件在界面上按表格行分列排列,應使用下列那種佈局管理器? ( B)

A、BoxLayout  B、GridLayout  C、BorderLayout  D、FlowLouLayout

38.下面哪一項不是Java類訪問控制關鍵字( C ) 

A. public B. protected 

C. this D. private

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

40.下面哪個不是表單標記( D ) 

A. INPUT  B.RADIO  C.CHECKBOX  D. TR

41.下面哪項不是response對象的方法( C ) 

A. setContentType(String contentTypestr) 

B. setHeader(String headername,String headervalue) 

C. getParameter(String str) 

D. sendError(int errorcode)

42.以下( B )是編寫Servlet必須導入的包. 

A.java.sql.* B.java.servlet.* C.java.util.* D.java.lang.*

43.下面哪項不屬於SQL語句的子類( D ) 

A. 數據定義語言(DDL) 

B. 數據查詢語言(DQL) 

C. 事務控制語言(TCL) 

D. 數據插入語言 (DIL)

44.選出所有正確的答案

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 E

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

E.o.new Inner();

二:多選題

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=0;i<5;a[i++]=“”);     

B.String   a[]={“”,“”,“”,“”,“”};     

C.String   a[5];     

D.String[5]a;     

E.String   []a=new   String[5];for(int   i=0;i<5;a[i++]=null);

8.下列說法錯誤的有( BCD )

A. 數組是一種對象

B. 數組屬於一種原生類

C. int number=[]={31,23,33,43,35,63}

D. 數組的大小可以任意改變

9.不能用來修飾interface的有( ACD )

A.private  B.public  C.protected  D.static

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 )

A.new  B.$Usdollars  C.1234  D.car.taxi

13. 以下哪四個能使用throw拋出? ADEF

A. Error

B. Event

C. Object

D. Throwable

E. Exception

F. RuntimeException

14.javax.Servlet的包中,屬於類的是: BC

A.Servlet

B.GenericServlet

C.ServletException

D.ServletContext

15. 如下代碼:

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(); }

16.

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

A) 不會有錯

B)  當value與int 類型不匹配時回報錯

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");

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

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

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

5.在表單中存在一組名稱爲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");

6.說出數據連接池的工作機制是什麼?

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

7.多線程有幾種實現方法,都是什麼?同步有幾種實現方法,都是什麼?

多線程有兩種實現方法,分別是繼承Thread類與實現Runnable接口 同步的實現方面有兩種,分別是synchronized,wait與notify

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

<script>

window.οnlοad=function(){…}

</script>

或是

<body οnlοad="">

9.HTML的Form和XFORM的區別

10. 描述forward 和redirect的區別

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

11. Static變量是什麼含義

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

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

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

13.Overload和Override的區別。Overloaded的方法是否可以改變返回值的類型?

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

14.說出Servlet的生命週期,並說出Servlet和CGI的區別

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

四:編程題

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

2.寫一個算法對1,8,5,2,4,9,7進行順序排列。

public class OrderbyArray {

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

public int [] 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;

}

public static void 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.*;

public class DbUtil {

public static 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.*;

public class SearchInfo {

public void 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編寫一簡易的購物車程序,它包括一購物界面及往購物車中添加商品與刪除商品功能,並能將用戶當前已購的所有商品顯示出來。

4.寫一個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");

}

}

5.用循環控制語句打印輸出: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);

6.請編寫一JSP程序,它能根據輸入的訂單號查尋出該訂單的詳細信息,包括訂單用戶名及價錢,其中訂單號以請求參數的形式傳給該JSP。訂單信息都保存在SQLSERVER數據庫中。並要求將查尋到的訂單信息以表格的形式顯示給用戶。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章