版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
创维Java开发工程师笔试题(含详细答案)考试说明:本次笔试总分100分,考试时长90分钟,题型包含选择题、填空题、简答题、编程题,考察Java基础、集合、多线程、JVM、Spring框架、数据库等企业核心实用考点。一、单项选择题(共15题,每题2分,共30分)1.以下关于Java基本数据类型的说法,正确的是()A.boolean类型占用1个字节内存B.float类型数值可以精准表示所有小数C.char类型可以存储中文汉字D.long类型的默认初始值是0L,int默认初始值是002.下列关于String、StringBuilder、StringBuffer的描述,错误的是()A.String是不可变字符序列B.StringBuffer线程安全,效率较低C.StringBuilder线程不安全,效率更高D.频繁字符串拼接场景,优先使用String3.Java中接口和抽象类的核心区别,说法错误的是()A.抽象类可以有构造方法,接口无构造方法B.抽象类只能单继承,接口可以多实现C.抽象类中不能有静态方法,接口中可以有静态方法D.抽象类可以包含成员变量,接口默认是常量4.以下集合中,底层采用数组结构、线程不安全的是()A.ArrayListB.VectorC.LinkedListD.ConcurrentHashMap5.HashMap的底层数据结构在JDK1.8之后是()A.纯数组B.数组+单向链表C.数组+单向链表+红黑树D.数组+双向链表6.下列关于Java异常的说法,正确的是()A.Error属于可捕获异常B.Exception分为编译时异常和运行时异常C.运行时异常必须手动try-catch捕获D.finally代码块一定会执行7.以下关键字中,不能修饰局部变量的是()A.finalB.staticC.volatileD.transient8.关于Java多线程,下列说法错误的是()A.start()方法用于启动线程,run()方法是线程执行逻辑B.sleep()方法不会释放锁,wait()方法会释放锁C.synchronized是可重入锁、公平锁D.Lock锁可以手动加锁、解锁,灵活性更高9.JVM中,负责存储对象实例的内存区域是()A.栈内存B.堆内存C.方法区D.本地方法栈10.以下关于SpringIOC的说法,正确的是()A.IOC是程序主动创建对象、管理依赖B.IOC通过反射机制实现对象管理C.SpringBean默认是多例的D.Bean的生命周期不包含初始化阶段11.SpringMVC中,处理前端请求参数绑定的核心组件是()A.DispatcherServletB.HandlerAdapterC.RequestMappingHandlerMappingD.ViewResolver12.MySQL中,以下索引查询效率最高的是()A.普通索引B.主键索引C.唯一索引D.联合索引13.下列SQL语句中,能够实现去重查询的关键字是()A.distinctB.groupbyC.orderbyD.limit14.Redis中,String类型最大存储容量是()A.16MBB.32MBC.64MBD.128MB15.以下关于事务ACID特性的说法,错误的是()A.原子性:事务要么全部执行,要么全部回滚B.一致性:事务执行前后数据完整性不变C.隔离性:多个事务互不干扰,独立执行D.持久性:事务执行失败后,数据不会改变二、填空题(共10空,每空2分,共20分)1.Java中,重载的核心条件是________不同,返回值类型不做限制。2.==对于基本类型比较的是________,对于引用类型比较的是________。3.JDK1.8新特性中,用于简化匿名内部类的语法是________。4.线程的五大状态分别是:新建、就绪、________、阻塞、终止。5.HashMap默认初始容量是________,默认负载因子是________。6.Spring事务传播特性中,默认传播行为是________。7.MySQLInnoDB引擎默认的事务隔离级别是________。8.Java中实现动态代理的两种方式:JDK动态代理和________。三、简答题(共4题,每题5分,共20分)1.简述ArrayList和LinkedList的底层区别及适用场景。2.简述volatile关键字的作用及局限性。3.简述SpringAOP的实现原理及常用应用场景。4.简述MySQL索引失效的常见场景(至少说出4种)。四、编程题(共2题,每题15分,共30分)1.编写Java代码,实现冒泡排序算法,对int数组进行升序排序,输出排序前后的数组结果。2.编写Java多线程代码,开启两个线程,一个线程打印1-50的奇数,另一个线程打印1-50的偶数,保证打印结果有序(1、2、3、4...50)。参考答案及详细解析一、单项选择题答案及解析1.答案:C解析:A选项boolean类型占用1位,并非1字节;B选项float、double均无法精准表示所有小数,精准小数需使用BigDecimal;D选项int默认初始值为0,不是00;char类型占2字节,可存储中文汉字、字母、数字等所有Unicode字符。2.答案:D解析:String不可变,每次拼接都会生成新字符串对象,频繁拼接会产生大量垃圾对象,性能极差。频繁拼接场景优先使用StringBuilder(单线程)、StringBuffer(多线程)。3.答案:C解析:抽象类中可以存在静态方法,接口从JDK1.8开始支持静态方法、默认方法,该选项描述错误。其余选项均为接口与抽象类的核心区别。4.答案:A解析:ArrayList底层是动态数组,线程不安全;Vector是线程安全数组集合;LinkedList底层是双向链表;ConcurrentHashMap是线程安全的键值对集合。5.答案:C解析:JDK1.7及之前HashMap底层是数组+单向链表;JDK1.8优化后,当链表长度大于8且数组容量大于64时,链表转为红黑树,提升查询效率,结构为数组+链表+红黑树。6.答案:B解析:A选项Error是系统级严重错误,无法捕获;C选项运行时异常无需手动捕获,可程序自动抛出;D选项如果执行到System.exit(0)退出程序,finally不会执行。7.答案:B解析:static用于修饰静态成员变量、静态方法,属于类级别,局部变量是方法级别,无法使用static修饰。final、volatile、transient均可修饰局部变量。8.答案:C解析:synchronized是可重入锁,但属于非公平锁,无法保证线程获取锁的顺序;Lock接口可实现公平锁机制。其余选项描述均正确。9.答案:B解析:堆内存是JVM所有线程共享的内存区域,专门用于存储对象实例和数组;栈内存存储局部变量、方法调用信息;方法区存储类信息、常量、静态变量。10.答案:B解析:A选项IOC是控制权反转,由Spring容器统一创建、管理对象,而非程序主动创建;C选项SpringBean默认单例;D选项Bean拥有完整生命周期,包含实例化、初始化、销毁等阶段。11.答案:B解析:DispatcherServlet是前端控制器,负责分发请求;HandlerAdapter负责适配处理器,完成请求参数绑定、调用目标方法;HandlerMapping负责映射请求地址与处理器;ViewResolver负责视图解析。12.答案:B解析:主键索引是聚集索引,数据和索引存储在一起,查询数据无需回表,效率最高;普通索引、唯一索引属于二级索引,查询需要回表查询数据。13.答案:A解析:distinct关键字用于查询结果去重;groupby是分组查询,可配合聚合函数使用;orderby用于排序,limit用于限制查询条数。14.答案:C解析:Redis中所有key的value最大存储容量为64MB,String类型严格遵循该容量限制。15.答案:D解析:持久性指事务提交成功后,对数据的修改永久生效,不会因为系统崩溃、断电丢失;事务执行失败会触发回滚,和持久性特性无关。二、填空题答案及解析1.方法参数列表(参数个数、类型、顺序)
解析:重载要求同类中方法名相同,参数列表不同,与返回值、修饰符无关。2.数值本身、内存地址
解析:基本类型变量直接存储数值,引用类型变量存储对象的堆内存地址。3.Lambda表达式
解析:JDK1.8新增Lambda表达式,简化函数式接口的匿名内部类写法。4.运行
解析:线程完整生命周期状态:新建、就绪、运行、阻塞、终止。5.16、0.75
解析:HashMap默认初始容量16,负载因子0.75,当容量达到16*0.75=12时触发扩容。6.REQUIRED(必须在事务内执行)
解析:Spring事务默认传播行为为REQUIRED,当前有事务则加入,无事务则新建事务。7.可重复读(REPEATABLEREAD)
解析:InnoDB引擎默认隔离级别为可重复读,解决了不可重复读问题,通过间隙锁解决幻读问题。8.CGLIB动态代理
解析:JDK动态代理基于接口实现,CGLIB基于子类继承实现,无需接口支持。三、简答题详细答案1.ArrayList和LinkedList的底层区别及适用场景(1)底层结构:ArrayList基于动态数组实现,默认初始容量10,扩容时会拷贝数组;LinkedList基于双向链表实现,无扩容机制。(2)性能差异:ArrayList查询、遍历效率高(随机访问,通过下标定位),增删效率低(需要移动数组元素);LinkedList随机查询效率低,首尾增删元素效率高,中间增删效率一般。(3)适用场景:ArrayList适合大量查询、遍历,少量增删的业务场景;LinkedList适合频繁首尾增删、少量查询的业务场景。2.volatile关键字的作用及局限性作用:一是保证变量可见性,一个线程修改volatile变量后,其他线程可立即感知最新值,避免变量缓存导致的数据不一致;二是禁止指令重排序,防止JVM、CPU优化导致的代码执行顺序错乱。局限性:无法保证原子性,对于i++、复合赋值等复合操作,volatile不能保证线程安全,该类场景需使用synchronized或Lock锁。3.SpringAOP的实现原理及常用应用场景实现原理:AOP基于动态代理机制实现,针对目标方法进行增强,不修改原有业务代码。目标类实现接口时,使用JDK动态代理;未实现接口时,使用CGLIB动态代理。通过切点匹配目标方法,在方法执行前后、异常、返回等阶段执行增强逻辑。常用场景:日志记录、事务控制、权限校验、性能监控、缓存处理、异常统一拦截等通用非业务功能的统一封装。4.MySQL索引失效的常见场景(1)索引列使用函数、运算操作,如select*fromuserwhereage+1=20;(2)索引列使用!=、<>、notin、notlike等反向查询;(3)字符串类型索引字段,查询值未加引号,导致隐式类型转换;(4)like查询以%开头,如like'%张三';(5)联合索引不遵循最左前缀原则,跳过前置索引字段查询;(6)MySQL判断全表扫描比索引查询更快时,会主动放弃索引。四、编程题详细代码及解析1.冒泡排序实现java
publicclassBubbleSort{
publicstaticvoidmain(String[]args){
//定义测试数组
int[]arr={35,12,48,7,22,9,56};
System.out.println("排序前数组:");
printArray(arr);
//冒泡排序核心逻辑
for(inti=0;i<arr.length-1;i++){
//标记本轮是否发生交换,优化排序效率
booleanflag=false;
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;
flag=true;
}
}
//无交换说明数组已有序,提前退出循环
if(!flag){
break;
}
}
System.out.println("\n排序后数组:");
printArray(arr);
}
//遍历打印数组
publicstaticvoidprintArray(int[]arr){
for(intnum:arr){
System.out.print(num+"");
}
}
}代码说明:优化版冒泡排序,通过标记位减少无效循环,时间复杂度最优O(n)、最坏O(n²),稳定排序算法。2.多线程有序打印1-50奇偶数字java
publicclassOddEvenPrint{
//共享变量,控制打印顺序
privatestaticintnum=1;
//锁对象
privatestaticfinalObjectLOCK=newObject();
publicstaticvoidmain(String[]args){
//打印奇数线程
newThread(()->{
while(num<=50){
synchronized(LOCK){
//不是奇数则等待
if(num%2!=1){
try{
LOCK.wait();
}catch(InterruptedExceptione){
e.printStackTrace();
}
}
//打印奇数
if(num<=50){
System.out.println(Thread.currentThread().getName()+":"+num);
num++;
//唤醒其他线程
LOCK.notify();
}
}
}
},"奇数线程").start();
//打印偶数线程
newThread(()->{
while(num<=50){
synchronized(LOCK){
//
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026创业优势面试题目及答案
- XX 高校“铸师魂守初心”专项行动工作方案
- 2.6.4 民生福祉持续增进 课件(共30张)
- 高中信息技术高一《for循环与while循环的应用》教学设计
- 高中英语必修二Unit 5 On the Road课文习读教学设计
- 2026年南华大学005化学化工学院085600材料与化工报录数据分析报告初试+
- 2026-2030年中国猪肉深加工行业市场全景评估及发展趋向研判报告
- 2026年精密流体控制设备市场现状调研及前景趋势预测报告
- 中国橡胶聚氨酯密封件行业市场规模及投资前景预测分析报告
- 2026年猪肉加工项目调研分析报告
- 企业负责人带班检查记录表
- 茅台集团历年招聘真题
- 2026全球劳动力市场洞察报告
- 自检互检专检管理办法细则
- 体检科护理操作规范培训
- 5.2 乡村景观与城镇景观 课件(共32张内嵌视频)商务星球版(2024)地理七年级上册
- 大米类生产企业管理制度
- 贸易安全培训制度
- 《铁道概论》课件 8-1 认知电气化铁路
- 长征主题课件
- 2026年招投标法实施新细则
评论
0/150
提交评论