java面经收集

https://github.com/jujunchen/Java-interview-question

Java面试题集中营

Java面试宝典-牛客网

HashMap面试必问的数据结构相关知识总结

作者:想风一样自由
链接:https://www.nowcoder.com/discuss/506024
来源:牛客网

1. 项目
2. 自己对团队贡献最大的,说了性能优化,写通用流程。问性能优化做了哪些?
异步化,并行,缓存,本地缓存,稳定性方面,限流降级熔断,问怎么做的?有没有将这些方案自动化?没有,对用户商家有损;限流怎么实现的?
监控怎么加的,怎么实现的?
3. 自己的优势在哪儿?
4. 自己的缺点?
5. 怎么用流去提取一串数字中相同的数字?
6. 有一个学生对象,其中有姓名,性别,怎么用流去提取 姓张,姓刘的最多的学生,并且男女要分开
7. delayQueue 的实现?
8. 100W 的数据,需要定时更新,失败需要重试,需要尽快执行完成。现在机器数量不固定,如何用最少的代码实现
9. 一个任务在平时只需要 5 个线程就可以处理好,忙的时候需要 100 个线程才能处理完成, 如何设计才能合理利用资源?
10. 如何排除线上问题?还不要方法论的那种
11. 自己的职业规划
12. 有一个 HTTP 请求,现在返回值和原来不一致,影响了业务,如何排查?
13. 如果现在应用的 CPU 利用率高,如何排查?
14. JAVA 的4种引用,分别有哪些应用场景?
15. 一致性hash 算法的原理?如果有数据倾斜怎么解决?带有虚拟节点的一致性 hash
16. 布隆过滤器的原理?场景
17. SQL 优化的一些方法?
18. 消息队列用的哪个?答:NSQ,面试官:没听说过,遂没接着问

 

 

作者:想风一样自由
链接:https://www.nowcoder.com/discuss/508527
来源:牛客网

【阿里】
二面
  1. 公司做的项目,设计插件,

  2. 讲讲项目的架构,设计,数据流,ER 图

  3. Redis 使用过吧,缓存击穿的解决办法,Redis 的数据结构有哪些,Redis 的主从结构,数据分片,一致性 hash

  4. JAVA 基础,存放不相同的对象使用什么数据结构,引出对象的 hashCode 和 equals方法,HashSet 是用什么结构实现的;

  5. HashMap 的冲突解决办法

  6. HashMap 是不是线程安全的容器,如果并发访问了JDK 是怎么解决的

  7. 线程安全的容器 ConcurrentHashMap是怎么解决线程安全问题的,分段锁

  8. 悲观锁和乐观锁的区别,使用悲观锁有什么影响(线程中断,慢),乐观锁有什么好处

  9. spring ,spring 的 IOC 是什么,怎么实现的,突然就有点不知道从何说起,讲了有依赖注入和依赖查找,说道了使用 spring 的注解,然后容器启动的时候加载这些注解所在的类,使用反射执行执行初始化就 OK 了

  10. 然后问到使用反射就可以加载一个 private 的成员吗,不能,需要设置权限

  11. 如何解决循环依赖呢,用一个 Map 把依赖存起来呗,如果有说明有循环依赖

  12. 平常自己通过哪些途径学习,答看文档,看博客

  13. 如果有一个主线程和很多个子线程,主线程需要等子线程运行完才能继续执行,你会用什么,CountdownLatch嘛

  14. 讲讲 GC,清除,整理,交换(survivor 区域),CMS 执行的过程

  15. 讲讲自己的希望未来做的事情,高并发场景和领域建模

  16. 讲讲领域建模,就是 DDD 的核心思想,实现起来就是在 Service 那一层使用充血模型

  17. 平常有自己写博客吗,不写笔记,996没时间写博客
三面
  没整理出来,基本上开头是和二面一样的,但是问的问题会更深入和发散,比如说为什么要这样设计,这个设计有没有问题等等。和业务强相关,所以一定要对业务熟悉,但是如果业务难度不大,并发量和性能要求不高,可能在具体问题的回答深度上会和面试官期待的有所欠缺。面试官人都特别好,同时也特别厉害,能从你的描述中获得很多信息,来反问你。所以一定要熟悉整个部门业务。问题的 发散度很高,脑子工作了一天,晚上面试的时候,容易卡壳。哎,亏死了。阿里的三面难度真的很大,所以一定要保持一个好的精神!!!!!

