Java管理员岗位笔试试题及详细答案_第1页
Java管理员岗位笔试试题及详细答案_第2页
Java管理员岗位笔试试题及详细答案_第3页
Java管理员岗位笔试试题及详细答案_第4页
Java管理员岗位笔试试题及详细答案_第5页
已阅读5页,还剩2页未读, 继续免费阅读

下载本文档

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

文档简介

Java管理员岗位笔试试题及详细答案考试说明:满分100分,考试时长90分钟,题型包含选择题、填空题、简答题、实操题,侧重Java基础运维、项目部署、故障排查、环境配置等岗位核心能力一、单项选择题(共15题,每题2分,共30分)1.以下关于JDK和JRE的说法,正确的是()A.JDK包含JRE,JRE包含JVMB.JRE包含JDK,JDK包含JVMC.JDK和JRE互相独立,无包含关系D.JVM包含JRE和JDK2.Java程序编译后的字节码文件后缀为()A..javaB..classC..jarD..exe3.以下不属于JVM内存区域的是()A.堆内存B.栈内存C.磁盘缓存D.方法区4.针对Java项目内存溢出(OOM)问题,以下参数可用于调整堆内存最大值的是()A.-XmsB.-XmxC.-XX:PermSizeD.-XX:MaxPermSize5.Tomcat服务器默认端口号为()A.80B.8080C.3306D.226.以下垃圾回收器中,适合服务端大内存Java项目、主打低延迟的是()A.SerialGCB.ParallelGCC.G1GCD.ZGC7.Java中,以下关键字可保证线程安全、实现同步锁的是()A.staticB.finalC.synchronizedD.volatile8.部署JavaWeb项目时,WAR包默认放置在Tomcat的哪个目录()A.binB.confC.webappsD.logs9.以下关于jar包和war包的区别,说法错误的是()A.jar包多用于普通Java独立项目B.war包专门用于Web项目部署C.jar包可以直接通过java-jar命令运行D.war包可直接独立运行,无需服务器容器10.查看Java进程堆栈信息、排查线程死锁的常用命令是()A.jpsB.jstackC.jmapD.jstat11.SpringBoot项目默认内嵌的Web服务器是()A.TomcatB.JettyC.UndertowD.Nginx12.以下异常中,属于运行时异常的是()A.IOExceptionB.NullPointerExceptionC.SQLExceptionD.FileNotFoundException13.用于实时监控JVM内存、GC次数、线程状态的命令是()A.jcmdB.jstatC.jmapD.jinfo14.Nginx反向代理Java项目的核心作用不包括()A.负载均衡B.隐藏后端服务地址C.直接编译Java代码D.请求转发15.Java项目启动时报错“端口被占用”,以下解决方式错误的是()A.关闭占用端口的进程B.修改项目启动端口C.重启服务器D.直接忽略报错启动二、填空题(共10空,每空2分,共20分)1.Java程序的运行流程分为__________和__________两个核心步骤。2.JVM堆内存分为新生代、老年代和__________(JDK1.8及以上)。3.强制触发FullGC的命令是__________。4.Tomcat配置文件中,核心全局配置文件是__________。5.查看本机所有Java进程PID的命令是__________。6.SpringBoot项目配置文件常用两种格式为__________和__________。7.线程的五大状态分别为新建、就绪、运行、阻塞、__________。8.解决Java项目乱码问题,常用的统一编码格式是__________。三、简答题(共4题,每题8分,共32分)1.简述JDK1.8版本中,JVM内存结构的核心组成及各区域作用。2.简述Java项目线上出现OOM内存溢出的常见原因及排查步骤。3.简述Tomcat服务器频繁宕机、访问卡顿的常见原因及解决办法。4.简述jar包和war包的适用场景及部署区别。四、实操故障排查题(共1题,18分)线上部署的SpringBootJava项目,启动成功后访问接口频繁超时、部分请求报错,无明显宕机,但服务器CPU占用持续90%以上,内存占用不断攀升。请结合Java运维知识,梳理完整的排查流程、用到的命令及解决方案。参考答案及详细解析一、单项选择题答案及解析1.答案:A解析:JDK是Java开发工具包,包含开发工具和JRE;JRE是Java运行环境,包含JVM虚拟机和核心类库,JVM是Java程序运行的核心载体。2.答案:B解析:.java是源代码文件,需编译生成.class字节码文件,由JVM识别运行;.jar是打包文件,.exe是可执行程序。3.答案:C解析:JVM核心内存区域包括堆、栈、方法区、本地方法栈、程序计数器,磁盘缓存属于系统硬件缓存,不属于JVM内存。4.答案:B解析:-Xms设置堆内存初始值,-Xmx设置堆内存最大值;PermSize、MaxPermSize用于设置永久代,JDK1.8后永久代被元空间替代。5.答案:B解析:80为HTTP默认端口,3306为MySQL端口,22为SSH远程连接端口,Tomcat默认服务端口为8080。6.答案:D解析:Serial为单线程垃圾回收,适合小型客户端项目;Parallel主打高吞吐量;G1兼顾吞吐量和低延迟;ZGC是JDK11+推出的低延迟回收器,适合大内存服务端项目。7.答案:C解析:synchronized用于实现代码同步,解决多线程并发安全问题;static修饰静态资源,final修饰不可变资源,volatile仅保证可见性,不保证原子性。8.答案:C解析:webapps是Tomcat项目部署目录,放置WAR包或项目文件夹;bin为启动脚本目录,conf为配置目录,logs为日志目录。9.答案:D解析:war包是Web项目打包文件,必须依赖Tomcat、Jetty等Web容器运行,无法独立启动;jar包可通过java-jar独立运行。10.答案:B解析:jstack用于打印线程堆栈信息,精准排查线程死锁、线程阻塞问题;jps查看进程,jmap查看堆内存快照,jstat监控GC状态。11.答案:A解析:SpringBoot默认内嵌Tomcat服务器,可手动切换为Jetty、Undertow,Nginx属于反向代理服务器,非内嵌Web容器。12.答案:B解析:空指针异常是最常见的运行时异常,程序运行过程中触发;其余选项均为受检异常,需要手动捕获或抛出。13.答案:B解析:jstat可实时监控JVM的GC次数、内存使用率、线程运行状态,是运维日常监控核心命令;jcmd为综合命令,jmap侧重堆内存快照,jinfo查看JVM参数。14.答案:C解析:Nginx主要实现请求转发、负载均衡、静态资源代理、隐藏后端服务,不具备Java代码编译功能。15.答案:D解析:端口被占用时,直接忽略报错会导致项目启动失败、服务无法访问,必须释放端口或修改端口后重新启动。二、填空题答案及解析1.编译、运行(解析:Java是编译解释型语言,先编译为字节码,再由JVM解释运行)2.元空间(Metaspace)(解析:JDK1.8废弃永久代,使用本地内存实现的元空间存储类信息、方法信息)3.System.gc()(解析:代码中调用该方法可手动触发FullGC,生产环境不建议频繁使用)4.server.xml(解析:Tomcat核心配置文件,配置端口、连接数、线程池等核心参数)5.jps-l(解析:查看所有Java进程及对应PID、启动类路径)6.application.yml、perties(解析:SpringBoot默认支持的两种配置文件格式,yml层级更清晰)7.终止(解析:线程完整生命周期五大状态)8.UTF-8(解析:通用统一编码,可解决中文乱码、特殊字符乱码问题)三、简答题详细答案1.JDK1.8JVM内存结构核心组成及作用JDK1.8的JVM内存主要分为五大区域,各区域职责明确:(1)程序计数器:线程私有,记录当前线程执行的字节码行号,是唯一一个无内存溢出的区域;(2)虚拟机栈(栈内存):线程私有,存储方法栈帧、局部变量、方法返回值,方法调用时入栈,执行结束出栈;(3)本地方法栈:线程私有,作用与虚拟机栈类似,专门为JVM调用的Native本地方法服务;(4)堆内存:线程共享,是垃圾回收的核心区域,存储所有对象实例和数组,分为新生代、老年代;(5)元空间:线程共享,使用本地内存,存储类的元数据、方法、常量、注解等信息,替代了旧版本的永久代。2.Java项目OOM内存溢出常见原因及排查步骤常见原因:(1)代码问题:存在内存泄漏,如集合未清空、流资源未关闭、静态集合持续持有对象、循环创建对象不释放;(2)JVM参数配置不合理:堆内存设置过小,无法支撑业务峰值流量;(3)并发量过高:瞬时请求量大,创建大量对象,GC回收速度跟不上对象创建速度;(4)第三方依赖漏洞或缺陷,导致资源无法释放。排查步骤:(1)通过jps获取项目进程PID,使用jmap-dump导出堆内存快照;(2)通过jstat监控GC情况,查看YGC、FGC次数及耗时,判断是否频繁GC;(3)使用MAT、JProfiler工具分析快照,定位大对象、常驻内存对象、未回收对象;(4)结合项目日志,排查高频接口、循环逻辑、资源关闭逻辑;(5)优化代码修复内存泄漏,调整JVM堆内存参数,优化垃圾回收策略。3.Tomcat频繁宕机、访问卡顿的常见原因及解决办法常见原因:(1)Tomcat线程池配置过小,并发请求堆积,无法及时处理;(2)项目存在内存泄漏,长期运行导致内存溢出,服务卡死宕机;(3)数据库连接池配置不足,数据库连接耗尽,接口请求阻塞;(4)服务器CPU、内存、磁盘IO资源不足,或端口、文件句柄耗尽;(5)日志输出过多、日志堆积,占用大量磁盘和系统资源。解决办法:(1)修改server.xml优化Tomcat线程池,调大最大连接数、核心线程数;(2)定期排查JVM内存状态,修复代码内存泄漏,优化JVM参数;(3)调整数据库连接池参数,合理设置最大连接数、超时时间;(4)清理服务器冗余文件、日志,扩容服务器资源,优化系统文件句柄限制;(5)配置日志切割策略,避免日志文件过大堆积。4.jar包和war包的适用场景及部署区别适用场景:(1)jar包:适用于普通Java项目、SpringBoot单体项目、微服务项目,主打独立运行、轻量化部署,无Web页面的后端服务优先使用;(2)war包:适用于传统SSM、SSH架构的Web项目,包含前端页面、Web配置文件,需要依赖Web容器运行。部署区别:(1)jar包:无需额外部署容器,服务器安装JDK后,直接通过java-jarxxx.jar命令启动,支持后台运行、指定JVM参数启动;(2)war包:需要部署在Tomcat、Jetty等Web容器中,将war包放入webapps目录,启动容器即可自动解压部署,无法独立启动运行。四、实操故障排查题详细解答故障现象:项目启动成功,接口访问超时报错,CPU、内存持续走高,无宕机完整排查流程、命令及解决方案1.第一步:定位Java进程,确认资源占用情况执行命令:top查看服务器全局资源占用,找到CPU、内存最高的进程PID;执行jps-l确认对应Java项目进程。初步判断是项目本身导致资源耗尽,排除系统其他进程干扰。2.第二步:排查线程状态,定位CPU飙升原因执行命令:top-H-p进程PID查看进程内线程资源占用,找到高CPU线程ID;通过jstack进程PID|grep线程ID(十六进制转换),查看线程堆栈。常见问题:存在死循环、死锁、大量线程阻塞、高频计算逻辑,导致CPU持续满载。3.第三步:排查内存及GC状态,定位内存攀升问题执行命令:jstat-gc进程PID1000实时监控GC情况,查看YGC、FGC频率和耗时;若频繁GC、堆内存无法释放,判定存在内存泄漏。执行jmap-dump:format=b,file=heap.hprof进程PID导出堆快照,通过MAT工具分析,定位大对象、未释放的集合资源、泄漏代码位置。4.第四步:结合项目日志排查业务问题查看项目日志、Tomcat访问日志,排查是否存在高频异常请求、接口重试、数据库慢查询、第三方接口超时重试等问题,这类问题会导致线程堆积、资源占用过高。5.

温馨提示

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

评论

0/150

提交评论