Java 企业在线笔试题库(含详细答案解析)_第1页
Java 企业在线笔试题库(含详细答案解析)_第2页
Java 企业在线笔试题库(含详细答案解析)_第3页
Java 企业在线笔试题库(含详细答案解析)_第4页
Java 企业在线笔试题库(含详细答案解析)_第5页
已阅读5页,还剩6页未读, 继续免费阅读

下载本文档

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

文档简介

Java企业在线笔试题库(含详细答案解析)本次题库贴合互联网、软件开发企业真实笔试场景,涵盖Java基础、语法特性、集合、异常、多线程、JVM、面向对象、Spring基础等高频考点,题型包含选择题、填空题、简答题、编程题,所有答案附带详细解析,适合求职刷题、技能自测。一、单项选择题(20题)1、以下关于Java基本数据类型说法正确的是()A、boolean类型占用2个字节B、float类型精度高于doubleC、byte类型取值范围是-128~127D、char类型只能存储汉字答案:C解析:boolean占用1个字节;double精度远高于float;char可存储字母、数字、符号、汉字等任意单个字符;byte是8位有符号整数,取值范围固定为-128~127。2、下列关于String、StringBuilder、StringBuffer说法错误的是()A、String是不可变字符序列B、StringBuilder线程不安全,效率高C、StringBuffer线程安全,效率低D、三者底层均为不可变字符数组答案:D解析:String底层为不可变数组,StringBuilder和StringBuffer底层是可变字符数组,支持动态扩容修改。3、Java中接口和抽象类的区别,说法正确的是()A、抽象类可以有构造方法,接口不能有构造方法B、抽象类和接口都能实例化C、抽象类只能有一个父类,接口只能继承一个接口D、抽象类中不能有普通方法答案:A解析:抽象类可以包含构造方法、普通成员方法、成员变量;接口无构造方法,只能定义常量和抽象方法(JDK8前);二者均不能实例化;接口可多继承。4、以下关键字中,不能修饰局部变量的是()A、finalB、staticC、volatileD、private答案:B解析:static、private、protected、public均为类级别修饰符,只能修饰成员变量、方法、类,不能修饰局部变量;final、volatile可修饰局部变量。5、ArrayList和LinkedList的底层数据结构分别是()A、双向链表、动态数组B、动态数组、双向链表C、单向链表、动态数组D、动态数组、单向链表答案:B解析:ArrayList底层基于可变数组,查询快、增删慢;LinkedList底层是双向链表,增删快、随机查询慢。6、HashMap的底层数据结构是(JDK1.8及以上)()A、数组+单向链表B、数组+双向链表C、数组+单向链表+红黑树D、纯红黑树答案:C解析:JDK1.8优化HashMap,默认数组+链表结构,当链表长度大于8且数组容量大于64时,链表转为红黑树,提升查询效率。7、以下关于equals和==的说法正确的是()A、基本数据类型可以用equals比较B、==比较的是对象内容是否相等C、重写equals方法后,必须重写hashCode方法D、String对象==和equals结果永远一致答案:C解析:基本类型只能用==比较;==比较的是内存地址,equals默认比较地址,重写后可比较内容;规范中重写equals必须重写hashCode,避免集合存储异常。8、Java中异常体系的顶级父类是()A、ExceptionB、ErrorC、ThrowableD、RuntimeException答案:C解析:Throwable是所有异常和错误的父类,分为Error(系统级错误,无需处理)和Exception(代码异常,可捕获处理)。9、下列属于运行时异常的是()A、IOExceptionB、SQLExceptionC、NullPointerExceptionD、FileNotFoundException答案:C解析:空指针异常是典型运行时异常,无需手动声明抛出;其余选项均为编译期受检异常,必须捕获或抛出。10、synchronized和Lock的区别,说法错误的是()A、synchronized是内置锁,Lock是显式锁B、synchronized可中断等待锁C、Lock可以精准控制锁的获取和释放D、Lock可实现公平锁,synchronized是非公平锁答案:B解析:synchronized阻塞后不可中断,Lock提供可中断锁、超时锁、公平锁等高级特性,灵活性更高。11、以下关于volatile关键字说法正确的是()A、可以保证原子性B、可以保证可见性和有序性C、可以替代synchronizedD、能解决多线程所有并发问题答案:B解析:volatile仅保证线程可见性、禁止指令重排,不保证原子性,无法解决复合操作并发问题,不能替代锁。12、JVM中程序计数器的作用是()A、存储对象实例B、记录线程当前执行的字节码行号C、存储静态变量D、缓存热点代码答案:B解析:程序计数器是线程私有内存区域,用于记录线程执行位置,线程切换后可恢复执行点位,是唯一无OOM的内存区域。13、下列不属于JVM垃圾回收算法的是()A、标记-清除B、复制算法C、分代收集D、哈希排序答案:D解析:JVM核心GC算法:标记清除、标记整理、复制算法,分代收集是基于以上算法的组合实现,无哈希排序算法。14、Spring中IOC的核心作用是()A、面向切面编程B、控制反转、依赖注入,解耦代码C、事务管理D、请求拦截答案:B解析:IOC(控制反转)将对象创建、管理权限交给容器,通过依赖注入实现组件解耦;AOP是面向切面编程,用于事务、日志等统一处理。15、SpringMVC的核心前端控制器是()A、ContextLoaderListenerB、DispatcherServletC、HandlerMappingD、ViewResolver答案:B解析:DispatcherServlet是SpringMVC核心,负责接收所有请求、分发请求、调用处理器、渲染视图。16、以下关于Java泛型说法正确的是()A、泛型在运行时生效B、泛型可以使用基本数据类型C、泛型存在类型擦除D、泛型类可以被静态方法直接使用答案:C解析:Java泛型是编译期特性,编译后会发生类型擦除,还原为原始类型;泛型仅支持引用类型,不支持基本类型。17、try-catch-finally中,finally代码块执行时机是()A、异常发生时才执行B、代码正常结束才执行C、无论是否异常、是否return,都会执行(除极端退出)D、永远执行答案:C解析:finally是最终执行块,正常执行、异常抛出、方法return都会执行;仅在调用System.exit(0)、线程终止等极端场景不执行。18、下列集合中,线程安全的是()A、ArrayListB、HashMapC、VectorD、LinkedList答案:C解析:Vector、Hashtable是老式线程安全集合;ArrayList、HashMap、LinkedList均为非线程安全,多线程场景需手动同步或使用并发集合。19、Java中重写和重载的区别,说法正确的是()A、重写参数列表可以不同B、重载发生在父子类中C、重写返回值可以协变D、重载方法名必须不同答案:C解析:重写(覆写)发生在父子类,方法名、参数列表必须一致,返回值支持协变;重载发生在同类,方法名相同、参数列表不同。20、以下关于接口默认方法(JDK8)说法正确的是()A、默认方法必须被实现类重写B、接口可以有静态默认方法C、默认方法无需实现,可直接继承使用D、默认方法是抽象方法答案:C解析:JDK8允许接口定义default默认方法,有方法体,实现类可直接使用,无需强制重写,解决接口升级兼容问题。二、填空题(10题)1、Java面向对象三大特性:________、________、________。答案:封装、继承、多态2、线程的五大状态:新建、________、运行、________、终止。答案:就绪、阻塞3、JVM内存区域主要分为:堆、栈、________、本地方法栈、________。答案:方法区、程序计数器4、HashMap默认初始容量是________,默认加载因子是________。答案:16、0.755、Java中创建线程的三种方式:继承Thread类、________、________。答案:实现Runnable接口、实现Callable接口6、异常分为两大类:________、________。答案:受检异常(编译异常)、运行时异常7、String常量池的作用是________。答案:缓存字符串常量,节省内存、减少重复创建对象8、synchronized修饰静态方法,锁对象是________;修饰普通方法,锁对象是________。答案:当前类的Class对象、当前实例对象(this)9、集合中Set集合特点是________,List集合特点是________。答案:元素无序、不可重复;元素有序、可重复10、JDK、JRE、JVM三者包含关系:________包含________,________包含________。答案:JDK包含JRE、JRE包含JVM三、简答题(8题,高频面试笔试考点)1、简述==和equals的区别?答案解析:1、适用范围:==可用于基本数据类型和引用数据类型;equals仅用于引用类型对象比较。2、比较规则:基本类型==比较数值大小;引用类型==比较对象内存地址;equals默认继承Object方法,本质也是比较地址,重写后可比较对象内容。3、使用场景:基本类型统一用==;字符串、实体类对象比较内容时,使用重写后的equals方法。2、ArrayList和LinkedList的使用场景区别?答案解析:1、ArrayList:底层动态数组,随机访问速度快,增删元素需要移动数组元素,效率低。适合大量查询、少量增删的业务场景。2、LinkedList:底层双向链表,无数组扩容和元素移动,首尾增删效率高,随机查询需要遍历链表,速度慢。适合大量增删、少量查询的业务场景。3、HashMap为什么线程不安全?JDK1.8做了哪些优化?答案解析:线程不安全原因:多线程同时put数据时,会出现哈希冲突覆盖、数据丢失、链表环形死循环等问题,无法保证数据一致性。JDK1.8优化:1、数据结构优化:数组+链表改为数组+链表+红黑树,降低链表过长导致的查询耗时;2、优化扩容机制,杜绝环形链表死循环问题;3、优化哈希扰动算法,减少哈希冲突概率。4、简述Java多线程volatile关键字的作用和局限性?答案解析:作用:1、保证变量线程可见性,一个线程修改后,其他线程立即感知最新值;2、禁止指令重排序,避免并发场景指令执行错乱。局限性:不保证原子性,无法解决i++、复合赋值等多步操作的并发安全问题,仅适用于状态标记、单次赋值场景,不能替代锁机制。5、接口和抽象类的核心区别?答案解析:1、构造方法:抽象类有构造方法,接口无构造方法;2、成员变量:抽象类可定义普通变量、常量;接口只能定义常量;3、方法特性:抽象类可包含普通方法、静态方法、抽象方法;JDK8后接口有默认方法、静态方法;4、继承规则:类只能单继承抽象类,可多实现接口;5、设计思想:抽象类用于模板复用,接口用于行为规范定义。6、简述JVM堆内存结构和GC流程?答案解析:堆内存分为新生代、老年代,部分JVM包含元空间。新生代分为Eden区、FromSurvivor、ToSurvivor。GC流程:新对象优先分配Eden区,Eden区满触发MinorGC,存活对象移入Survivor区;对象多次GC存活后晋升老年代;老年代空间不足触发MajorGC,FullGC为整堆回收,开销最大,应尽量避免。7、try、catch、finally、return的执行顺序?答案解析:1、无异常:执行try代码块-执行return前-执行finally-方法返回结果;2、有异常:执行try报错代码-进入catch捕获异常-执行finally-执行catch中的return返回结果;3、核心规则:finally永远在return执行前执行,优先级高于return。8、SpringIOC的初始化流程?答案解析:1、读取配置文件/注解,扫描项目所有Bean组件;2、解析Bean定义信息,封装为BeanDefinition;3、实例化单例Bean,通过反射创建对象;4、完成依赖注入,填充Bean属性;5、执行Bean初始化前置、后置处理器,执行初始化方法;6、将完整Bean存入IOC容器,供业务调用。四、编程题(3道,带完整代码+答案解析)1、编程实现字符串反转(不使用自带反转方法)参考答案代码:java

publicclassStringReverse{

publicstaticStringreverse(Stringstr){

if(str==null||str.length()==0){

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("Java笔试题库"));

}

}解析:通过字符数组+双指针首尾交换实现反转,效率高于遍历拼接,兼容空字符串和null场景,日常笔试高频写法。2、编程判断一个整数是否为素数参考答案代码:java

publicclassPrimeTest{

publicstaticbooleanisPrime(intnum){

//小于2的数不是素数

if(num<2){

returnfalse;

}

//遍历到平方根,减少循环次数

for(inti=2;i<=Math.sqrt(num);i++){

if(num%i==0){

returnfalse;

}

}

returntrue;

}

publicstaticvoidmain(S

温馨提示

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

评论

0/150

提交评论