滴滴
一面
  1. java SPI机制实现 ?dubbo的spi有啥不同,为什么,有没有看过dubbo的源码,它的上下文可以讲一下吗,dubbo的泛化调用有了解吗?

  2. 如何提升系统稳定性? 业务监控,监控哪些内容?qps,rt,失败率。

  3. 限流降级熔断你是怎么使用的?

  4. 如何解决 本地事物成功,消息发送给消息队列成功,但是由于网络原因而没有收到成功的回复? 事务消息

  5. concurrent hashmap 如何解决 并发插入桶的第一个元素的问题?

  6. threadlocal的实现讲一下?如何将父线程的threadlocal变量传给子线程?

  7. 加锁的流程讲一下。Aqs的实现讲一下?

  8. 双重检验的单例实现,volatile解决了什么问题,只用synchronized关键字可以吗,为什么不可以?

  9. 数据库,MVCC的实现讲一下?多版本体现在哪里实现上是怎样的?B+树索引有了解吗?怎么解决不可重复读的问题?

  10. 分布式锁,如何解决锁超时未释放的问题

  11. 动态代理是实现是怎样的,字节码层面上是怎么实现的?

  12. Gc相关,新生代,老年代相关的算法流程,为什么要这样使用?

  13. spring 的上下文有了解吗,ioc的实现??di注入是怎么实现的??

  14. cas是怎么实现的? 交换比较是哪个变量?

  15. 了解unsafe吗

  16. 有哪些是你熟悉的领域也可以讲讲?

二面

  1. 系统架构讲一下?数据流向?数据库设计 (ER 图)讲一下?如果一个商品列表要展示活动,如何设计的?

  2. 进程和线程的区别?多进程编程有了解吗?多线程编程要注意什么?共享变量,执行时序

  3. MySQL 的主从同步机制?幻读是什么?

  4. Redis 的主从同步机制?

  5. 使用 MySQL 的心得?加 limit, 执行计划,是否有排序,是否可以使用覆盖索引解决排序,不要将自增主键给外部

  6. 二叉树的层序遍历?

  7. 设计一个积分前 100 的排行榜?如果积分变更在不同的地方,如何让积分榜实时更新?发消息,监听 binlog

  8. 本地事务和发消息如何保证强一致性? 事务消息可解决
  9. 为什么会考虑离职?期望有个更好的平台来发展呗
  10. 二面面试官人很好,又问了些其他的,比如说公司有没有使用这些严格的机制,比如说事务消息,面试官答:工业界使用当然是越简单的机制越好,新技术可以学习,但是要引进实际生产一定要考虑其本身的复杂性,巴拉巴拉了好多
HR
    本次没三面,可能是新部门吧。大致聊了以下几个部分
    1. 我对贵公司的意向度很高
    2. 我还有别的 Offer
    3. 我的期望薪资巴拉巴拉
    4. 到岗信息等等
 
 
作者:菜是原罪·
链接:https://www.nowcoder.com/discuss/496774
来源:牛客网

公司:同程艺龙成都bu
岗位:Java开发工程师
形式:电话面试(一面)
市场:大约1h

直接上面经内容:

1. 请求响应断链如何解决?请求下单之后,网络断开了,我们这边请求没接收到下单的结果怎么办?
2. 重复出票怎么处理?重复下单怎么处理?
3. 分布式锁如何实现的?redis分布式锁和zk分布式锁有什么区别?
4. redis分布式锁实现的话,setnx和expire命令,如果A线程将expire操作操作到了B线程了,也就是expire了另一个线程的资源,这种怎么避免?
5. 线程池是什么?
6. Future是什么?有什么作用?
7. 线程池核心数是20个,最大线程数是40个,讲一下任务进入线程池的原理逻辑?
8. 线程池阻塞队列有哪几种?
9. 优先队列了解吗?优先队列底层实现机制?
10. 你说下LinkedBlockingQueue底层阻塞的原理是什么?
11. 你说一下ReentrantLock和Synchronize的区别?
12. ReentrantLock和读写锁的区别?
12. AQS里的setState()是什么时候调用?
13. 讲一下锁的升级策略?
14. HTTP和HTTPS的区别?
15. 对称加密和非对称加密有什么区别?HTTPS是用到了那种加密方式?
16. 看你简历说是熟悉JVM,那JVM有哪几种GC算法?
17. 新生代中为什么会有From Survice和To Survice区?
18. 使用CMS垃圾收集器时,遇到大对象比较多导致频繁GC,该如何解决这种情况?
19. GCRoot是什么?哪些对象是GCRoot?
20. MySQL中有哪些索引类型?
21. B+树和B树有什么区别?
22. 联合索引什么情况下会失效?
23. 最左匹配原则是什么?
24. MySQL有哪几种隔离级别?
25. 幻读是什么?RR隔离级别能解决幻读吗?那RR隔离级别是怎么解决幻读的?
26. 你知道间隙锁吗?间隙锁的作用是什么?是怎么解决幻读的?
27. SpringAOP了解吗?有哪几种实现方式?
28. CGLIB什么情况下会失效?
29. 为什么要同时重写equals和hashcode?

