- 一面(一个小时左右)
• 自我介绍
• jdk中使用的设计模型有哪些
• HashMap底层实现原理
• 如何进行put 的
• 如何计算hash值的
• 什么时候进行扩容的,怎么进行扩容的。
• 扩容会出现什么问题(我问了一些是在多线程下的扩容吗?)
• 想获得线程安全的HashMap有哪些方式
• ConcurrentHashMap 是如何支持并发的。
• 一般创建线程的几种方法,
• 线程池创建的方法有哪些(线程池的主要参数),如果没有达到设定最大线程数,等待队列满了如何进行操作
• MySQL有哪些数据引擎
• InnoDB 和 Myisam 的区别
• InnoDB是通过什么支持事务的
• 事务是通过什么回滚删除插入失败的数据
• MVCC是通过什么实现多版本控制的
• 聚集索引和非聚集索引的区别
• 索引的实现方式有哪些
• B树和B+树的区别
• Redis 支持的数据结构
• ZSET 数据结构是什么,跳表的数据结构
• redis 的持久化方式
• 浏览器输入URL到页面展示经历的过程
• TCP的三次握手
• TCP是通过什么保证连接可靠性的
• 拥塞控制是什么
• HTTP和HTTPS的区别
• 介绍一下IO模型(BIO和NIO)
• IO多路复用,select和epoll 的区别
• 负载均衡了解哪些算法(一致性hash)
• 一致性hash 的好处,如果节点比较少会出现什么问题
• CDN有了解过吗
• 算法题 剑指offering 给一个数组和一个目标值,找到数组中 存在的下标。
场景题:海量评论系统,实现以下功能 提交评论,查看热门评论,查看最新评论,查看我的评论。从数据库,缓存的应用、服务器,到前端如何实现。
字节二面(1个小时)
○ 自我介绍,介绍自己做的项目
○ 是怎么学习的java,是看了哪些书,问为什么看这本书,有什么感悟?
○ 有人说JVM拖累了java效率,你是怎么理解的,JVM的设计理念有哪里让你感觉比较惊艳,感触比较深?(面试官说JVM的推出是为了跨平台,JVM何去何从,怎么演变,及变化趋势)
○ 写一个自己认为比较完善的单例模式?我写了一个静态内部类,然后面试官看了之后说想要一个懒汉式的单例模式,我写了一个双检验的单例模式,面试官问为什么要这样写?不考虑效率的情况下怎么做比较简单呢?
○ 问项目中有用到什么其他设计模型
○ 问Reactor 模型有了解吗?接着问IO多路复用中select 、poll 、和epoll 之间的区别是什么?Select 和poll 之前的区别是什么?
○ 问事务隔离级别是怎么实现的,说一下MVCC是什么样的机制。它是怎么管理这些版本的,版本是什么时候被创建的,什么时候被回收。
○ 给了一个算法题,剑指offer上的正则匹配。接着就是反问环节。这一轮的面试官,说话方式很喜欢,在回答过程中遇到不会的,会给你引导。
字节三面(1个小时)
○ 自我介绍
○ 问项目中的细节。
○ 介绍一下java垃圾收集器
○ mysql的事务隔离级别,默认是什么隔离级别
○ 可重复读是怎么解决幻读的问题的
○ 什么是间隙锁
○ Int 型的数组找其中的某一个数,有哪几种算法,(提示用时间换空间,但没有想出来)
○ 算法题,给一个链表,k个节点翻转,如果不满足k也翻转。接着就是反问环节了
这一面回答的不是特别好,面试结束没多久就收到感谢信了,好好准备秋招吧,还是自己太菜。
全部评论
(10) 回帖