JDK 核心基础测试题(含详细答案解析)_第1页
JDK 核心基础测试题(含详细答案解析)_第2页
JDK 核心基础测试题(含详细答案解析)_第3页
JDK 核心基础测试题(含详细答案解析)_第4页
JDK 核心基础测试题(含详细答案解析)_第5页
已阅读5页,还剩1页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

JDK核心基础测试题(含详细答案解析)适用人群:Java初学者、面试基础刷题、在校生期末复习考试说明:满分100分,答题时间60分钟,题型包含选择题、填空题、简答题、编程题,所有答案贴合JDK8主流版本,无书面化空洞话术,侧重实操知识点。一、单项选择题(共10题,每题3分,共30分)1.以下关于JDK、JRE、JVM的关系说法正确的是()A.JRE包含JDK,JDK包含JVMB.JDK包含JRE,JRE包含JVMC.JVM包含JRE,JRE包含JDKD.三者互相独立,无包含关系2.Java程序编译和运行的正确命令顺序是()A.java文件名.java→javac文件名B.javac文件名.java→java文件名C.javac文件名→java文件名.javaD.java文件名→javac文件名.java3.JDK8中,以下关于final关键字说法错误的是()A.final修饰的变量是常量,只能赋值一次B.final修饰的方法不能被重写C.final修饰的类可以被继承D.final局部变量可以先声明,后赋值4.以下不属于JDK自带集合框架的类是()A.ArrayListB.HashMapC.LinkedListD.MyList5.JDK8新增的核心特性是()A.泛型B.Lambda表达式、Stream流C.注解D.枚举6.以下关于String、StringBuilder、StringBuffer说法正确的是()A.String是可变字符串B.StringBuilder线程安全,效率低C.StringBuffer线程安全,效率低于StringBuilderD.三者都是可变字符串7.JDK中,用来抛出异常的关键字是()A.tryB.catchC.throwD.throws8.以下基本数据类型,占用内存空间最大的是()A.intB.longC.floatD.short9.HashMap在JDK7和JDK8中的底层结构变化,说法正确的是()A.JDK7是数组+链表,JDK8是数组+链表+红黑树B.JDK7是数组+红黑树,JDK8是数组+链表C.两者底层结构完全一致D.JDK8取消了链表结构10.以下哪个是JDK提供的自动垃圾回收机制的作用对象()A.栈内存B.堆内存C.方法区D.本地方法栈二、填空题(共5题,每题4分,共20分)1.JDK的全称是________,中文含义是Java开发工具包。2.Java源文件后缀是________,编译后的字节码文件后缀是________。3.JDK8中,接口中可以定义的两种新方法是________和________。4.异常分为两大类,分别是________和________。5.多线程中,JDK提供的________关键字可以保证线程同步,解决并发安全问题。三、简答题(共4题,每题8分,共32分)1.简单说明JDK和JRE的核心区别,以及日常开发和运行程序分别需要什么?2.简述JDK8中Lambda表达式的使用前提和核心作用。3.说一说ArrayList和LinkedList的底层区别、查询和增删效率差异。4.简述JDK中重载和重写的区别。四、编程题(共1题,18分)使用JDK8Stream流完成需求:定义一个存储学生姓名的字符串集合,过滤掉姓名长度小于3的元素,去重后按字母顺序升序排序,最后遍历打印所有结果。——————详细答案解析——————一、单项选择题答案及解析1.答案:B解析:JDK(开发工具包)包含JRE(运行环境),JRE包含JVM(虚拟机)。开发需要完整JDK,仅运行程序只需JRE。2.答案:B解析:javac是编译命令,需指定完整文件名(带.java后缀),生成class字节码文件;java是运行命令,只需写类名,不用加后缀。3.答案:C解析:final修饰的类不能被继承,final方法不能重写,final变量不可二次赋值。4.答案:D解析:MyList是自定义类,不属于JDK原生集合框架,其余均为JDK自带常用集合类。5.答案:B解析:泛型、注解、枚举均为JDK5特性,Lambda和Stream流是JDK8标志性核心新特性。6.答案:C解析:String是不可变字符串;StringBuilder非线程安全、效率高;StringBuffer加了同步锁,线程安全但效率更低。7.答案:C解析:throw用于手动抛出单个异常(写在方法体内);throws用于声明方法可能抛出的异常(写在方法签名);try、catch用于捕获处理异常。8.答案:B解析:byte(1字节)、short(2)、int(4)、long(8)、float(4)、double(8),选项中long占用字节数最大。9.答案:A解析:JDK7的HashMap底层是数组+单向链表,哈希冲突严重时链表过长,查询效率极低;JDK8优化为数组+链表+红黑树,链表长度超过8且数组长度大于64时转为红黑树,提升查询效率。10.答案:B解析:JVM垃圾回收(GC)主要针对堆内存的对象进行回收,栈内存、本地方法栈、程序计数器内存自动释放,无需GC回收。二、填空题答案及解析1.JavaDevelopmentKit2..java;.class解析:.java是程序员编写的源码文件,需编译为JVM可识别的.class字节码文件。3.默认方法(default);静态方法(static)解析:JDK8之前接口只能定义抽象方法,JDK8允许接口定义带方法体的默认方法和静态方法,解决接口升级兼容问题。4.编译时异常(受检异常);运行时异常(非受检异常)5.synchronized解析:synchronized是JDK原生同步关键字,可修饰方法或代码块,保证多线程原子性、可见性、有序性。三、简答题详细答案1.JDK和JRE核心区别①组成不同:JDK包含开发工具(javac、java、jar等)+JRE所有内容;JRE只包含Java运行环境、核心类库、JVM,无开发工具。②用途不同:Java开发、编译代码必须安装JDK;仅运行已编译好的Java程序,只需JRE即可。2.Lambda表达式使用前提和核心作用使用前提:必须作用于函数式接口(仅有一个抽象方法的接口)。核心作用:简化匿名内部类的冗余代码,让代码更简洁紧凑;配合Stream流实现集合、数组的流式操作,提升代码可读性和开发效率。3.ArrayList和LinkedList区别①底层结构:ArrayList基于动态数组;LinkedList基于双向链表。②查询效率:ArrayList支持随机访问,通过下标查询速度极快;LinkedList只能从头节点遍历,查询效率低。③增删效率:ArrayList增删元素会触发数组移位、扩容,效率低;LinkedList只需修改节点指针,无需移动元素,首尾增删效率高。④适用场景:ArrayList适合大量查询、少增删场景;LinkedList适合频繁增删、少查询场景。4.重载和重写的区别①定义不同:重载是同一个类中,多个方法名相同,参数列表(个数、类型、顺序)不同;重写是子类对父类继承的方法进行重新实现。②权限不同:重载无权限限制;重写的方法权限不能比父类更严格。③返回值:重载返回值可任意修改;JDK中重写返回值支持协变,不能随意修改。④核心作用:重载实现一个方法名多种功能;重写实现子类个性化方法逻辑。四、编程题参考答案(可直接运行)java

importjava.util.ArrayList;

importjava.util.List;

importjava.util.stream.Collectors;

publicclassJdkStreamTest{

publicstaticvoidmain(String[]args){

//1.定义学生姓名集合

List<String>nameList=newArrayList<>();

nameList.add("张三");

nameList.add("李四四");

nameList.add("王五");

nameList.add("赵六六六");

nameList.add("李四四");

nameList.add("钱七");

//2.JDK8Stream流操作:过滤、去重、排序、遍历

nameList.stream()

//过滤:保留姓名长度≥3的元素

.filter(name->name.length()>=3)

//去重

.distinct()

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论