总结:其实场景题还是老样子,回答的不好,然后知识点之间细节没拉满,归根结底就是学的不够好,不够扎实。自己离互联网大厂还是有大差距,接下来还需加倍努力提升自己的水平,要拉满细节!!!

========== 分割线 ==========

公司:同程艺龙成都bu
岗位:Java开发工程师
形式:现场面试(二面)
时长:50min

二面 现场部门老大面 是在同程艺龙成都办公地面试的,时间是在周六下午三点,公司周末双休没上班,只有面试官、hr以及前台小姐姐几个人。
  1. 你在项目中学习到了哪些?或者是遇到了哪些困难?怎么解决的?
  2. 如何保证你的调用链路的稳定性?如何保证服务调用链路请求的幂等性?
  3. mq消息的幂等性如何保证?
  4. mq如何保证顺序消费?
  5. 线程池创建有哪几种方式?
  6. 线程池核心参数有哪些?
  7. 线程池中拒绝策略有几种?分别说一下各自的作用?
  8. Redis都用到了哪些场景?除了缓存还有其他场景吗?
  9. 缓存雪崩、穿透、击穿是什么?如何解决?
  10. 对于穿透解决方案给key对应的value对写为null、未知错误、稍后重试时,如何解决当数据库真的有对应数据时,缓存数据没更新导致正式用户请求访问不到缓存?
  11. 你刚刚是讲到了布隆过滤器吗?讲一下布隆过滤器的作用以及底层原理?
  12. 如何保证缓存和数据库数据一致性?
  13. 对实时性要求比较高的缓存如何保证和数据库数据一致性?
  14. Redis中常用的数据结构有哪些?
  15. Redis中Hash结构的扩容机制是什么?那你可以讲讲HashMap的扩容机制吗?
  16. Redis中的过期机制有哪几种?底层都是如何实现的?
  17. Redis的部署有哪些方式?
  18. Redis的cluster和Setinel实现原理是什么?
  19. 数据库的查询优化、排查慢sql以及sql优化是怎么进行的?详细点说明下
  20. InnoDB中哈希索引实现机制是什么?
  21. MySQL中唯一索引和聚镞索引相比,性能如何?
  22. 除了常用排序算法,你还会用到什么算法?或者了解什么算法?
  23. Redis中跳表的原理了解吗?
  24. 项目中用过自定义SpringBoot starter吗?starter是如何实现的?
  25. 有没有做过或了解过大批量数据迁移,类似于大批量MySQL数据迁移到ES中的操作?
  26. 分布式事务了解吗?你们项目中都用到了哪些分布式事务?都有哪些优缺点?
  27. 说一下JVM内存模型有哪些?说一下JVM的内存区域?
  28. 在Java中,有哪些包是直接定义在对外内存中的?
  29. 线上做过哪些性能排查以及性能优化的操作?
  30. 了解Java中的happen-before原则吗?
  31. 除了用锁、volatile之外,如何保证一个线程的变量能被另外一个线程的变量给实时读取到?
总结:本次面试在经过面试官的同意后对本次面试进行了录音,方便之后进行面试复盘。从这次复盘的结果来看,此次部门老大面没怎么问简历上的内容,估计是一面里有面试记录,所以一面面的大部分内容都没有再次问到。从这次面试来看,对于一个知识点你理解了和用你自己的语言表述出来是两种不一样的情况!!然后就是自己在Java技术栈的广度和深度都欠缺太多,想进互联网大厂的话还任重道远啊。许愿Offer。



====== 分割线 ======

非常幸运,成功上岸拿到了offer,入职之后还需要继续加倍努力,冲鸭!!!
 
 
 
 
作者:Aurora1
链接:https://www.nowcoder.com/discuss/500617
来源:牛客网

