2026广州地区Java程序员面试真题(含接地气详细答案)_第1页
2026广州地区Java程序员面试真题(含接地气详细答案)_第2页
2026广州地区Java程序员面试真题(含接地气详细答案)_第3页
2026广州地区Java程序员面试真题(含接地气详细答案)_第4页
2026广州地区Java程序员面试真题(含接地气详细答案)_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

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

文档简介

2026广州地区Java程序员面试真题(含接地气详细答案)适配范围:广州天河智慧城、黄埔科学城、番禺万博片区中小厂、互联网分部、自研外包、电商后端岗(广州本地招聘最高频Java后端)一、Java基础八股(22分,初级必问,中级深挖)1、==和equals区别,手写业务场景踩坑(4分)面试口述答案(广州面试官最爱听业务踩坑,非课本答案):1、基本类型:==比较数值;2、引用类型:==直接比较堆内存地址;equals默认和==一致,重写后比较内容;3、本地业务踩坑:广州很多电商项目用String存订单状态,直接==判断偶尔报错,因为字符串常量池范围有限,newString出来的状态对象地址不一样,必须用equals;另外Integer[-128,127]缓存,超出区间==直接false,之前做积分接口踩过这个bug。精简总结:业务判断内容一律用equals,不要偷懒用==。2、JVM堆和栈区别,广州项目常用GC选型(5分)口述答案:栈:线程私有,存局部变量、方法栈帧,空间小自动回收,速度快;堆:线程共享,所有new对象都放堆,是GC主战场;补充本地落地:广州大部分中小企业项目JDK8,默认使用G1收集器;老旧外包项目用ParallelGC;高并发电商项目会手动改成ZGC,低延迟。不会去用CMS,已经废弃维护。高频追问:栈溢出一般是死递归,堆溢出是批量导入数据没分页,广州外包导入Excel高频bug。3、final、finally、finalize区别(4分)final:修饰变量不可改、方法不可重写、类不可继承,业务里常量全部加final;finally:try-catch配套,代码必执行,关闭数据库连接、Redis连接必写在这里;finalize:废弃方法,JVM垃圾回收前调用,业务代码从来不用,有极大性能问题,面试知道废弃即可。4、线程池七大参数,广州项目核心配置(5分)口述答案:核心7个:核心线程数、最大线程数、空闲存活时间、时间单位、阻塞队列、线程工厂、拒绝策略;本地业务实操:广州严禁直接用Executors创建线程池(阿里规约,本地公司全部强制遵守),全部手动newThreadPoolExecutor;业务配置经验:IO密集型接口(文件上传、调用第三方快递接口)核心线程设CPU核心数*2;CPU密集型(订单计算)等于CPU核心数;线上拒绝策略统一用自定义降级,不用默认抛弃策略。5、volatile关键字作用,能不能保证原子性(4分)口述答案:两大作用:保证可见性、禁止指令重排;不能保证原子性;落地场景:广州本地做秒杀项目,标记秒杀开启关闭用volatile;计数累加绝对不用,计数要用AtomicInteger或者加锁synchronized。二、Spring全家桶高频题(20分,全员必考)1、SpringIoC原理,Bean生命周期(5分)IoC就是控制反转,把对象创建交给Spring容器,不用自己new,解耦业务代码;Bean简易生命周期:实例化对象→填充属性赋值→执行前置后置处理器→初始化方法→使用对象→容器销毁执行销毁方法;本地考点:单例Bean默认容器启动创建,多例Bean调用时才创建,业务Mapper全部单例。2、SpringAOP使用场景,动态代理区别(5分)口述答案:业务场景:广州项目统一日志打印、接口权限校验、事务管控、接口耗时统计全部用AOP;代理区别:目标有接口默认JDK动态代理,只能代理接口方法;无接口用Cglib字节码代理;日常开发不用手动指定,Spring自动适配。3、Spring事务传播机制,业务踩坑(6分)广州面试高频坑点,必背:重点记4个常用即可,不用背7个:1、REQUIRED:默认,有事务加入,没有新建;2、REQUIRES_NEW:新开独立事务,互不影响;3、SUPPORTS:有无事务都行;4、NESTED:嵌套事务,依赖父事务;业务踩坑:同一个类内部方法调用,@Transactional失效,因为AOP代理拦截不到,解决方案:自己注入自己调用,或者拆分类,广州进销存项目高频出错点。4、SpringBoot自动配置原理(4分)核心注解@EnableAutoConfiguration,读取META-INF/spring.factories配置文件,根据项目引入依赖,按需装配Bean;新版本SpringBoot2.7+取消factories文件,改用SPI机制;开发自定义starter经常用到这个机制。三、MySQL数据库高频(23分,广州笔面试分值最高)1、InnoDB和MyISAM区别,项目选型(5分)业务化答案:1、InnoDB:支持事务、行锁、外键、崩溃恢复,现在广州所有新项目全部用InnoDB;2、MyISAM:不支持事务,表锁,查询快,只有老旧静态日志表会用到,新项目禁用;补充:行锁命中索引才生效,索引失效直接降级为表锁,大批量更新会卡库,线上高频问题。2、索引底层B+树,为什么不用二叉树、B树(5分)面试官通俗答案,不学术:二叉树高度太高,磁盘IO次数多;B树数据和索引混存,一页存索引少;B+树特点:非叶子节点只存索引,叶子节点串联,分页查询极快,适配数据库范围查询,磁盘IO最少,适配业务分页、排序场景。3、慢SQL优化完整流程(6分,中级必考大题)广州线上优化标准流程,直接口述得分:1、explain执行计划查看type、key、rows,判断是否走索引;2、避免索引失效:like%开头、or、类型转换、notin、orderby字段无索引都会失效;3、优化写法:禁止select*,按需查字段;大表禁止in,改用join;4、业务层面:超大表分表、冷热数据拆分、历史订单归档(广州电商必做);5、参数调优:调整join缓冲区、排序缓冲区大小。4、MySQL事务四大隔离级别,默认级别(4分)答案:读未提交、读已提交、可重复读、串行化;MySQLInnoDB默认可重复读,通过MVCC多版本快照解决幻读;广州金融类项目会手动改成串行化,保证数据绝对安全,普通业务用默认即可。5、Redis和MySQL双写一致性解决方案(3分)中小企业落地方案,不聊分布式事务玄学:1、普通业务:延时双删,更新数据库,删缓存,隔500ms再删一次;2、高精准业务:Canal监听binlog异步更新Redis;小厂禁止强一致性分布式方案,成本太高,广州企业基本不用。四、Redis高频实操(15分,广州电商、进销存必问)1、Redis五大数据类型业务使用场景(5分)贴合本地业务,非课本举例:String:验证码、用户登录token、接口限流计数;List:消息队列、订单排队、日志顺序存储;Hash:用户信息、购物车,可单独修改字段,节省内存;Set:点赞、去重、好友交集;ZSet:排行榜、延时订单、积分排名。2、Redis缓存三大问题+解决方案(6分)标准答案,广州背诵版:1、缓存穿透:查不存在数据,解决方案:布隆过滤器、空值缓存;2、缓存击穿:热点key过期瞬间并发打库,解决方案:互斥锁、热点key永不过期;3、缓存雪崩:大批量key同时过期/Redis宕机,解决方案:过期时间加随机值、搭建集群、服务降级。3、Redis集群模式,广州项目用哪种(4分)落地答案:1、单机:测试环境使用;2、主从+哨兵:广州中小公司线上主流,做主从切换高可用,部署简单运维成本低;3、Cluster集群:大型电商分片存储,成本高,小公司很少部署。五、手撕算法(10分,广州线下笔试必考,简单务实,无hard题)说明:广州90%中小厂只考easy、medium算法,不考动态规划hard题,以下为近3个月笔试原题,附可直接运行Java代码+面试官考点手撕1:有效括号(5分,必考)题目:给定字符串s,仅包含()[]{},判断括号是否有效闭合答案代码:java

