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

下载本文档

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

文档简介

CoreJava基础测试题(含详细答案)适用场景:Java入门期末考核、企业初级Java笔试、基础能力复盘考试时长:90分钟满分:100分一、单项选择题(共15题,每题2分,共30分)1.以下关于Java语言特性的说法,正确的是()A.Java是面向过程的编译型语言B.Java支持指针操作C.Java具备跨平台特性,依靠JVM实现D.Java不支持垃圾回收机制2.下列标识符中,符合Java命名规范的是()A.123nameB.name@userC.user_nameD.class3.以下基本数据类型中,占用内存字节数为2的是()A.byteB.shortC.intD.char4.关于==和equals()的区别,说法错误的是()A.==可以比较基本类型和引用类型B.基本类型用==比较数值是否相等C.String的equals()比较的是对象地址D.引用类型==比较的是内存地址5.Java中,被final修饰的变量,说法正确的是()A.可以多次赋值B.只能赋值一次,不可修改C.变量默认值为nullD.可以被重新声明6.以下关于重载和重写的说法,正确的是()A.重写发生在同一个类中B.重载方法参数列表必须不同C.重写方法可以修改父类的方法名D.重载方法返回值必须一致7.Java中,接口(interface)的特点不包括()A.接口可以多继承B.接口中可以定义构造方法C.接口默认修饰符是publicD.接口可以定义常量8.下列集合中,线程安全的是()A.ArrayListB.HashMapC.VectorD.HashSet9.关于异常,以下说法正确的是()A.Error可以被try-catch捕获B.Exception是所有异常的父类C.运行时异常必须手动捕获D.编译异常可以忽略不处理10.Java中,static关键字修饰的方法,说法正确的是()A.必须通过对象调用B.可以直接通过类名调用C.能访问类的非静态成员D.方法不能被重载11.以下循环语句中,能够跳出多层循环的关键字是()A.continueB.breakC.returnD.goto12.String、StringBuilder、StringBuffer的区别,说法正确的是()A.String内容可修改B.StringBuilder线程安全C.StringBuffer线程安全,效率低于StringBuilderD.三者内容均可修改13.数组在Java中属于()A.基本数据类型B.引用数据类型C.特殊数据类型D.自定义类型14.子类继承父类后,不能访问的父类修饰符是()A.publicB.protectedC.default(包访问权限)D.private15.下列关于JVM、JRE、JDK关系说法正确的是()A.JDK包含JRE,JRE包含JVMB.JRE包含JDK,JDK包含JVMC.JVM包含JRE,JRE包含JDKD.三者互相独立,无包含关系二、填空题(共10空,每空2分,共20分)1.Java程序的入口方法是__________。2.面向对象的三大特性是封装、__________、__________。3.数组的下标从__________开始,数组长度一旦定义__________(可/不可)修改。4.处理异常的五个关键字是try、catch、__________、__________、throws。5.List集合特点是__________、元素可重复;Set集合特点是无序、__________。6.多态的实现前提是继承、__________、父类引用指向子类对象。三、简答题(共4题,每题5分,共20分)1.简述Java中重载(Overload)和重写(Override)的核心区别。2.简述接口和抽象类的区别。3.简述ArrayList和LinkedList的区别及适用场景。4.简述Java中四种访问修饰符的访问权限范围(从大到小)。四、编程题(共2题,每题15分,共30分)1.编写Java代码,实现冒泡排序,对int数组{3,1,4,2,5,9,7}进行升序排序并遍历输出结果。2.编写面向对象代码:定义学生类(Student),包含属性:姓名、年龄、学号;提供无参、有参构造方法,重写toString方法;在测试类中创建学生对象并打印学生信息。参考答案及详细解析一、单项选择题答案及解析1.答案:C解析:Java是面向对象语言,无指针,自带垃圾回收机制,依靠JVM实现一次编译、到处运行的跨平台特性。2.答案:C解析:标识符不能以数字开头、不能包含特殊符号、不能是关键字,只有user_name符合规范。3.答案:B解析:byte(1字节)、short(2字节)、int(4字节)、char(2字节);题目问基本类型中固定2字节的数值类型,选short。4.答案:C解析:String的equals()方法重写后,比较的是字符串内容,==比较的是对象内存地址。5.答案:B解析:final修饰的变量为常量,只能初始化赋值一次,后续不可修改。6.答案:B解析:重载在同类中,参数列表必须不同;重写在父子类中,方法名、参数、返回值必须一致。7.答案:B解析:接口不能定义构造方法,无法实例化,只能被类实现或被其他接口继承。8.答案:C解析:ArrayList、HashMap、HashSet均为线程不安全;Vector是线程安全的集合。9.答案:B解析:Error是系统级严重错误,无法捕获;运行时异常可不用手动捕获,编译异常必须处理。10.答案:B解析:static静态方法属于类,可直接通过类名调用,只能访问静态成员。11.答案:C解析:continue跳出本次循环,break跳出当前单层循环,return可直接结束方法,跳出多层循环。12.答案:C解析:String内容不可修改;StringBuffer加了同步锁,线程安全但效率低,StringBuilder线程不安全、效率高。13.答案:B解析:数组、类、接口均属于引用数据类型。14.答案:D解析:private私有权限,仅本类可访问,子类无法继承和访问。15.答案:A解析:JDK(开发工具包)包含JRE(运行环境),JRE包含JVM(虚拟机)。二、填空题答案1.publicstaticvoidmain(String[]args)2.继承、多态3.0、不可4.finally、throw5.有序、元素不可重复6.方法重写三、简答题详细答案1.重载和重写的核心区别(1)发生范围:重载在同一个类中;重写发生在父子类之间。(2)方法定义:重载要求方法名相同、参数列表不同(个数、类型、顺序),返回值无要求;重写要求方法名、参数列表、返回值完全一致。(3)权限:重写的子类方法权限不能小于父类;重载无权限限制。(4)作用:重载是一个类中方法多形态;重写是子类重定义父类方法,实现多态。2.接口和抽象类的区别(1)继承方式:抽象类是单继承;接口是多实现/多继承。(2)构造方法:抽象类有构造方法;接口无构造方法。(3)成员变量:抽象类可定义普通变量、常量;接口默认是常量。(4)方法:抽象类可包含普通方法、抽象方法;JDK8之前接口只有抽象方法,后续支持默认方法、静态方法。(5)设计思想:抽象类是模板设计;接口是行为规范。3.ArrayList和LinkedList的区别及适用场景(1)底层结构:ArrayList基于动态数组;LinkedList基于双向链表。(2)查询效率:ArrayList随机查询快(数组下标寻址);LinkedList随机查询慢,需要遍历链表。(3)增删效率:ArrayList中间增删需要移动元素,效率低;LinkedList仅修改节点引用,增删效率高。(4)适用场景:ArrayList适合大量查询、少量增删;LinkedList适合大量增删、少量查询。4.四种访问修饰符权限范围(从大到小)public(公共)>protected(受保护)>default(包权限)>private(私有)public:任意类、任意包均可访问;protected:本类、同包类、不同包子类可访问;default:仅同包内类可访问;private:仅本类内部可访问。四、编程题参考答案1.冒泡排序代码java

