9月面试基本结束!总结下阿里、腾讯、京东的Java面试题

前言:金九银十过去了一半 , 很多朋友也基本都收到了大厂offer , 今天为大家整理下目前大厂问到的面试题 , 也希望大家都能够收获心仪的offer!
9月面试基本结束!总结下阿里、腾讯、京东的Java面试题文章插图
阿里篇:HashMap的数据结构——引出Java7跟Java8的区别
在什么情况下会做一个链表到红黑树的转换
除了数据结构之外 , Java8跟Java7在HashMap上还有什么不同
扩容的过程 , 在什么情况下会扩容
扩容机制中的capacity初始值为什么是16 , 可不可以自定义成15 , 为什么一定要是2的指数次方
简单介绍一下hash算法 , 它的核心性能 , 或者说判断一个hash算法好坏的指标是什么 , indexFor()函数的实现
HashMap为了解决什么问题?——引出哈希碰撞
介绍ConcurrentHashMap的数据结构
ConcurrentHashMap可以支持多少并发线程
ConcurrentHashMap属于JOC下的一个类 , 对JOC这个包的了解
是否用过synchronized , 之前是否碰到过并发问题 , 怎么处理
在Java技术栈方面 , 有没有比较擅长或者深入了解的点 , 是否从源码上看过一些东西Netty原理介绍下 。
了解过NIO,BIO,AIO么?介绍下异同 , 代码中如何使用?
分布式锁用过么?用什么函数?什么使用场景?
能介绍下垃圾回收机制么?
redis的数据结构介绍下 。 项目中用过哪些?什么场景
幂等性是什么?如何保障?
交易系统中的数据一致性咋保障?
数据库

  • 对MySQL了解多少——引出必问知识点(划重点!!!事务和索引)
  • MySQL用的隔离级别是什么 , 这个隔离级别下会出现什么问题——引出数据库的并发问题
  • MySQL使用这种隔离级别时 , 是如何解决幻读问题的(引申 , 理解其他并发问题的解决原理)
  • MySQL的调优机制 , 主要是哪些方面的调优——引出索引
  • 在MySQL的InnoDB这个存储引擎下 , 聚集索引(或者聚簇索引)和非聚集索引这两个概念
  • MySQL中的索引是用什么数据结构存储的——此处应该引出B+树
  • 为什么通过索引查询速度会更快一些——此处应该引出二叉树算法
二轮:
  • 自我介绍
  • 项目中的mongoDB使用场景是啥?如何部署的?怎么保证高可用性?
  • JVM的内存结构能介绍下么?
  • cms和G1的优缺点?什么时候发生FULL GC?什么时候stop the world!
  • 什么样的对象能当根节点?
  • 一个类 , 两个函数 , 一读一写 , 写函数加synchronized , 读函数还用加么?voliate关键字啥作用?
  • 数据库设计时 , 主键咋设?自增好还是非自增好?为啥?
  • mysql的锁类型介绍下
  • 线上CPU 100%了怎么查?
  • 写个算法 , 给一个数字 , 一个单调数组中 , 方法返回数组中第一个大于给定数字的下标 , 如果没有 , 返回-1 。
三轮:
第三轮就是比较深度的问题了 , 都是结合业务谈谈自己的程序思想 , 如果没有一定的技术和开发经验这个是回答不完整的
  • 如何实现一个高效的单向链表逆序输出?
  • 已知sqrt(2)约等于1.414 , 要求不用数学库 , 求sqrt(2)精确到小数点后10位
  • 给定一个二叉搜索树(BST) , 找到树中第 K 小的节点
  • LRU缓存机制
  • 关于epoll和select的区别 , 以下哪些说法是正确的
  • 从innodb的索引结构分析 , 为什么索引的 key 长度不能太长
  • 给定一个链表 , 删除链表的倒数第N个节点 , 并且返回链表的头结点
  • 如果让你设计一个通用的、支持各种数据库秒级备份和恢复的系统 , 你会如何设计
  • 如果让你来设计一个支持数据库、NOSQL 和大数据之间数据实时流动的数据流及处理的系统 , 你会考虑哪些问题?如何设计?
  • 给定一个整数数组和一个整数 , 返回两个数组的索引 , 这两个索引指向的数字的加和等于指定的整数 。 需要最优的算法 , 分析算法的空间和时间复杂度
  • 假如给你一个新产品 , 你将从哪些方面来保障它的质量?
  • 请评估一下程序的执行结果?
腾讯篇: