2026年18年java面试题库及答案_第1页
已阅读1页,还剩7页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

2026年18年java面试题库及答案

一、单项选择题(总共10题,每题2分)1.以下关于Java中String类的描述,正确的是()A.String对象是可变的B.字符串拼接操作不会生成新的String对象C."abc"和newString("abc")在内存中存储位置相同D.String类被final修饰,不可被继承2.泛型擦除发生在Java的哪个阶段?()A.编译期B.运行期C.类加载期D.链接期3.线程调用start()方法后,进入的状态是()A.RUNNABLEB.RUNNINGC.BLOCKEDD.TIMED_WAITING4.以下不属于JVM垃圾回收算法的是()A.标记-清除B.复制C.标记-整理D.分代收集5.单例模式的核心目的是()A.提高代码复用性B.确保类仅有一个实例C.实现接口解耦D.增强扩展性6.HashMap的默认负载因子是()A.0.5B.0.75C.0.8D.1.07.以下属于运行时异常(RuntimeException)的是()A.IOExceptionB.SQLExceptionC.NullPointerExceptionD.ClassNotFoundException8.JVM中存储类信息、常量、静态变量的区域是()A.堆B.虚拟机栈C.方法区D.程序计数器9.Java8中接口可以定义()A.静态方法B.私有方法C.默认方法D.以上都是10.通过反射获取类的Class对象,以下方法错误的是()A.对象.getClass()B.类名.classC.Class.forName("类全路径")D.newClass<>()二、填空题(总共10题,每题2分)1.用______修饰的变量不可被重新赋值(基本类型)或指向新对象(引用类型)。2.包含抽象方法的类必须声明为______。3.ArrayList的默认初始容量是______。4.同步代码块的锁对象可以是任意______类型。5.Java对象序列化需要实现的接口是______。6.JVM中存储对象实例的主要区域是______。7.能够保持插入顺序的Map实现类是______。8.用于实现线程局部变量的类是______。9.注解的保留策略由______元注解指定。10.Lambda表达式的参数类型在上下文明确时可以______。三、判断题(总共10题,每题2分)1.接口可以通过new关键字直接实例化。()2.抽象类可以有构造方法。()3.ArrayList是线程安全的集合类。()4.try-catch块中的finally语句一定会执行(未遇到System.exit()时)。()5.Java支持类的多继承。()6.泛型的类型信息在运行期会被擦除。()7.泛型可以直接使用基本数据类型(如int)作为类型参数。()8.synchronized关键字修饰的方法是可重入的。()9.接口中的方法默认访问权限是protected。()10.Lambda表达式必须依赖函数式接口。()四、简答题(总共4题,每题5分)1.简述面向对象的四大特性及其含义。2.说明JDK7到JDK8中HashMap的主要变化。3.对比synchronized和Lock的区别。4.描述JVM内存模型的主要组成部分及其作用。五、讨论题(总共4题,每题5分)1.高并发场景下,如何保证线程安全?请列举常见解决方案。2.描述Spring中Bean的完整生命周期阶段。3.JVM调优时,常用的监控工具和关键指标有哪些?4.结合实际项目,说明设计模式(如单例、工厂、观察者)的应用场景。答案及解析一、单项选择题1.D2.A3.A4.D5.B6.B7.C8.C9.D10.D二、填空题1.final2.抽象类3.104.Object(或引用)5.Serializable6.堆7.LinkedHashMap8.ThreadLocal9.@Retention10.省略三、判断题1.×2.√3.×4.√5.×6.√7.×8.√9.×10.√四、简答题1.面向对象四大特性:-封装:将数据和操作绑定,隐藏内部实现,仅暴露接口。-继承:子类继承父类的属性和方法,实现代码复用。-多态:同一行为在不同对象有不同实现(重载/重写)。-抽象:提取共性特征形成抽象类或接口,定义规范。2.HashMap主要变化:-数据结构:JDK7为数组+链表,JDK8增加红黑树(链表长度≥8时转换)。-插入方式:JDK7头插法(可能引发循环链表),JDK8尾插法。-哈希计算:JDK8优化hash()方法,减少碰撞。-扩容机制:JDK8在元素插入时检查扩容,JDK7在插入前检查。3.synchronized与Lock区别:-语法:synchronized是关键字,Lock是接口(如ReentrantLock)。-锁获取:synchronized自动释放,Lock需手动unlock()。-灵活性:Lock支持可中断锁、公平锁、尝试锁,synchronized不支持。-性能:低竞争时synchronized优化后(偏向锁等)性能接近Lock,高竞争时Lock更优。4.JVM内存模型组成:-程序计数器:记录当前线程执行的字节码行号。-虚拟机栈:存储局部变量表、操作数栈等(线程私有)。-本地方法栈:为本地方法服务(类似虚拟机栈)。-堆:存储对象实例(垃圾回收主要区域)。-方法区:存储类信息、常量、静态变量(JDK8后为元空间,使用本地内存)。五、讨论题1.高并发线程安全解决方案:-同步机制:synchronized关键字、Lock接口(如ReentrantLock)。-无锁数据结构:使用AtomicXXX原子类(CAS实现)、ConcurrentHashMap(分段锁/红黑树)。-线程封闭:ThreadLocal保证变量线程私有。-不可变对象:如String、枚举,避免状态修改。-并发工具类:CountDownLatch、CyclicBarrier协调线程执行。2.SpringBean生命周期:-实例化:通过构造器或工厂方法创建对象。-属性注入:依赖注入(@Autowired、setter)。-初始化前:BeanPostProcessor的postProcessBeforeInitialization()。-初始化:执行@PostConstruct或init-method方法。-初始化后:BeanPostProcessor的postProcessAfterInitialization()。-销毁前:执行@PreDestroy或destroy-method方法。-销毁:容器关闭时释放资源。3.JVM调优工具与指标:-工具:jstat(监控GC)、jmap(堆转储)、jconsole(图形化监控)、VisualVM(多维度分析)、Arthas(在线诊断)。-指标:堆内存使用率(Young/Old区)、GC频率与耗时(Minor/MajorGC)、吞吐量(有效工作时间占比)、响应时间(STW时长)、类加载/卸载数量。4.设计模式应用实例:-

温馨提示

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

评论

0/150

提交评论