2020年5月社招java面试题总结

题目来源:阿里、美团、滴滴、快手、小米、拼多多、58同城、百度

一、集合框架

二、多线程

  • 锁。synchronized底层原理、锁优化(自旋、锁消除、轻量级锁、偏向锁等)、锁膨胀的过程;reentrantlock底层原理、volatile作用以及禁止指令重排底层原理、aqs原理、什么是cas、公平锁和非公平锁实现;reentrantlock与synchronized区别;ThreadLocal内存泄漏
  • 线程池。 线程池有哪些参数、提交任务到线程池的过程(没有达到核心数就创建,否则加入队列,队列满了就判断最大线程数,没达到继续创建,否则拒绝策略)、拒绝策略有哪几种、在哪些场景用到过线程池以及参数是怎么设置的
  • 手写代码。写一个死锁、写一个多线程1+2+...+100

三、jvm

  • jvm内存结构
  • 垃圾收集过程、gc roots、什么时候触发young gc什么时候full gc
  • cms的垃圾收集过程
  • 对象进入老年代的几种方法
  • jvm调优
  • 类加载的过程、双亲委派机制、怎么打破双亲委派

三、Spring

四、MySQL

五、Redis

  • 有哪些数据类型、每种数据类型的场景、string类型底层结构、zset类型跳表原理
  • 过期删除策略、缓存淘汰策略、LRUCache
  • AOF和RDB
  • 主从同步
  • 集群投票过程、gossip协议
  • 插槽、一致性哈希
  • pipeline原理
  • 缓存雪崩、穿透、击穿、什么是布隆过滤器、一致性
  • redis分布式锁有什么问题、zookeeper分布式锁为啥比较好、redis和zookeeper分别实现了cap中的哪两个

六、其他

  • 系统设计朋友圈 
  • 100个热度最高的短视频,怎么设计高并发排行榜系统,怎么设计每个时段更新的排行榜
  • 设计一个评论系统
  • 写一个字符串转double的方法,不能使用parseDouble()等方法。
  • 给一个二叉搜索树的先序遍历比如 [5,3,2,4,6,7],重构二叉搜索树。思路:第一个节点是根节点,小于根节点的属于左子树,大于根节点的在右子树。递归处理左右子树。
  • 给定一个非递减数组,查询一个目标值第一次出现的位置。比如数组[1,1,2,3,3,3,4,5],查找3第一次出现的位置。思路:二分查找,若mid的值等于目标值,则判断mid-1位置的值是否也等于目标值,若等于则继续进行左边的二分查找。
  • 整型数组先递增后递减,找出最大值 [1 2 3 5 9 6 3 1]。思路:二分查找,找到中间的一个值,若中间值大于左边小于右边,继续在右边二分查找;若中间值小于左边大于右边,在左边查找。
  • 请设计一个算法完成两个超长正整数的加法。
  • 合并两个递增链表,合并k个递增链表
  • 升序数组求最小绝对值 [-9,-3,1,6,8,21,222]
  • 机器人mxn方格,每次只能往下或右走一步,有多少不同的路径
  • 设计一个先进先出队列,可以返回最大值
  • 在乱序的数组中找到第n大的元素。
  • 两个有序数组求最小和,能否相加需要根据函数判断canAdd(a[i], b[j])
  • 0
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值