java核心技术

更新时间:2023-10-31 16:43:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

JAVA核心技术

使用班级:

总分 得分 题号 1 答案 2 3 4 5 6 7 8 9 10 abchij 11 12 13 14 15 bcdgh cdabdAdfcdeef fg gm h acdacdbcdgijba k ace c bdf a ad bce ace

一、选择题(本大题共15道小题,每小题2分,共30分,请把答案写到答题卡上) 1、下面叙述正确的有_____cdef______。

A.在一个java源文件中只能定义一个class B.在一个java源文件中只能定义一个interface C.在一个java源文件中可以定义多个class D.在一个java源文件中可以定义多个interface E.在一个java源文件中可以定义多个class和interface F.在一个java源文件中只能定义一个public class

2、java程序中程序运行入口方法main的签名正确的有__abdfg__。

A.public static void main(String args[]) B.static public void main(String[] args) C.public void static main(String[] args) D.static public void main(String... args) E.public void main(String args[]) F.public static void main(String... args) G.public static void main(String[] test)

3、以下能作为class, interface, method或variable有效标识符__adfgm __。

第 1 页 共 12 页

A.For B.boolean C.23age

D._id E.my name F. $this_is_a_long_variable_name_very_very_long G.NULL H.#Yes I.goto J.default K.native L.volatile M.帅锅 4、以下能作为char类型的字面值的有_____cdeha___。(字面值是单引号)

A. char c=“x” B. char c=‘\%u12’ C.char c=’\’ D.char c='帅'

E.char c=250

F.char c=250250

G.int x=5;char c=x H.char c=0xf;

5、 byte、int、double、short、float、long、char、boolean的字节长度分别为__ acdbcdba__ A.1 B.2 C.4 D.8 6、以下正确的有__acdg______。

A. int i = 32; B.float f = 45.32; C. double d=3.2; D.long l=99;

E. byte=128;

F.Boolean=null;(Boolean是作为一个类来存在的,可以改成 Boolean b=null;) G. long l=0xfffL; H.int i=11L;

I.double d=5.2E12

J. int i,j,k=0 K int i=0;int j=i=5; L.long l=10248920320; M.int i=10248920320;

7、 以下返回true的表达式有________。

A. “george” == “george” B.”george” = “george”

C. “george”.equals(new String(“george”)) D. “george” == new String(“george”)

E.\返回字面值) 8、 根据以下程序选择正确答案________:

public class Test { static int total = 10;

public static void main (String args []) {

new Test();

第 2 页 共 12 页

}

public Test () { System.out.println(\ System.out.println(this); int temp = this.total; if (temp > 5) {

System.out.println(temp); }

} }

A. 编译出错 B.运行时有异常 C. 编译运行都正确 9、下面数组定义正确的有________。

A. String strs[] = { ‘a’ ‘b’ ‘c’}; B. String[] strs = {“a”, “b”, “c”,}; C. String[] strs = new String{“a” ”b” ”c”}; D.String strs[] = new String[]{“a”, “b”, “c”}; E.String[] strs = new String[3]{“a”, “b”, “c”}; F. String[] strs = {“a”, “b”, “c”,}; G.String[] strs = {'a','b','c'}; 10、 switch语句支持一下哪种类型________。

A.int B.short C.char D.float E.double F.boolean G.long H.enum I.byte J.String K.Object 11、class Base{

public Base(String s){ System.out.println(\

}

}

第 3 页 共 12 页

class SubA extends Base{ }

class SubB extends SubA{ }

请问上述程序的是______________ A.编译不通过

B.编译通过,但是运行时报错 C.Base: null SubA: null Base: Hello World SubA: Hello World SubB : Hello World D.SubA: null SubB : Hello World E.SubA: null SubA: Hello World

第 4 页 共 12 页

public SubA(String s){ }

System.out.println(\

public SubB(){ }

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

new SubA(null); new SubB();

super(\

System.out.println(\

SubB : Hello World

12、以下方法声明正确的有________________。

A.public static synchronized void writeLog(String msg) B. synchronized public static writeLog(String msg) C. public final abstract void writeLog(String msg) D.final public void writeLog(String msg)

E.abstract synchronized void writeLog(String msg) 13、方法重载(overloading)必须满足________。

A. 在不同class中定义的方法 B.在同一类中定义的方法 C. 方法名必须相同 D.返回类型必须相同 E. 参数一定不同 F.参数可以相同 14、对于构造方法(constructor)描述正确的有________。

A. 构造方法没有返回类型 B.构造方法一定是public的方法 C.果我们没有显示定义构造方法,系统会提供一个缺省的 D.构造方法不能重载 E.构造方法可以相互调用 15、 以下对于方法覆盖(overriding)的说法正确的有________。

A.方法覆盖发生在同一类中 B.方法的覆盖发生在子类型中 C.方法名一定要一样 D.参数一定要一样 E.返回类型可以不一样 F.访问权限只能一样

G.如有异常,子类型中抛出的异常与父类型中的一致或是其子类型 H.静态方法可以被静态方法覆盖

得分

二、填空题(本大题共8道小题,共有30个空,每空1分,共30分,请把答案写在表格中) 1 2 hashCode equals 第 5 页 共 12 页

3 4 5 6 7 8 ArrayList Vector HashSet HashMap HashTable Package import class Join yield 1、 在Java中可以用两种方式来创建线程,分别是 和 ,启动线程的方法是 ,线程启动后运行的是 里的代码。

2、 如果自行构建的一个Java类想要自定义判断对象相等的规则,则需要重写其 _________方法,同时还需要重写他的______________方法。

3、事件处理方式采用了observer(观察者)设计模式,事件编程三要素是 、 和 。

4、如果你想将一组对象按一定顺序存取,在不考虑并发访问的情况下会使用___________, 反之则会使用_____________;

如果你想存储一组无序但唯一的对象,你会使用_________;

如果你想按关键字对对象进行存取,在不考虑并发访问的情况下会使用____________, 反之则会使用__________。

5、在一个java源文件中的三个顶级元素,按顺序分别是 , , 。

6、Java方法的参数传递对于基本数据类型如int, byte等,参数传递是 ; 对自定义数据类型,参数传递是_____________。

7、并发控制是多线程编程的难点。一个线程要等待某个条件的满足,调用方法 ;通知某一个处于等待状态线程的方法是_______,通知多个的是__________;处于等待状态的线程当前调用的方法或程序块用关键字____________来限制。一段线程不安全的代码,使用__________关键字实现代码块单线程运行。运行中线程等待另一个线程结束调用线程的_________方法。暂时让出执行权调用_____________方法。

8、对原始数据的读写,采用流___________和___________,为了提高性能,采用流___________和____________。

得分

第 6 页 共 12 页

三、阅读程序题(本大题共3道小题,每小题4分,共12分,请把答案写在表格中) 1 2 3 1、阅读下面程序段,回答问题。 int m=0,n=0;

for (int i=0, j=1; i<10&&j<10;i++,j++){ if (i>5) m++; else n--; j++; }

运行后,m的值为___0___ ,n的值为__-5____。

2、 请看以下程序: class Vehicle {

public void drive() {

System.out.println(\ } }

class Car extends Vehicle { public void drive() {

System.out.println(\ } }

public class Test {

public static void main (String args []) { Vehicle v; Car c;

v = new Vehicle(); c = new Car(); v.drive(); c.drive(); v = c;

第 7 页 共 12 页

v.drive(); } }

请问输出结果是什么?

3、阅读下面程序

public class ExceptionTest{

public double div(double a, double b){ try{

return a/b;

}catch(Exception e){

System.out.println(“Exception thrown”); }catch(Throwable t){

System.out.println(“Throwable thrown”); return 0.0; }finally{

System.out.println(“Release resources.”); } }

public static void main(String[] args){ ExceptionTest et = new ExceptionTest(); et.div(1, 2); et.div(3.4, 0); } }

可能产生的结果是什么?

编译错误(finally中少了一个return)

得分

四、程序填空题(本大题共3道小题,共16分)

1、在本地文件系统下有一个用GBK编码的文本文件conf.txt,编写一个静态方法能够正确输出该文件的文本内容在控制台:(6分) public static String readFile(String url){

第 8 页 共 12 页

2、定义接口Student,该接口中有一个无参、无返回值的方法prtMsg;定义类College,包括的私有属性有id和name,包括一个接收学生学号和姓名的构造方法,并且实现Student接口。(5分)

interface Student{ (1) }

(2) //College类的声明,实现Student接口 {

(3) //定义私有成员变量id和name,类型自定 (4)//构造方法声明和定义,接收二个参数 (5)//实现prtMsg方法的声明 {

//prtMsg的方法体

System.out.println(id + name); } }

3、写程序实现包括一个复选框的窗体,并处理用户选取事件。(5分) import java.awt.*;

import java.awt.event.*;

(1) //类声明,类名为MyCheck,继承自Frame类 { //类体

public MyCheck(){

(2) //创建Panel的一个实例,并设置其布局为FlowLayout Checkbox cbx = new Checkbox(“isPassed”); (3) //向面板中加入组件cbx,并为组件注册监听器 add(p);

(4) //把窗体设为可见,并设置大小 }

public static void main(String[] args){ new MyCheck(); }

//定义内部类实现监听,相应的监听接口为ItemListener (5) //内部类的声明 {

public void itemStateChanged(ItemEvent e){ System.out.println(e);

第 9 页 共 12 页

} } }

五、 程序设计题(本大题共2道小题,每小题6分,共12分) 1、 请使用递归编写一个方法,功能为返回一个正数的阶乘。(6分)

package com.briup.test; import java.util.Scanner;

public class Recursion { }

public static long sum = 1;

public long Recurrence(int n){ }

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

int n = 0; long sum = 0;

Scanner sc = new Scanner(System.in); System.out.println(\); n = Integer.parseInt(sc.next()); Recursion rs = new Recursion();

System.out.println(\+rs.Recurrence(n)); if(n>0){ }

return sum;

sum = n * Recurrence(n-1);

2、泛型与增强for循环(for-each)是jdk1.5(Java5)新增加的特性,用于简化程序员编程操作,

提高代码可读性。

下面要求构建一个有序的集合,手工添加若干字符串“aaaa”,\。然后按输入顺利遍历集合,并打印出字符串及其长度。

请使用传统没有泛型和传统的循环语句,以及泛型和增强for循环分别实现代码。(6分)

传统:

package com.briup.test;

第 10 页 共 12 页

import com.briup.hashmap.ArrayList; import com.briup.hashmap.Iterator; import com.briup.hashmap.List;

public class TradArrayList { }

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

List list = new ArrayList(); list.add(\list.add(\list.add(\list.add(\

Iterator it = list.iterator(); while(it.hasNext()){ }

String strs = (String) it.next(); System.out.println(strs); char[] ch = strs.toCharArray(); System.out.println(ch.length);

增强for:

package com.briup.test; import java.util.*;

public class ForArrayList { }

第 11 页 共 12 页

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

List list=new ArrayList(); list.add(\list.add(\list.add(\list.add(\for(String str: list){ }

System.out.println(str); char[] ch = str.toCharArray(); System.out.println(ch.length);

第 12 页 共 12 页

本文来源:https://www.bwwdw.com/article/pod2.html

Top