publicclassBubbleSortTest{

publicstaticvoidmain(String[]args){

int[]arr={3,1,4,2,5,9,7};

//冒泡排序:升序

for(inti=0;i<arr.length-1;i++){

for(intj=0;j<arr.length-1-i;j++){

if(arr[j]>arr[j+1]){

//交换位置

inttemp=arr[j];

arr[j]=arr[j+1];

arr[j+1]=temp;

}

}

}

//遍历输出

for(intnum:arr){

System.out.print(num+"");

}

}

}

输出结果:12345792.学生类面向对象代码java

//学生实体类

classStudent{

//成员属性

privateStringname;

privateintage;

privateStringstuId;

//无参构造

publicStudent(){

}

//有参构造

publicStudent(Stringname,intage,StringstuId){

=name;

this.age=age;

this.stuId=stuId;

}

//getter、setter方法

publicStringgetName(){

returnname;

}

publicvoidsetName(Stringname){

=name;

}

publicintgetAge(){

returnage;

}

publicvoidsetAge(intage){

this.age=age;

}

publicStringgetStuId(){

returnstuId;

}

publicvoidsetStuId(StringstuId){

this.stuId=stuId;

}

//重写toString方法

@Override

publicStringtoString(){

return"Student{"+

"姓名='"+name+'\''+

",年龄="+age+

",学号='"+stuId+'\''+

温馨提示

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

评论

0/150

提交评论