二分查找、树的遍历
价格日历的表设计
八个球1个球最重怎么称重2次找出来
接口deFault设计有啥用
G1收集器
spring三级缓存
mybatis拦截器
单例的枚举实现
聊天室表设计
封装继承多态
springboot
频繁YOUNGGC怎么查问题
怎么dump内存
JVM参数配置
线程池添加任务的流程
限流算法
聚集索引和覆盖索引
泛型与PECS
rxjava实现
 
 
 
作者:fongfiafia
链接:https://www.nowcoder.com/discuss/490951
来源:牛客网

今天面试了PCG直播中台,这里分享一下,并且记录一下问题,后续需要学习。背景:3年工作经验,1年java经验(别问,问就是转行。。)。另外此岗位需要转go语言
1、说一下hashmap
2、如果发生了hash冲突怎么办?(hashmap相当于是用了链地址法,还有其他方法,比如再hash,公共溢出区,开放地址法)
3、concurrentHashmap的实现
4、为什么1.8中concurrentHashmap不用segment了
5、线程池怎么实现复用线程的
6、多个核心线程去take阻塞队列中线程,谁能拿到了?(会答不上来,估计是CSA自旋抢夺吧。。)
7、线程池中的线程为什么不会被GC回收(我回答被线程池引用了,所有不会被GC,应该是这样。)
8、只重写hashcode,不重写equals会有什么问题,equals本质是什么
9、说一下TCP,为什么3次握手,为什么是安全的?我说了他的一些机制快速重传,快速回复,拥塞机制等等,面试官让我一一说明。
10、为什么udp不安全还要用呢?我说传输快,对于要求实时性的传输就可以用?
11、为什么视频用udp传输,丢了1,2帧没什么问题? 这个我扯到了屏幕的刷新率和人眼的识别频率。。面试官说也行吧。。过后去百度一下。
12、https说一下工作过程
13、说一下http报文结构,这个没记过。。
14、说一下get和post区别,我说了一个在url上体现,一个没有,面试官说还有吗,回答不上来。(get的请求附着在url上,post请求数据是在包体中)
15、说一下状态码(100 请继续 200 成功,301 永久重定向,500 服务器内部错误,404 找不到资源)
16、https就一定是安全的吗?我说不是对于比如跨域攻击和xss脚本攻击就没办法,接着问这两种网络安全你说一下。
17、用java来做socket链接,过程是怎么样的?这个我是真的没搞过,但是之前看过一点,但是回答的不太ok。
18、accept()做了哪些事情?
18、tcp是二进制传递的报文,接收端怎么知道读了一个完整的包了?
19、内存泄漏和内存溢出,分别什么情况会导致。
20、time_wait说一下,为什么要time_wait
21、客户端处怎么减少time_wait状态数量(会答不上来)
22、 为什么要有内核态和用户态
23、内核态和用户态只是一个标志吗(应该是我上一个回答让他以为我认为这两中状态只是个标志)
24、32位和64位具体是哪里不同
25、进程和线程的区别
26、进程之间,线程之间的通讯方式
27、一个进程能够创建多少个线程(这个不知道。。)
28、类不同的类加载器加载同一个类,最后几种类,怎么判断这两个类是不一样的(这个我不太清楚。。我估计是方法区的标志不同)
29、spring中bean的生命周期
30、bean是什么时候消亡
31、怎么分析的慢sql(因为简历有写)
32、建立索引注意什么(我回答要在常用的字段上建立索引。balabala,他说你说的都是使用方面,我就不知道还能说啥了。。百度一下)
33、说项目最大的难点是什么?
34、为什么用redis
35、redis的容灾你怎么做?
36、redis的主从复制是怎么实现的
37,redis的主从复制是同步还是异步的?他们延时多少时间(这个延时时间我不知道。。难道还能设置吗。。)
38、算法题:从日志中提取了一份文件,一共有10亿个数据,每行记录代表,这个用户访问的记录,因此一个客户可以有多条记录。求出前10个访问最多次数的用户。我回答:先遍历一遍把每个用户的次数算出来,然后排序,时间复杂度就是O(n)。

总的来说,问题能回答上80%,但是感觉和面试官没有太多火花。。总结了一下自己薄弱的地方主要是计算机系统方面,socket连接方面、http,tcp方面,毕竟不是本专业,诶,最近会深入学习一下。其他的,开始面试时候问了我java几年经验,我说一年,说完感觉氛围就不太对了。。给我感觉像是他们看错了简历,然后让我面试的。我的工作项目也没有牵扯到高并发和分布式,亮点不多。
posted @ 2020-05-12 17:30  _Phoenix  阅读(419)  评论(0编辑  收藏  举报