- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
J2EE核心面试题及实战答案
一、基础核心(Servlet/JSP/JavaEE规范)
问题:Servlet的生命周期中,init()、service()、destroy()方法的调用时机和特点?实际开发中init()里适合做什么、不适合做什么?
答案:
init():Servlet实例化后调用1次,用于初始化资源(如加载配置文件、创建数据库连接池),默认是非线程安全的,若重写需注意同步;不适合做耗时操作(如循环读取大文件),会导致Servlet启动失败。
service():每次客户端请求都会调用,由容器自动分配线程执行,需注意线程安全(避免成员变量共享,优先用局部变量)。
destroy():Servlet销毁前调用1次,用于释放资源(如关闭连接池、销毁线程池),容器重启或应用卸载时触发。
问题:JSP的9大内置对象中,request和session的作用域区别?实际开发中如何避免session失效导致的问题?
答案:
作用域:request是请求域(一次请求内有效,转发可共享,重定向失效);session是会话域(同一浏览器会话内有效,默认超时30分钟,服务器重启或浏览器关闭后失效)。
避坑方案:①敏感操作(如支付)需校验session是否存在,不存在则跳转登录页;②避免在session中存储大对象(如List集合),占用服务器内存;③分布式场景用Redis共享session,避免单机session丢失。
二、Spring框架
问题:SpringBean的作用域有哪些?singleton和prototype的核心区别?实际项目中什么时候用prototype?
答案:
作用域:singleton(默认)、prototype、request、session、globalSession、application、websocket。
核心区别:singleton是单例,容器启动时创建(懒加载除外),整个容器中只有1个实例;prototype是多例,每次获取Bean时创建新实例。
适用场景:prototype用于状态可变的Bean(如Struts2的Action),避免多线程共享导致的数据混乱;singleton用于无状态Bean(如Service、Dao),提升性能。
问题:SpringAOP的核心概念?实际开发中用AOP做过哪些场景?如何解决AOP切面顺序问题?
答案:
核心概念:切面(Aspect)、切入点(Pointcut)、通知(Advice:前置、后置、环绕、异常、最终)、目标对象(Target)、代理(Proxy)。
实际场景:日志记录、权限校验、事务管理、异常统一处理、接口耗时统计。
切面顺序:①用@Order注解(值越小越先执行);②实现Ordered接口重写getOrder()方法;③环绕通知可通过手动调用ProceedingJoinPoint控制顺序。
问题:Spring事务的传播机制和隔离级别?实际开发中遇到过事务不生效的情况吗?如何排查?
答案:
传播机制:REQUIRED(默认,当前无事务则新建,有则加入)、REQUIRES_NEW(新建独立事务,原有事务挂起)、SUPPORTS(有事务则加入,无则非事务执行)等7种。
隔离级别:DEFAULT(默认,跟随数据库)、READ_UNCOMMITTED、READ_COMMITTED(常用,避免脏读)、REPEATABLE_READ、SERIALIZABLE。
事务不生效排查:①方法是否为public(Spring事务只对public方法生效);②是否存在内部调用(如A类methodA调用本类@Transactional的methodB,切面无法拦截);③数据源是否配置了事务管理器;④异常类型是否为RuntimeException(默认只回滚运行时异常,checked异常需指定rollbackFor)。
三、MyBatis
问题:MyBatis的一级缓存和二级缓存区别?实际项目中是否启用二级缓存?为什么?
答案:
一级缓存:SqlSession级别,默认开启,缓存范围是同一个SqlSession,关闭SqlSession后缓存失效;基于HashMap实现,key是SQL语句+参数+RowBounds。
二级缓存:Mapper接口级别,默认关闭,需在映射文件加cache/或注解@CacheNamespace开启,缓存范围是同一个Mapper,不同SqlSession可共享。
项目实践:一般不启用二级缓存,原因:①
您可能关注的文档
- HBase 高频面试题及实战答案.docx
- HCIE面试高频题及实战答案.docx
- HDFS面试高频题及实战答案.docx
- Helpdesk面试题及参考答案.docx
- Hive 笔试题及参考答案.docx
- Hive高频面试题及参考答案.docx
- Hive面试高频题及实战答案.docx
- HR真实场景面试题及参考答案.docx
- HSE考试题库及答案(实操型).docx
- HSE知识考核试卷及答案.docx
- 基于SPC的供水管道工程施工质量管理:理论、实践与创新.docx
- 苍凉笔触下的人性凝视:论张爱玲小说的人性书写.docx
- 论我国行政公益诉讼原告资格制度的构建与完善.docx
- 双层石墨烯边界态对电导与谷极化的影响机制及应用前景探究.docx
- “21世纪海上丝绸之路”中心城市网络:建模解析与结构洞察.docx
- 农村信用社竞争力剖析与战略抉择:以A县农村信用社为样本的深度研究.docx
- 调节对人眼散光的影响:机制、规律与临床意义探究.docx
- 从传统到消费:中国武术的时代转型与融合发展.docx
- 探秘GlyRS:上游激酶的鉴定与激酶活性的深度解析.docx
- 平行式双水翼潮流能发电系统:能量转换机制与动态特性解析.docx
原创力文档


文档评论(0)