版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Java校招笔试真题(含详细答案解析)适用人群:Java应届生、零基础备考校招、互联网后端岗笔试备考考试时长:90分钟满分:100分题型分布:选择题(30分)、填空题(20分)、简答题(30分)、编程题(20分)一、单项选择题(共10题,每题3分,共30分)1.以下关于Java基本数据类型的说法,正确的是()A.boolean类型可以赋值为0和1B.char类型占用2个字节,可存储中文汉字C.float类型精度高于double类型D.byte类型取值范围是0~255答案:B解析:A错误,Java中boolean只有true/false,不兼容数字;B正确,char占2字节,采用Unicode编码,支持中文;C错误,double精度远高于float;D错误,byte是有符号类型,取值范围-128~127。2.下列关于==和equals()的区别,说法错误的是()A.==对于基本类型比较数值,引用类型比较内存地址B.equals()是Object类方法,默认比较对象地址C.String类重写了equals(),用于比较字符串内容D.所有自定义对象的equals()都可以直接比较内容答案:D解析:自定义类如果没有重写equals()方法,会直接沿用Object的原生方法,依然比较对象内存地址,无法比较内容,需要手动重写才能实现内容比对。3.以下不会产生线程安全问题的集合是()A.ArrayListB.HashMapC.VectorD.HashSet答案:C解析:ArrayList、HashMap、HashSet都是线程不安全集合,多线程并发操作会出现数据覆盖、空值等问题;Vector所有方法都加了synchronized锁,是线程安全集合,缺点是并发效率较低。4.Java中接口和抽象类的区别,描述正确的是()A.抽象类可以有构造方法,接口没有构造方法B.抽象类和接口都能被多继承C.抽象类中不能有普通成员变量D.接口中可以包含静态代码块答案:A解析:抽象类允许有构造方法,用于子类初始化;接口无构造方法。B错误,类只能单继承抽象类,可多实现接口;C错误,抽象类可定义普通成员变量;D错误,接口不能包含静态代码块、构造代码块。5.下列关于try-catch-finally的执行顺序,说法正确的是()A.try报错后,先执行finally再执行catchB.无论try是否异常,finally代码块一定会执行C.try正常执行,不会执行finallyD.catch块可以省略,finally也可以单独存在答案:B解析:try代码块正常/异常执行完毕后,都会执行finally;唯一不执行的场景是调用System.exit(0)退出JVM。A错误,先catch捕获异常,再执行finally;C错误,正常执行也会走finally;D错误,finally不能单独存在,必须搭配try使用。6.以下关于Java泛型的说法,错误的是()A.泛型可以实现编译期类型检查,避免类型转换异常B.泛型只在编译阶段生效,运行时会发生类型擦除C.可以用基本数据类型作为泛型参数D.通配符?可以匹配任意类型答案:C解析:Java泛型仅支持引用类型,不支持int、byte等基本类型,需要使用对应的包装类(Integer、Byte)。7.HashMap的底层数据结构是()A.数组+单向链表+红黑树B.数组+双向链表C.纯红黑树D.数组+队列答案:A解析:JDK1.8及以后,HashMap底层采用数组+链表+红黑树结构。链表长度超过8且数组容量大于64时,链表转为红黑树,提升查询效率。8.下列关键字中,不能修饰局部变量的是()A.finalB.staticC.volatileD.int答案:B解析:static用于修饰类变量、静态方法、静态代码块,属于类级别,局部变量是方法级别,不能用static修饰。final可修饰局部常量,volatile可修饰局部变量保证可见性。9.关于Java重载和重写,说法正确的是()A.重写发生在同一个类中B.重载方法返回值类型必须一致C.重写要求方法名、参数列表完全一致D.重载可以改变方法访问权限答案:C解析:重载是同类中方法名相同、参数列表不同;重写是子类对父类方法重定义,要求方法名、参数列表、返回值完全一致,且访问权限不能严于父类。10.以下不属于JVM内存区域的是()A.堆内存B.栈内存C.磁盘内存D.方法区答案:C解析:JVM运行时数据区包含堆、虚拟机栈、本地方法栈、方法区、程序计数器,无磁盘内存这一区域。二、填空题(共5题,每题4分,共20分)1.Java中创建线程的三种方式:继承______类、实现______接口、实现Callable接口。答案:Thread、Runnable2.面向对象的三大基本特征:封装、______、______。答案:继承、多态3.JDK1.8新增的核心特性有Lambda表达式、______、______。答案:Stream流、HashMap底层优化(红黑树)(答函数式接口、Optional类也可)4.线程的五大状态:新建、就绪、______、阻塞、______。答案:运行、死亡5.MySQL事务的四大特性:原子性、______、______、持久性。答案:一致性、隔离性三、简答题(共3题,每题10分,共30分)1.简述ArrayList和LinkedList的区别?答案解析:1、底层结构:ArrayList基于动态数组实现,LinkedList基于双向链表实现;2、查询效率:ArrayList支持随机访问,通过下标直接定位元素,查询速度快;LinkedList只能从头节点遍历查询,效率低;3、增删效率:ArrayList增删元素可能需要数组扩容、元素移位,效率较低;LinkedList仅需修改节点指针,头尾增删效率极高;4、内存占用:ArrayList会预留冗余容量,存在内存浪费;LinkedList每个节点包含数据和指针,单个元素占用内存更大;5、使用场景:频繁查询、少量增删用ArrayList;频繁头尾增删、极少查询用LinkedList。2.简述Java中final、finally、finalize的区别?答案解析:1、final:是修饰符,用于修饰变量、方法、类。final变量不可二次赋值,final方法不可重写,final类不可被继承;2、finally:是异常处理关键字,搭配try-catch使用,作用是保证代码必定执行,常用于关闭流、释放资源;3、finalize:是Object类的废弃方法,JVM垃圾回收前会调用该方法,用于对象资源释放,该方法执行时机不确定,日常开发几乎不用。3.简述HashMap线程不安全的原因,以及解决方案?答案解析:不安全原因:1、多线程同时put数据时,会发生哈希冲突,导致数据覆盖、丢失;2、JDK1.7中多线程扩容会形成循环链表,触发死循环、CPU占用100%;3、多线程同时读写,会出现数据不一致、空值异常。解决方案:1、使用Hashtable:全表锁,线程安全但并发效率极低;2、使用Collections.synchronizedMap:封装普通HashMap,方法加锁,效率一般;3、使用ConcurrentHashMap:分段锁(JDK1.7)/CAS+synchronized(JDK1.8),并发安全且效率高,是企业主流方案。四、编程题(共1题,20分)题目:编写一个Java程序,实现字符串反转,要求不使用JDK自带的反转方法(如StringBuilder.reverse()),兼容空字符串、单字符字符串。参考答案代码(可直接运行)java
publicclassStringReverse{
publicstaticStringreverse(Stringstr){
//处理空字符串和null情况
if(str==null||str.length()<=1){
returnstr;
}
//转为字符数组手动反转
char[]chars=str.toCharArray();
intleft=0;
intright=chars.length-1;
//双指针交换首尾字符
while(left<right){
chartemp=chars[left];
chars[left]=chars[right];
chars[right]=temp;
left++;
right--;
}
returnnewString(chars);
}
publicstaticvoidmain(String[]args){
//测试用例
System.out.println(reverse("abcdef"));//fedcba
System.out.println(reverse("a"));//a
System.out.println(reverse(""));//空
System.out.println(reverse(null));//null
System.out.println(reverse("123456"));//654321
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 味精提取工岗中协同配合考核试卷含答案
- 蔬菜栽培工岗前水平评优考核试卷含答案
- 船舶修理工岗位进度管理考核试卷含答案
- 手绣工岗位综合水平考核试卷含答案
- 2026年生产管控高级数字化工程师招聘笔试试卷 招录12人
- 2026年楼宇智能化高级工程师招聘笔试试卷 招录11人真题题库
- 2026年贵州省仁怀市高三数学下册期末考试模拟检测卷附参考答案【达标题】
- 2026年浙江省东阳市高三数学下册期末考试模拟考试卷完整参考答案
- 2026年湖北省广水市高三数学下册期末考试模拟卷及完整答案【典优】
- 2026届镇远县数学四年级第二学期期末统考模拟试题含答案解析
- 抗美援朝纪念日致敬英雄课件
- 2026年成都市金堂县增量政策性岗位招募(121人)笔试备考试题及答案详解
- 2026年交管12123科目一考试真题及详细答案解析
- 肾结石内科管理中国指南(2026版)
- 2026年保密教育线上培训考试试题(附完整答案)
- 老年综合评估试题及答案
- 多水源联合调度技术
- 慢性肾功能衰竭Chronic Renal Failure-尿毒症-慢性肾炎-病例分析
- 生猪屠宰兽医卫生检验人员理论考试题库及答案
- -物理-湘豫名校联考2023-2024学年高三上学期9月一轮复习诊断考试(一)带答案
- 化学第二单元探秘水世界复习课件省公开课金奖全国赛课一等奖微课获奖课件
评论
0/150
提交评论