文档库 最新最全的文档下载
当前位置:文档库 › JAVA复习题

JAVA复习题

一、选择题:

1. Java源程序经编译生成的字节码文件的扩展名为( )

A. class

B. java

C. exe

D. html

2. 以下定义一维数组的语句中,正确的是:( )

A. int a[5]

B. int a[]=new [5];

C. int a[]; int a=new int[5];

D. int a[]={1,2,3,4,5};

3. 对于任意一个类,用户所能定义的构造方法的个数至多为()

A.0个

B.1个

C.2个

D.任意个

4. 假设类A有构造方法A(int a),则在类A的其他构造方法中调用该构造方法的语句格式应为( )

A. A(x)

B. this. A(x)

C. this(x)

D. super(x)

5.关于实例方法和类方法,以下描述正确的是:( )

A. 实例方法只能访问实例变量

B. 类方法既可以访问类变量,也可以访问实例变量

C. 类方法只能通过类名来调用

D. 实例方法只能通过对象来调用

6.下列关于继承的说法哪个是正确的()

A.子类只继承父类public方法和属性;

B.子类继承父类的非私有属性和方法;

C.子类只继承父类的方法,而不继承父类的属性;

D.子类将继承父类的所有的属性和方法。

7、不允许作为类及类成员的访问控制符的是( )。

A. public

B. private

C. static

D. protected

8、为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为( )。

A. static void method( )

B. public void method( )

C. final void method( )

D. abstract void method( )

9、设有下面的两个类定义:

class AA {

void Show(){ System.out.println(“我喜欢Java!”);

}

class BB extends AA {

void Sh ow(){ System.out.println(“我喜欢C++!”);

}

则顺序执行如下语句后输出结果为:()

AA a; BB b;

a.Show();

b.Show();

A、我喜欢Java!

B、我喜欢C++!

我喜欢C++! 我喜欢Java!

C、我喜欢Java!

D、我喜欢C++!

我喜欢Java! 我喜欢C++!

10、Java的字符类型采用的是Unicode编码方案,每个Unicode码占用()

个比特位。

A、8

B、16

C、32

D、64

1.类Test1定义如下:

1.public class Test1{

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

3.

4.}

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

A.public float aMethod(float a, float b,float c){ }

B.public float aMethod(float c,float d){ }

C.public int aMethod(int a, int b){ }

D.private float aMethod(int a,int b,int c){ }

2.关于以下程序段,正确的说法是( C )

1.String s1=”abc”;

2.String s2=new String(s1);

3.if(s1= =s2)

4.System.out.println(“= = succeeded”);

5.if (s1.equals(s2))

6.System.out.println(“.equals() succeeded”);

A、行4与行6都将执行

B、行4执行,行6不执行

C、行6执行,行4不执行

D、行4、行6都不执行

3.下面的程序编译运行后,输出的结果是(A).

import java.util.Arrays;

public class Test {

public static void main(String[] unused) {

String[] str = {"xxx", "yyy","aaa","bbb"};

Arrays.sort(str);

int index=Arrays.binarySearch(str,"aaa");

System.out.println(index);

}

}

A) 0 B) 1 C)2 D)3

4.接口是Java面向对象的实现机制之一,以下说法正确的是 B )

A. Java支持多重继承,一个类可以实现多个接口;

B. Java只支持单重继承,一个类可以实现多个接口;

C. Java只支持单重继承,一个类只可以实现一个接口;

D. Java支持多重继承,但一个类只可以实现一个接口。

5.关于接口的定义和实现,以下描述正确的是:(B)

A. 接口定义中的方法都只有定义没有实现

B. 接口定义中的变量都必须写明final和static

C. 如果一个接口由多个类来实现,则这些类在实现该接口中的方法时应采用统一的方法名

D. 如果一个类实现一个接口,则必须实现该接口中的所有方法,但方法未必声明为public.

下列关于抽象类的说法哪个是正确的?(C)

