Java期末复习

一、判断题判断以下论述的正误,认为正确的就在答题相应位置划"T",错误的划“F”。每小题1分,共10分。)

1.在定义一个类的时候,如果类的成员被 private所修饰,该成员不能在类的外部被直接访问。

T

2.编译一个定义了 3个类和 10 个方法的 Jave 源文件后,会产生3个字节码文件,其扩展名为.class。 

T

3.package 语句必须作为 Java 源文件的第一条语句。

T

4.-5%3 的运算结果是 2。

F

5.static 关键字可以修饰成员变量,也可以修饰局部变量。

F

6.Java 不允许一个方法在自身定义的内部调用自己。

F

7.线程使用 sleep()方法休眠后,可以用 notify()方法唤醒。

F

8.编译 Java 源文件后得到的代码叫字节码。

T

9.一个类中定义两个方法,名字相同,参数相同,返回值不同,它们是重载方法。

F

10.“三次握手"是对 TCP 协议的形象比喻。

T

二、单项选择题从下列各题备选答案中选出一个正确答案,并将其代号写在答题纸相

应位置。答案错选或未选者,该题不得分。每小题2分,共20分。)

1.以下选项中,能正确定义一个 4*3的二维数组的是(A)。

A.int[ ][ ] arr=new int [4][3] B. int[ ][ ] arr=new int [4][ ]

C.int[ ][ ] arr=new int [ ][3] D. int[ ][ ] arr={{1,2},{3,4,5},{6}}

2.数组在 Java 中存储在(C)中。

A.栈 B.队列

C.堆 D.列表

3.main方法是Java Application程序执行入口,以下关于 main方法首部语法正确的是(D)

A.public static main()  B.public static main(String args[])

C.public static int main (String args,[])  D publis static void main(String args[])

4.关于 Java 中的集合类,下列描述错误的是(D)。

A.HashMap.集合是 Map 接口的实现类

B.Arxaylist集合对象是长度可变的对象引用数组。

C.集合框架都包含三大块内容:对外的接口、接口的实现和对集合运算的算法

D.Set集合中存储一组不允许重复、有序的对象。

5.如果 JDK 的安装路径为C:\JDK,若想在命令窗口中的任何当前路径下,都可以直接使

用 Javac和 Java 命令,需将环境变量pat设置为(B)。

A.C:\jdk B.C:\jdk\bin

C.C:\jre\bin D.C:\jre

