Java考試題
一:單選題
- 下列哪一種敘述是正確的(D )
A. abstract修飾符可修飾字段、方法和類
B. 抽象方法的body部分必須用一對大括號{ }包住
C. 聲明抽象方法,大括號可有可無
D. 聲明抽象方法不可寫出大括號 - 如下代碼
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. 編譯失敗 - 下列哪種說法是正確的( D)
A. 實例方法可直接調用超類的實例方法
B. 實例方法可直接調用超類的類方法
C. 實例方法可直接調用其他類的實例方法
D. 實例方法可直接調用本類的類方法 - 如下代碼:
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. 編譯失敗.---------重定時不能改變返回類型 - 在Servlet處理請求的方式為: C
A.以進程的方式
B.以程序的方式
C.以線程的方式
D.以響應的方式 - JDBC中,用於表示數據庫連接的對象是: B
A.Statement
B.Connection
C.DriverManager
D.PreparedStatement - 用於調用存儲過程的對象是: C
A.ResultSet
B.DriverManager
C.CallableStatemet
D.PreparedStatement - 按照MVC設計模式,JSP用於實現: B
A.Model
B.View
C.Controller
D.容器 - 如下代碼
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
- 以下關於異常的說法正確的是: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. 運行時拋出異常
二:簡答題
- JSP和Servlet有哪些相同點和不同點,他們之間的聯系是什么?
JSP是Servlet技術的擴展,本質上是Servlet的簡易方式,更強調應用的外表表達。JSP編譯后是"類servlet"。Servlet和JSP最主要的不同點在於,Servlet的應用邏輯是在Java文件中,並且完全從表示層中的HTML里分離開來。而JSP的情況是Java和HTML可以組合成一個擴展名為.jsp的文件。JSP側重於視圖,Servlet主要用於控制邏輯。
- swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上?
switch(expr1)中,expr1是一個整數表達式。因此傳遞給 switch 和 case 語句的參數應該是 int、 short、 char 或者 byte。long,string 都不能作用於swtich。
- 如何利用ServletContext和ServletConfig對象獲得初始化參數
String psw = config.getInitParameter("psw");
ServletContext ss = config.getServletContext();
String ppp = ss.getInitParameter("name");
- 如何用css約束一個層不可見?
<div style="display:none"> </div> -----表示不可見
<div style="display:block"> </div>------表示可見
三.編程題
- 寫一個算法對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);
}
}
- 寫一段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();
}
}
}