A.某个抽象类的父类是抽象类,则达个子类必须覆盖父类的所有抽象方法;

B.接口和抽象类是同一回事;

C.绝对不能用抽象类去创建对象;

D.抽象类中不可以有非抽象方法。

7.下列语句序列执行后,num的值是(A)。

Random rd1=new Random();

int num=Math.abs(rd.nextInt())%4+1;

A)1~4之间的随机值B) 0~3之间的随机值C) 0 D)4

8.下面语句的功能是(A)。

RandomAccessFile raf2 = new RandomAccessFile("1.txt","rw" );

A)打开当前目录下的文件1.txt,既可以向文件写数据,也可以从文件读数据。

B)打开当前目录下的文件1.txt,但只能向文件写入数据,不能从文件读取数据。

C)打开当前目录下的文件1.txt,但不能向文件写入数据,只能从文件读取数据。

D) 以上说法都不对。

9.应用程序的main方法中有以下语句,则输出的结果是( B)。

String s="12345#aaa#bbb#67890";

int n=s.indexOf("#");

int k=s.indexOf("#",n+1);

int m=s.indexOf("#",k+1);

String s2=s.substring(m+1);

System.out.println(s2);

A)123456 B)67890 C) aaa D) bbb

10.下面程序段执行后b的值是(B)。

Integer integ =new Integer(9);

boolean b = integ instanceof Object;

A) 9 B) true C) 1 D) false

11.应用程序的main方法中有以下语句,则输出的结果是(B)。

int b[][]={{1}, {2,2}, {2,2,2}};

int sum=0;

for(int i=0;i

for(int j=0;j

sum*=b[i][j];

}

}

System.out.println("sum="+sum);

A) 32 B)11 C) 2 D) 3

12.下面的程序段创建了BufferedReader类的对象in,以便读取本机c盘my文

件夹下的文件1.txt。File构造函数中正确的路径和文件名的表示是(C)。

File f=new File(填代码处);

file=new FileReader(f);

in=new BufferedReader(file);

A) "./1.txt" B) "../my/1.txt" C) "c:\\my\\1.txt"

13.下面的程序段执行后输出的结果是(A)。

StringBuffer buf=new StringBuffer("Beijing2008");

buf.insert(7,"@");

System.out.println(buf.toString());

A) Beijing@2008 B) Beijing2@008

C) Beijing2008@ D) Beijing20@08

14.关于BufferedReader类的readLine()方法,以下说法错误的是(B)。

A)方法readLine()每次读取一行数据。

B)方法readLine()每次读取一个字节。

C)该方法可能抛出IOException异常,调用该方法时通常应将它放到try块中,并通过catch块处理异常。

D)如果读到流的末尾,该方法返回的结果为null。

15.下面对Http请求消息使用GET和POST方法陈述正确的是:(C)

A POST方法提交信息可以保存为书签,而GET则不行

B 可以使用GET方法提交敏感数据

C 使用POST提交数据量没有限制

D 使用POST方法提交数据比GET 方法快

16.在Web应用程序中web.xml配置了Servlet的信息,如果你的项目为

LoginDemo,那么web.xml 默认位于哪个目录下。(D)

A LoginDemo/

B LoginDemo/src/

C LoginDemo/ WEB-INF/bin/

D LoginDemo/ WEB-INF/

17.在login.html中存在如下代码

username:

在login servlet中获得文本框的值正确的是:(D)

A 无法获取,因为代码在Html中

B request.getAttribute(“userName”)

C request.getParameter(“myName”)

D request.getParameter(“userName”)

18.在J2EE中myWebApp是一个web应用程序的根目录,当在浏览器中输入

http://localhost:8080/myWebApp/时,会自动打开该目录下的start.jsp文件。为了达到这个要求,需要在web.xml中添加如下代码。(D)

A start.jsp

B start.jsp

C

start.jsp

D

start.jsp

