还剩5页未读,继续阅读
文本内容:
java期末考试题和答案PTA
一、选择题(本题型共20题,每题2分,共40分)
1.Java语言最初由哪家公司开发?()A.Sun MicrosystemsB.Microsoft C.Oracle D.IBM
2.以下哪个不是Java的基本数据类型?()A.int B.String C.double D.boolean
3.Java程序的入口方法是?()A.main B.run C.start D.init
4.定义类时使用的关键字是?()A.class B.interface C.enum D.package
5.执行语句“int a=7/3;”后,变量a的值是?()A.2B.
2.333C.3D.
06.Java中类的继承关系是?()A.单继承B.多继承C.单继承和多继承都支持D.取决于编译器
7.关于抽象类,以下说法正确的是?()A.抽象类必须包含抽象方法B.抽象类可以直接实例化C.抽象方法必须在子类中实现D.抽象类不能有构造方法
8.接口中的默认方法使用哪个关键字修饰?()A.static B.default C.final D.abstract
9.以下集合类中线程安全的是?()A.ArrayList B.HashMap C.Vector D.HashSet
10.Java异常处理中,以下哪个关键字用于声明方法可能抛出的异常?()第1页共7页A.try B.catch C.throws D.throwable
11.以下哪种方式可以实现Java多线程?()A.继承Thread类B.实现Runnable接口C.A和B都是D.以上都不是
12.String类的哪个方法用于获取字符串长度?()A.length B.size C.getLength D.length
13.以下属于方法重载的是?()A.public voidmethod{}和public voidmethodint a{}B.public voidmethodint a{}和public voidmethodint a,int b{}C.A和B都是D.以上都不是
14.关于多态的描述,错误的是?()A.多态通过方法重写实现B.父类引用可指向子类对象C.多态会降低代码可读性D.多态需基于继承或接口实现
15.用于读取字符文件的流是?()A.FileInputStream B.FileReader C.FileWriter D.FileOutputStream
16.执行语句“String s1=hello;String s2=newStringhello;System.out.printlns1==s2;”的结果是?()A.true B.false C.编译错误D.运行时异常
17.以下非线程安全的集合类是?()A.ConcurrentHashMap B.CopyOnWriteArrayList C.LinkedListD.Hashtable
18.未捕获的异常会导致?()第2页共7页A.程序继续运行B.程序终止C.编译错误D.无影响
19.创建对象使用的关键字是?()A.new B.create C.instance D.build
20.执行语句“int[]arr={1,2,3,4};forint i=0;iarr.length;i++{ifi==2break;System.out.printarr[i]+;}”的输出是?()A.1234B.12C.123D.23
二、填空题(本题型共15题,每题2分,共30分)
1.Java程序编译后生成的文件扩展名为______
2.用______关键字修饰的类不能被继承
3.实现多线程的两种方式是继承______类和实现______接口
4.ArrayList基于______实现,LinkedList基于______实现
5.String类的______方法用于忽略字符串前后空格并返回新字符串
6.Java异常体系的根类是______
7.多线程同步可通过______关键字实现
8.线程安全的List实现类是______,线程安全的Map实现类是______(写两个即可)
9.IO流分为字节流和______流,字节流的父类是InputStream和______
10.定义接口使用的关键字是______,接口中的方法默认是______类型
11.以下代码中,变量num的类型是______ListInteger list=new ArrayList;Integer num=list.get0;
12.Java中释放对象资源的方法是______第3页共7页
13.父类引用指向子类对象时,调用重写方法会执行______类的方法
14.读取文本文件内容常用______类的readLine方法
15.受检异常继承自______类,非受检异常继承自______类
三、判断题(本题型共10题,每题1分,共10分)
1.Java是编译型语言,可跨平台()
2.String类的对象是不可变的()
3.Java支持多继承,一个类可继承多个父类()
4.抽象类必须包含抽象方法()
5.HashMap允许键和值为null()
6.多线程可通过继承Thread类或实现Runnable接口实现()
7.try块中发生异常后,会跳过后续代码直接执行catch块()
8.ArrayList的查询效率比LinkedList高()
9.Java接口可以继承多个接口()
10.FileWriter用于向文件写入字符数据()
四、简答题(本题型共5题,每题6分,共30分)
1.简述Java多态的概念及其实现方式
2.什么是抽象类?抽象类与接口的主要区别是什么?
3.说明ArrayList和Vector的区别
4.Java异常处理的机制是什么?try、catch、finally块的执行顺序是怎样的?
5.字节流和字符流的区别是什么?各举两个常用类
五、编程题(本题型共4题,每题10分,共40分)
1.定义一个Student类,包含私有属性name(String)、age(int)、score(double),提供构造方法、getter/setter方法,并第4页共7页实现方法getGrade,根据score返回等级(90-100为A,80-89为B,60-79为C,60以下为D)
2.使用ArrayList存储多个Student对象,实现方法getHighestAvgStudentListStudent students,返回平均分最高的学生对象
3.使用IO流读取文本文件(格式每行一个学生,内容为“姓名,年龄,成绩”),解析后存储到ArrayListStudent,计算平均分并写入另一个文本文件
4.创建两个线程,线程1打印1-10的整数,线程2打印11-20的整数,要求交替打印(线程1打印一个数后线程2打印一个,依次交替)参考答案
一、选择题
1.A
2.B
3.A
4.A
5.A
6.A
7.C
8.B
9.C
10.C
11.C
12.A
13.C
14.C
15.B
16.B
17.C
18.B
19.A
20.B
二、填空题
1..class
2.final(或final class)
3.Thread,Runnable
4.数组,链表
5.trim
6.Throwable
7.synchronized
8.Vector,Hashtable(或ConcurrentHashMap)
9.字符,OutputStream
10.interface,abstract
11.Integer
12.finalize
13.子类
14.BufferedReader
15.Exception,RuntimeException
三、判断题第5页共7页
1.√
2.√
3.×
4.×
5.√
6.√
7.√
8.√
9.√
10.√
四、简答题
1.多态是指同一行为在不同对象上的不同表现形式,是面向对象的核心特性之一实现方式
①方法重写(子类重写父类方法);
②接口实现(类实现接口并覆盖接口方法);
③父类引用指向子类对象
2.抽象类是被abstract修饰的类,可包含抽象方法(无方法体)和非抽象方法,且有构造方法与接口的区别
①抽象类可包含普通成员变量、非抽象方法和构造方法,接口仅能有抽象方法(默认abstract)和常量;
②类继承抽象类用extends(单继承),实现接口用implements(多实现);
③接口支持Java8的默认方法(default)和静态方法(static),抽象类无此特性
3.
①线程安全Vector是线程安全的(方法含synchronized),ArrayList非线程安全;
②扩容机制Vector默认扩容为原容量的2倍,ArrayList为
1.5倍;
③初始容量无参构造时,两者均为10;
④性能ArrayList在非线程安全场景下效率更高(无同步开销)
4.异常处理机制是程序通过try监控异常代码、catch捕获异常、finally释放资源的机制执行顺序
①若try无异常,执行try块后跳过catch块,执行finally块;
②若try有异常,匹配首个catch块执行,执行后执行finally块;
③若多个catch块,按顺序匹配首个符合的catch块执行,执行后执行finally块
5.字节流以字节为单位处理数据,用于二进制文件(如图像、音频);字符流以字符为单位处理数据,用于文本文件常用字节流FileInputStream、FileOutputStream;常用字符流FileReader、FileWriter第6页共7页
五、编程题(答案需写出完整代码,此处仅为逻辑说明)
1.定义Student类,构造方法初始化name、age、score,getter/setter方法,getGrade根据score返回等级(通过条件判断实现)
2.遍历ArrayListStudent,计算每个学生的总分,求平均分后比较,返回平均分最高的Student对象
3.使用BufferedReader读取文件,按逗号分割每行数据为姓名、年龄、成绩,转换为Student对象存入ArrayList;计算ArrayList中所有Student的score总和/学生数,用BufferedWriter写入新文件
4.使用synchronized关键字或wait/notify机制,让线程1和线程2交替获取锁,确保线程1打印后线程2获取锁打印,依次交替(如通过共享标志位控制线程执行顺序)第7页共7页。
个人认证
优秀文档
获得点赞 0