6.下列关于Java.util.Arraylist的说法正确的是(A

A.这个集合中的元素是有序的。

B.可以通过键来获取这个集合中的元素。

C.可以通过 addFirst()方法,在集合的首部插入无案

D.在对这个集合执行遍历操作时,效率比较低

7.下列程序执行后,输出结果是(A)。

public class A{

public static void main(String[] args){

int j = 0;

for(int i=3;i>=0;i--){

j+=i;

System.out.print(j);

}

}

}

A.3566 C.6753

B.3522 D.3255

8.在 Java语言中,下列关于类的继承的描述,正确的是(B)。

A.一个类可以继承多个父类 B.一个类可以具有多个子类

C.子类可以使用父类的所有方法 D.子类一定比父类有更多的成员方法

9.下列叙述中,正确的是(D

4.Serializable,是一个处理字节流的一般类

B.Serializable是一个处理对象流的抽象类

C.Serializable是一个处理非流类的接口

D.Serializable是一个处理对象流的接口

三、多项选择题(从下列各题四个备选答案中选出多个正确答案,并将其代号写在答题

纸相应位置。答案错选或未选者,该题不得分。每小题2分,共10分。)

1.以下选项中,属于JDK工具的是(BCD

A.Java 编辑器 B.jdb 调试工具

C.jshell命令行工具 D.Java 打包工具

2.关于线程的创建过程,下面四种说法正确的有哪些(AC)。

A.定义Thread类的子类,重写 Thread的run()方法,创建该子类的实例对象,调用对

象的 start()方法

B.定义 Thread 类的子类,重写 Thread 的run()法,创建该子类的实例对象,调用对象

的run()法

C.定义一个实现 Runnable 接口的类并实现 run()方法,创建该类实例对象,将其作为参

数传递给 Thread 类的构造方法来创建 Thread 对象,调用 Thread 对象的 start()方法

D.定义一个实现 Runnable接口的类并实现run0方法,创建该类对象,然后调用 run()

方法

3.关于抽象类的说法,以下说法正确的是(AC

A.抽象类中可以有非抽象类

B.如果父类是抽象类,则子类必须重写父类所有的抽象方法。

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

D.接口和抽象类是同一个概念

4.在 Java 接口中,下列选项中有效的方法声明是(AB

A. public void a Method();

B.void a Method();

C.protected void a Method();

D.private void a Method();

5.下列选项中,错误的说法是(ACD)。。

A.Java程序经编译后会产生 machine code.

B.Java程序经编译后会产生 byte code.

C.Java程序经编译后会产生 DLL

D.以上都不正确。

四、程序阅读题(阅读程序,写出运行结果,请将线上要填写的内容在答题纸相应位

置上,每小题6分,共30分。)

1.下面程序段的运行结果是。

public class Test{

public static void main(String[] args){

System.out.println(Math.abs(-5));

System.out.println(Math.cei1(6.6));

System.out.printin (Math.round(-4.9));

}

}

答案:5

      7.0

      -5

2.下面程序段的运行结果是。

public class ArrayDemo{

public static void main(String[] args){

int[] arr= (15,11,12,14,26,28,17,18};

int min = arr[0];

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

if( min > arr[i]){

min = arr[i];

}

}

System.out.println("运算结果是: " + min);

}

}

答案:运算结果是:11

3.下面程序段的运行结果是。"

import java.util.ArrayList;

public class Test{

public Test(){}

static void print(ArrayList list){

list.add(3);

list=new ArrayList();

list.add(4);

list.add(5);

}

public static void main(String[] args){

Test test=new Test().

ArrayList list=new ArrayList();

List.add(2);

List.add(1);

print(list);

System.out.println(list.get(0));

System.out.println(list.get(1));

System.out.println(list.get(2));

}

}

答案:2

      1

      3

4.下面程序段的运行结果是。

import java.util.*;

import java.util.Map.*;

public class Test{

public static void main(String[] args){

Map map = new HashMap();

map.put(1,“Tom”);

map.put(2,“Lucy”);

map.put(3,”Annie” );

Set keySet = map.keySet();

Iterator it = keySet.iterator();

while (it.hasNext()){

Object key = it.next();

System.out.println (key);

}

}

}

答案:1

      2

      3

5.下面程序段的运行结果是。"

public class Test{

public static void main(String[] args){

String s=”dfferghuklmbdfd”;

System.out.println(“长度是:”+s.length());

System.out.println(“索引是:”+s.lastIndexOf(‘m’));

System.out.println(”字符是:”+s.substring(2,4));

}

}

答案:长度是:15

      索引是:10

      字符是:fe

五、程序填空题(阅读并分析程序,请将横线上要填写的内容写在答题纸相应位置上,每空3分,共30分。)

1.编写一个 Jave 程序,使用输入和输出流实现文件的读取和复制。

import java.io.*;

public class FileCopyExample{

punlic static void main(String[] args){

String inputFilePath=”inputFile.txt”;

String outputFilePath=”outputFile.txt”;

try(

//创建一个输入流来读取源文件

FileInputStream fis=new  ① (inputFilePath);

//创建一个输出流来写入目标文件

FileOutputStream fos=new  ② (outputFilePath);

){

//读取源文件并写入目标文件

byte[] buffer=new byte[1024];

int bytesRead;

while((bytesRead=fis. ③ (buffer))!=-1){

//写入读取到底数据到目标文件

fos. ④ (buffer,0,bytesRead);

}

}catch( ⑤ e){

//处理文件未找到异常

System.out.println(“源文件未找到:”+e.getMessage());

}catch(IOException e){

//处理其他IO异常

System.out.println(“文件复制过程中发生错误:”+e.getMessage());

}

}

}

答案:FileInputStream

      FileOutputStream

      read

      write

      FileNotFoundException

2.编写一个火车票多线程的购票系统,该系统有一个票池,初始包含1000张火车票,其中每个线程代表一个购票者,每个购票者尝试购买一张票,如果票池中有票则购买成功,否则购票失败。

public class TrainTicketSystem{

//票池中初始有1000张票

private int ticketCount = 1000;

public ⑥ void buyTicket(){

//检查票池中是否还有票

if(ticketCount>0){

//票数减一,表示购票成功

 ⑦ ;

System.out.println(Thread.currentTread().getName()+”购票成功,剩余票 数:”+ticketCount);

}else{

//购票失败

System.out.println(Thread.currentTread().getName()+”购票失败,票已售完”);

}

}

//创建一个模拟的购票线程

private class Buyer extends ⑧ {

public void run(){

//调用购票方法

 ⑨ ;

}

}

public static void main(String[] args){

TrainTicketSystem system=new TrainTicketSystem();

//创建多个购票线程并启动它们

for(int i=0;i<20;i++){

Buyer buyer=system.new Buyer();

buyer. ⑩ ;

}

` }

}

答案:synchronized

      ticketCount--

      Thread

      buyTicket()

      start()

  • 18
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java 期末复习资料包括以下几个方面: 1. Java基础知识:掌握Java的基本语法、数据类型、运算符、流程控制语句等。 2. 面向对象编程:掌握Java的面向对象编程思想、类与对象、封装、继承、多态、抽象类和接口等。 3. 异常处理:掌握Java中的异常处理机制,包括异常类的层次结构、异常处理语句(try-catch-finally)、throw和throws关键字等。 4. 集合框架:掌握Java中的集合框架,包括List、Set、Map等集合容器,以及它们的特点和使用方法。 5. IO流:掌握Java中的IO流,包括字节流和字符流,文件操作等。 6. 多线程编程:掌握Java中的多线程编程,包括线程的创建和启动、线程同步、线程间通信等。 7. 数据库编程:掌握Java中的数据库编程,包括JDBC API的使用、连接数据库、执行SQL语句等。 以下是一些Java期末复习资料的推荐: 1. 《Head First Java》:这是一本非常适合初学者入门的Java书籍,内容浅显易懂,同时又不失深度,适合用来巩固Java基础知识。 2. 《Java核心技术》:这是一本全面深入的Java教材,可以帮助你系统地学习Java的各种知识点,适合用来提高Java技能水平。 3. 《Java编程思想》:这是一本讲述Java编程思想和技巧的经典书籍,涵盖了Java的基础知识、面向对象编程、异常处理、集合框架、IO流、多线程编程和数据库编程等方面的内容。 4. MOOC网站上的Java课程:例如中国大学MOOC网站上的《Java程序设计》和Coursera网站上的《Java程序设计与软件工程专项课程》,这些课程都提供了免费的在线学习资源和相关练习。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值