19.在J2EE中,aa.jsp文件使用了一个Bean,该Bean属于类mypackage.bb,该Bean

和sql server数据库连接,完成对数据库中某个表的插入、修改和查询数据的功能,mypackage.bb的方法getRs返回记录集rs,则以下描述正确的是(A) A如果aa.jsp中要使用这个rs来查询数据,则该jsp必须使用page指令的import 属性导入java.sql包中类

B如果aa.jsp中要使用这个getRs方法来返回rs而已,而不使用rs执行任何操作,则在aa.jsp中不导入java.sql包中类

C如果在aa.jsp中使用page指令的import 属性导入java.sql包中的类了,则不

用在mypackage.bb中导入java.sql中的类

D如果在mypackage.bb中导入java.sql中的类,则不用在aa.jsp中使用page指令的import属性导入java.sql包中的类

20.某web应用的上下文路径是root,配置文件web.xml中有如下片段:

process

slt.ProcessServlet

process

/proc

以下说法正确的是(B)。

A 在该web应用中,有一个名为slt.ProcessServlet.class的文件

B 该servlet的访问路径是http://机器IP:端口号/root/proc

C 该servlet的访问路径是http://机器IP:端口号/root/ProcessServlet

D 该servlet的访问路径是http://机器IP:端口号/root/ProcessServlet

21. 对于“<%!%>”之间声明的变量,以下说法正确的是:(B)

A、不是JSP页面的成员变量

B、多个用户同时访问该页面时,任何一个用户对这些变量的操作,都会影响到其他用户

C、多个用户同时访问该页面时,每个用户对这些变量的操作都是互相独立的,不会互相影响

D、是JSP页面的局部变量

22. page指令的import属性的作用是(C)

A、定义JSP页面响应的MIME类型

B、定义JSP页面使用的脚本语言

C、为JSP页面引入JAVA包中的类

D、定义JSP页面字符的编码

23. 以下对象中的(D)不是JSP的内置对象。

A、request

B、session

C、application

D、bean

24. 在JSP页面中使用beans,我们必须使用JSP动作标签(A)。

A、useBean

B、useBeans

C、Beans

D、JavaBeans

25. JSP程序段的基本语法是(C)。

A、VBScript语言语法

B、JavaScript语言语法

C、Java语法语言

D、C语言语法

26. 以下关于JavaBeans的说法中,错误的是(B)。

A、JavaBeans是基于JAVA语言的。

B、JavaBeans是JSP的内置对象之一。

C、JavaBeans是一种Java类。

D、JavaBeans是一个可重复使用的软件组件。

27. 以下哪种方法不是Servlet的方法?(D)

A、init

B、service

C、destroy

D、post

28. 当一条SQL语句需要稍加变化而反复执行时,通常使用(B )。

A、Statement

B、PreparedStatement

C、Connection

D、CallableStatement

29. 当useBean标签中的scope属性取值(C)时,该beans的有效范围是访

问者的会话期间。

A、request

B、page

C、session

D、application

30. session.setMaxInactiveInterval(60*60)的意思是(B)

A、将session的有效时间设置为一分钟

B、将session的有效时间设置为一个小时

C、将session的有效时间设置为60个小时

D、将session的有效时间设置为一天

31. 在Jsp指令中errorPage(“url”)的意思是(C)

A、将本页面设置为错误的页面

B、将本页面中所有的错误的信息保存到url变量中

C、为本页面指定一个错误页面

D、没有具体的含义

32.若编译和运行下列代码,出现的结果将是( c)

public class My Add extends Thread {

static int total = 10 ;

int n;

public MyAdd(int n)

{ this.n=n; }

public void run() {

try{

sleep(n);

total=total+n;

System.out.println(total);

}

catch(Exception e){

System.out.println( “ EXCEPTION! ” );

}

}

public static void main(String[] args) {

My Add t 1 = new My Add ( 3000 );

My Add t 2 = new My Add ( 1000 );

t1 .start();

t2 .start();

}

}