//栈解法,最优时间复杂度O(n)

publicbooleanisValid(Strings){

Stack<Character>stack=newStack<>();

for(charc:s.toCharArray()){

//左括号入栈对应右括号

if(c=='(')stack.push(')');

elseif(c=='[')stack.push(']');

elseif(c=='{')stack.push('}');

//栈空或者栈顶不相等直接false

elseif(stack.isEmpty()||stack.pop()!=c)returnfalse;

}

returnstack.isEmpty();

}考点:栈结构、边界判断,空字符串返回true手撕2:两数之和(5分,高频)题目:数组nums,目标值target,返回两个相加等于target的下标答案代码:java

//HashMap一遍遍历,优于双层for循环

publicint[]twoSum(int[]nums,inttarget){

Map<Integer,Integer>map=newHashMap<>();

for(inti=0;i<nums.length;i++){

intdiff=target-nums[i];

if(map.containsKey(diff)){

returnnewint[]{map.get(diff),i};

}

map.put(nums[i],i);

}

returnnewint[]{};

}六、项目业务面试(8分,面试官口述提问,无模板答案)1、你在广州做的项目,线上遇到最大bug是什么?怎么解决?(4分)通用口述答案(适配所有后端,可直接背诵,真实接地气):之前做番禺本地进销存项目,月底盘点大批量查询库存,没加分页导致全表查询,MySQLCPU打满,接口全部超时。排查步骤:看服务器监控→查慢日志→定位无分页SQL→增加分页+库存字段复合索引,同时做库存历史数据归档,拆分冷热表,当天解决,后续新增查询接口强制校验分页参数。2、并发场景怎么保证接口安全?(4分)口述答案:接口加幂等注解、唯一订单号做Redis分布式锁;前端防重复提交;数据库加唯一索引兜底;核心扣款、出库接口,三层兜底,广州业务项目标配方案。七、广州本地化HR技术闲聊(附加题,决定薪资定级)1、为什么离职?标准答案:上家公司业务收缩,项目迭代停滞,想在广州深耕电商/进销存后端业务,寻求技术迭代和薪资提升,不吐槽前

温馨提示

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

评论

0/150

提交评论