Java考试题

一:单选题

  1. 下列哪一种叙述是正确的(D
    A. abstract修饰符可修饰字段、方法和类
    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);
 }
 }

  1. 输出结果是什么?  D
    A. 0
    B. 1
    C. 2
    D. 编译失败
  2. 下列哪种说法是正确的( D
      A. 实例方法可直接调用超类的实例方法
      B. 实例方法可直接调用超类的类方法
      C. 实例方法可直接调用其他类的实例方法
      D. 实例方法可直接调用本类的类方法
  3. 如下代码:
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() );
 }
 }

  1. 输出是什么?   A
    A. 4,4
    B. 4,5
    C. 5,4
    D. 5,5
    E. 编译失败.---------重定时不能改变返回类型
  2. 在Servlet处理请求的方式为:   C
    A.以进程的方式
    B.以程序的方式
    C.以线程的方式
    D.以响应的方式
  3. JDBC中,用于表示数据库连接的对象是:   B
    A.Statement
    B.Connection
    C.DriverManager
    D.PreparedStatement
  4. 用于调用存储过程的对象是:   C
    A.ResultSet
    B.DriverManager
    C.CallableStatemet
    D.PreparedStatement
  5. 按照MVC设计模式,JSP用于实现:   B
    A.Model
    B.View
    C.Controller
    D.容器
  6. 如下代码
    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行被创建后, 什么时候能够被垃圾回收?   CA. 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

  1. 以下关于异常的说法正确的是: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. 运行时抛出异常

二:简答题

  1. JSP和Servlet有哪些相同点和不同点,他们之间的联系是什么? 

JSP是Servlet技术的扩展,本质上是Servlet的简易方式,更强调应用的外表表达。JSP编译后是"类servlet"。Servlet和JSP最主要的不同点在于,Servlet的应用逻辑是在Java文件中,并且完全从表示层中的HTML里分离开来。而JSP的情况是Java和HTML可以组合成一个扩展名为.jsp的文件。JSP侧重于视图,Servlet主要用于控制逻辑。

 

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

switch(expr1)中,expr1是一个整数表达式。因此传递给 switch 和 case 语句的参数应该是 int、 short、 char 或者 byte。long,string 都不能作用于swtich。

  1. 如何利用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>------表示可见
 
 
三.编程题
1. 写一个算法对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);         
    }
}
1. 写一段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();
    }
   }
}