A 、打印1010, 4010

B 、打印3010, 4010

C 、打印1010, 3010

D 、打印3010, 1010

33.对于下列代码:

public class SupperClass {

public int sum( int a, int b) {

return a+b;

}

}

class SubClass extends SupperClass { }

下述哪个方法可以加入类SubClass? (d )

A) int sum ( int a, int b ){ return a+b;}

B) public void sum (int a, int b ){ return ;}

C) public float sum ( int a, int b){ return a+b;}

D) public int sum ( int a, int b ) { return a+b;}

34.关于JDBC 访问数据库的说法错误的是:( d)

A) 建立数据库连接时,必须加载驱动程序,可采用Class . forName () 实现

B) 用于建立与某个数据源的连接可采用DriverManager 类的getConnection 方法

C) 建立数据库连接时,必须要进行异常处理

D) JDBC 中查询语句的执行方法必须采用Statement 类实现

35.对于下列代码:

1) class Person {

2) public void printValue(int i, int j) {//... }

3) public void printValue(int i){//... }

4) }

5) public class Teacher extends Person {

6) public void printValue() {//... }

7) public void printValue(int i) {//...}

8) public static void main(String args[]){

9) Person t = new Teacher();

10) t.printValue(10);

11) }

第10 行语句将调用哪行语句?( d)

A)line 2 B) line 3 C) line 6 D) line 7

36.编译和运行下面的应用程序,并在命令行界面输入12345 ,则回车后屏

幕输出的结果是(a)。

public class A {

public static void main(String args[]) throws IOException{

BufferedReader buf=new BufferedReader(

new InputStreamReader(System.in));

String str=buf.readLine();

int x=Integer.parseInt(str);

System.out.println(x %1000 );

}

}

A)345 B)5 C) 123 D) 12345

37.以下程序段输出结果的是(b)。

public class A implements B {

public static void main(String args[]) {

int i;

A c1 = new A();

i= c1.k;

System.out.println("i="+i);

}

}

interface B {

int k = 10;

}

A)i=0 B) i=10 C) 程序有编译错误D) i=true

38.下面的程序段的功能是(b ) 。

File file1=new File("e:\\ xxx \\ yyy ");

file1.mkdir();

A) 在当前目录下生成子目录:\xxx\yyy B) 生成目录:e:\ xxx \ yyy

C) 在当前目录下生成文件xxx.yyy D) 以上说法都不对

39.程序员将可能发生异常的代码放在(b )块中,后面紧跟着一个或多个()

块。

a) catch 、try

b) try 、catch

c) try 、exception

d) exception 、try

二填空题:

1、public class Class1

{public static void main(String args[ ]){

int i , Max , Min ;

int a[ ] = { 12,67,8,98,23,56,124, 55,99,100 };

Max = Min = a[0];

for ( i = 1 ; i < a.length; i ++ ) {

if ( a[i]

if ( a[i]>Max ) Max = a[i];

} System.out.println( Max+" "+Min ); System.out.println( );

}

}

输出124 8

2、public class Test {

String s;

public void f(String s1) {

s=s1;

s+="d";

}

public static void main(String[] args){

Test test=new Test();

test.f("abc");

System.out.print(test.s);

}

}

}

输出abcd

1、public class Student

{ static int count;

int i;

public void print(){

count++;

i++;

System.out.println("count="+count+"i="+i);

}

public static void main(String args[])

{ Student s1 = new Student();

s1.print();

Student s2 = new Student();

s2.print();

}

}

该程序的运行结果为:count=1 i=1 count=2 i=1

2、public class Person

{ int count,age;

String name;

public Person(String n1,int a1)

{ name=n1;

age=a1;

}

public Person(String n1, int a1,int c1)

{ this(n1,a1);

count=c1;

}

}

3、class Person

