2024-01-03 21:18:16
元启软件Java开发一面面经总结如下:
面试基本信息需阐述项目从需求分析到上线的完整流程,包括团队协作方式、需求对接机制(如使用何种工具沟通、需求文档如何编写)。
需说明项目是否上线及用户规模(如未上线可强调测试数据或预期目标)。
若担任负责人,需说明团队分工模式(如敏捷开发、任务拆解)、技术决策依据(如选型原因)及问题解决案例(如技术难点攻关)。
百度开放平台:天气API(数据解析与异常处理)、定位API(精度优化与权限管理)。
阿里云服务:短信服务(签名与模板审核流程)、OSS存储(文件分片上传与权限控制)、GPT内容生成(Prompt工程与输出过滤)。
关键点:需说明API的集成方式(如SDK调用或HTTP请求)、性能优化(如缓存策略)及安全措施(如敏感数据脱敏)。
核心理解:JUC(java.util.concurrent)是Java并发编程工具包,包含锁、原子类、线程池等组件,用于解决多线程环境下的线程安全与性能问题。
ConcurrentHashMap:需对比HashMap的线程不安全特性,说明ConcurrentHashMap的分段锁(JDK1.7)或CAS+synchronized(JDK1.8)实现机制,以及其高并发场景下的优势。
JDK1.7死链原因:头插法在扩容时可能导致链表环化,多线程并发扩容时引发死循环(CPU占用100%)。
JDK1.8优化:改用尾插法并引入红黑树,避免链表过长导致的性能下降,同时解决死链问题。
扩展点:可补充HashMap的初始容量、负载因子对性能的影响,以及与HashTable、ConcurrentHashMap的区别。
执行计划分析:使用EXPLAIN查看SQL执行路径,关注type(访问类型)、key(是否使用索引)、rows(扫描行数)等字段。
索引优化:遵循最左前缀原则,避免索引失效(如使用OR、函数操作字段);覆盖索引减少回表操作。
其他优化:分页查询优化(如子查询+主键排序)、避免SELECT *、合理使用连接(JOIN)替代子查询。