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

下载本文档

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

文档简介

Java编程基础笔试题(含详细答案解析)适用场景:初级Java开发、实习生招聘笔试考试时长:60分钟满分:100分一、单项选择题(共10题,每题3分,共30分)1.以下关于Java基本数据类型的说法,正确的是()A.Java中float类型默认小数,无需强制转换B.boolean类型可以赋值为0和1C.char类型占用2个字节,可存储中文汉字D.long类型的取值范围小于int类型答案:C解析:Java基本数据类型中,char占2字节,采用Unicode编码,支持存储汉字、字母、符号。A选项,Java小数默认double类型,float赋值必须加f/F;B选项,boolean仅有true、false两个值,不兼容数字;D选项,long占8字节,int占4字节,long取值范围远大于int。2.下列关于equals()和==的区别,描述错误的是()A.==对于基本类型比较数值,引用类型比较内存地址B.equals()是Object类方法,默认比较对象内存地址C.String类重写了equals(),用于比较字符串内容D.自定义对象不重写equals(),也能实现内容比较答案:D解析:自定义实体类若未重写equals()方法,会直接调用Object类的原生方法,仅对比对象内存地址,无法根据对象属性内容判断相等。3.Java中接口和抽象类的区别,说法正确的是()A.抽象类可以有构造方法,接口不能有构造方法B.抽象类和接口都能包含普通成员变量C.一个类只能实现一个接口,可继承多个抽象类D.抽象类和接口都能被实例化答案:A解析:抽象类存在构造方法,用于子类初始化;接口无构造方法。B选项,接口变量默认是publicstaticfinal常量,不能定义普通变量;C选项,类可实现多个接口,只能继承一个抽象类;D选项,抽象类和接口均无法直接实例化。4.以下集合中,线程安全的是()A.ArrayListB.HashMapC.VectorD.HashSet答案:C解析:Vector、Hashtable是JDK原生线程安全集合,底层方法加了synchronized锁。ArrayList、HashMap、HashSet均为非线程安全,多线程并发操作会出现数据覆盖、空指针等问题。5.下列关于Java异常的说法,错误的是()A.Error属于系统级异常,程序无需捕获处理B.RuntimeException是运行时异常,可省略捕获C.checked异常必须手动捕获或抛出D.finally代码块一定会执行,包括虚拟机退出场景答案:D解析:常规情况下finally代码块都会执行,但若代码中执行了System.exit(0)退出虚拟机,finally块不会执行。6.Java中for、while、do-while循环的区别,说法正确的是()A.do-while循环至少执行一次循环体B.while循环先执行后判断条件C.for循环不能实现无限循环D.三种循环都不能嵌套使用答案:A解析:do-while是先执行循环体,再判断循环条件,因此至少执行一次。B选项,while是先判断后执行;C选项,for(;;)可实现无限循环;D选项,所有循环均支持嵌套。7.以下关于String、StringBuilder、StringBuffer的说法,正确的是()A.StringBuilder是线程安全的B.String内容不可变,拼接字符串会产生新对象C.StringBuffer效率高于StringBuilderD.三者内容都可以随意修改答案:B解析:String是不可变字符串,每次拼接都会生成新String对象,效率较低。StringBuilder非线程安全、效率高;StringBuffer加锁线程安全、效率低,无StringBuilder类名写法。8.下列修饰符中,类级别访问权限最小的是()A.publicB.protectedC.默认(包访问权限)D.private答案:C解析:类的访问修饰符仅有public和默认权限,private、protected不能修饰外部类。权限大小:public(全局访问)>默认(仅同包访问)。9.重写(Override)和重载(Overload)的区别,说法错误的是()A.重载发生在同一个类中,方法名相同、参数列表不同B.重写发生在父子类中,方法名、参数列表、返回值完全一致C.重写的方法权限可以比父类更小D.重载不关注返回值类型答案:C解析:子类重写父类方法时,访问权限必须大于等于父类,例如父类protected,子类不能改为default或private。10.JDK、JRE、JVM的关系,说法正确的是()A.JDK包含JRE,JRE包含JVMB.JRE包含JDK,JDK包含JVMC.JVM包含JRE,JRE包含JDKD.三者互相独立,无包含关系答案:A解析:JVM是Java虚拟机,负责运行字节码;JRE是Java运行环境,包含JVM和核心运行类库;JDK是Java开发工具包,包含JRE和编译、调试等开发工具。二、填空题(共5题,每题4分,共20分)1.Java中,创建对象的关键字是________,继承的关键字是________,实现接口的关键字是________。答案:new、extends、implements2.数组下标从________开始,Java二维数组的本质是________。答案:0、一维数组的数组3.集合List、Set、Map中,________有序可重复,________无序不可重复,________键值对存储、键唯一。答案:List、Set、Map4.Java中抛出异常的两个关键字分别是________(主动抛出)、________(声明异常)。答案:throw、throws5.面向对象的三大核心特性是________、________、________。答案:封装、继承、多态三、编程题(共2题,每题15分,共30分)1.基础编程:实现斐波那契数列(10分)需求:编写Java程序,打印前20项斐波那契数列,数列规则:前两项为1、1,从第三项开始,每一项等于前两项之和。参考答案代码:java

publicclassFibonacciDemo{

publicstaticvoidmain(String[]args){

//定义前两项数值

inta=1;

intb=1;

System.out.print("斐波那契数列前20项:");

System.out.print(a+""+b+"");

//循环计算后续18项

for(inti=3;i<=20;i++){

intnext=a+b;

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

//数值移位,继续循环

a=b;

b=next;

}

}

}代码解析:先初始化前两项固定值,通过循环累加生成后续数值,每次循环完成数值移位,保证下一次计算基于最新的前两项,逻辑简洁,无冗余计算,适合基础场景使用。2.集合编程:数组去重排序(10分)需求:给定int数组{2,5,3,2,8,5,9,3,1},编写代码实现数组去重,并从小到大升序排序,最终输出结果。参考答案代码:java

importjava.util.ArrayList;

importjava.util.Collections;

importjava.util.HashSet;

importjava.util.List;

importjava.util.Set;

publicclassArraySortDemo{

publicstaticvoidmain(String[]args){

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

//利用Set集合特性自动去重

Set<Integer>set=newHashSet<>();

for(intnum:arr){

set.add(num);

}

//转为List集合进行排序

List<Integer>list=newArrayList<>(set);

Collections.sort(list);

//输出结果

System.out.println("去重升序结果:"+list);

}

}运行结果:去重升序结果:[1,2,3,5,8,9]代码解析:借助HashSet元素唯一性完成去重,通过Collections工具类实现集合升序排序,简化手动遍历去重、冒泡排序的繁琐代码,符合日常开发简洁高效的编码规范。四、简答题(共2题,每题10分,共20分)1.简述ArrayList和LinkedList的底层区别及使用场景参考答案:(1)底层结构:ArrayList基于动态数组实现,内存连续;LinkedList基于双向链表实现,内存分散,节点通过指针关联。(2)性能差异:ArrayList查询、遍历效率高,随机访问速度快;增删元素时需要移动数组元素,效率较低。LinkedList增删元素仅需修改节点指针,效率高;随机查询需要从头遍历,效率低。(3)使用场景:日常查询、遍历多、增删少的业务优先使用ArrayList;频繁插入、删除元素,查询较少的场景优先使用LinkedList。2.简述Java中栈

温馨提示

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

评论

0/150

提交评论