JAVA开发工程师 专题汇总

JAVA开发工程师 面试经验分享列表,共4636

| 网上申请
面试过程:

还行,人事面试 问了一些基本情况就进去了 总之是二次开发的公司,需要出差,各个项目地到处去跑,而且工作强度蛮高的,报销制度不太明确

面试官问的面试题:

如何确保消息正确地发送至RabbitMQ?
RabbitMQ使用发送方确认模式,确保消息正确地发送到RabbitMQ。发送方确认模式:将信道设 置成
confirm模式(发送方确认模式),则所有在信道上发布的消息都会被指派一个唯一的ID。一 旦消息被
投递到目的队列后,或者消息被写入磁盘后(可持久化的消息),信道会发送一个确认给 生产者(包含
消息唯一ID)。如果RabbitMQ发生内部错误从而导致消息丢失,会发送一条 nack(not
acknowledged,未确认)消息。发送方确认模式是异步的,生产者应用程序在等待确 认的同时,可以
继续发送消息。当确认消息到达生产者应用程序,生产者应用程序的回调方法就会 被触发来处理确认消
息。
17.9.如何确保消息接收方消费了消息?
接收方消息确认机制:消费者接收每一条消息后都必须进行确认(消息接收和消息确认是两个不同 操作
)。只有消费者确认了消息,RabbitMQ才能安全地把消息从队列中删除。这里并没有用到超 时机制,
RabbitMQ仅通过Consumer的连接中断来确认是否需要重新发送消息。也就是说,只要 连接不中断,
RabbitMQ给了Consumer足够长的时间来处理消息。 下面罗列几种特殊情况: 如果消费者接收到消息
,在确认之前断开了连接或取消订阅,RabbitMQ会认为消息没有被分 发,然后重新分发给下一个订阅
的消费者。(可能存在消息重复消费的隐患,需要根据bizId 去重) 如果消费者接收到消息却没有确认
消息,连接也未断开,则RabbitMQ认为该消费者繁忙,将 不会给该消费者分发更多的消息。
17.10.如何避免消息重复投递或重复消费?
在消息生产时,MQ内部针对每条生产者发送的消息生成一个inner-m

赞一下(0) 踩一下

| 校园招聘
面试过程:

第一轮5到6个人无领导小组讨论,话题是如何设计一个秒杀系统,满足接口时延<200ms,QPS>2000。
第二轮是专业面,主要针对项目进行提问,有问八股和深挖项目

面试官问的面试题:

mysql和redis的库存的数据一致性怎么保证
乐观锁,悲观锁说一下,CAS底层原理
AQS说一下
设计模式有了解多少,观察者模式知道吗
Collection和Collections,Collection和Collections的方法,sort用的算法是啥
快排,冒泡实现,写出来
手写了一道算法题,10min
缓存击穿,热key怎么解决,key分片不好
ThreadLocalMap做什么用的,底层原理,父子线程冲突怎么解决
死锁的产生和解决
幻读是什么,怎么解决,临键锁? 间隙锁?
消息一致性怎么保证

赞一下(0) 踩一下

| 社会招聘
面试过程:

这个岗位是初级Java工程师,面试难度简单。
技术一面时主要是项目介绍和八股文,我说了下培训时候做的一个关于菜谱的项目(简历中最近的),单体架构,负责了登录和用户搜索、首页菜谱展示等部分;八股文基本就是网上能搜到的大家都在背的那些,接口和抽象类的区别、重载和重写的区别等等,还是比较简单;
二面是所驻场的正式员工进行面试,由于是测试团队所以难度比较简单,还是容易通过的。八股文和一面难度差不多,项目中抓住细节问了下。然后就过了。

面试官问的面试题:

MySQL的底层索引是什么;
LinkedList和ArrayList区别;
线程安全的集合和不安全的集合;
线程和进程;
什么情况下会出现OOM,如何定位和解决?
菜谱项目中的首页的更新时间是如何设定的,遇到的日切问题是如何优化的;

赞一下(0) 踩一下

1 2 3 4 5 6 7 8 9 10 11   共 20 页