{ static int count=0;

protected String name;

protected int age;

public void print()

{System.out.print("count="+ count+" name="+ name+"age="+ age);

}

}

public class Student extends Person

{ static int counts=0;

protected String dept;

public void print()

{ super.print();

System.out.println("this.counts="+this.counts+ "this.dept = "+this.dept);

}}

4 、写出下列程序代码的运行结果:

class Person{

public Person(){

System.out.println("hi!");

}

public Person(String s){

this();

System.out.println("I am "+s);

}

}

public class Who extends Person{

public Who(){

this("I am Tony");

}

public Who(String s){

super(s);

System.out.println("How do you do?");

}

public static void main(String args[]){

Who w = new Who("Tom");

}

}

运行结果为:

hi!I am Tom

How do you do?

9 、阅读下面的程序TestMonth.java :

public class TestMonth{

public static void main(String []args){

try{

int month=Integer.parseInt(args[0]);

if(month<0||month>12){

throw new ArithmeticException(" 没有"+month+" 月份! ");

}

System.out.println(" 您输入的月份为"+month+" 月份");

}catch(ArrayIndexOutOfBoundsException e){

System.out.println(" 请输入月份!");

}catch(ArithmeticException e){

System.out.println(" 捕获ArithmeticException 异常");

}

}

}

已知ArrayIndexOutOfBoundsException 和ArithmeticException 都是https://www.wendangku.net/doc/352522036.html,ng.* 下的异常类,编译TestMonth.java 后,用java TestMonth 13 的运行结果是什么?

以上程序经编译后运行结果是:捕获ArithmeticException 异常

三、程序改错题

1、public class Test1{

float f=3.14;

char c=’中’;

boolean b=”false”;

int i;

void f(int a){

i=a;

}

public void main(){

Test1 t=new Test1();

a=5;

t.f(a);

}

}四处

2、public class Test2{

int i=2;

public static void main(String [] args){

function();

void function(){

}

}

}一处

3.public class Test3{

int i;

static int j;

static void f(){

i++;

j++;

}

public static void main(String [] args){

Test3 test=new Test3();

test.f();

}一处

4、public class Father{

protected int i;

String j;

private int k;

public int m;

}

import folder1.Father;

public class Son extends Father{

public static void main(String[] args){

Son s=new Son();

s.i=1; s.j=”abc”; s.k=2; s.m=3;

}

}//其中Father放在folder1包内,Son放在folder2包内;两处5、一处

public class Test4{

int i;

public Test4(int a){

i=a;

}

public static void main(String[] args){

Test4 t4=new Test4();

System.out.println(t4.i);

}

}

}

}

2、class Person

{ static int count=0;

protected String name; protected int age;

public Person()

{ name = n1; age = a1; this.count++; }

}

public class Student extends Person

{ static int count=0;

protected String dept;

protected Student(String n1,int a1,String d1)

{dept = d1;

this.count++;

}

public static void main(String args[])

{ Person p1 = new Person("王小明",21) ;

p1.print();

Student s1 = new Student(‘陈小瑞’,19,‘计算机系’);

s1.print();

}

}

三处错误

四编程题。

编程实现一个数据库连接类,具有执行增删查改sql语句的功能。

package database;

import java.sql.*;

public class DBConnection {

Connection con = null;

Statement stmt = null;

ResultSet rs = null;

public DBConnection() {

try { // 加载数据库驱动程序

Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");

con=DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=xs cj","sa","1234");

stmt = con.createStatement();

} catch (Exception ce) {

System.out.println("SQLExceptiOn:" + ce.getMessage());

}

}

public ResultSet execQuery(String sql) throws SQLException {

System.out.print(stmt);

rs = stmt.executeQuery(sql);

return rs;

}

public int execUpdate(String sql) throws SQLException {

int k = 0;

k = stmt.executeUpdate(sql);

return k;

}

public void close() throws SQLException

{

rs.close();

con.close();

}

}

相关文档