58&虾皮shopee&字节&美团社招面经
一年Java社招面经汇总。
58同城
- 自我介绍
- 项目怎么设计的?
- 工作中数据表怎么设计?
- C端接口大流量怎么处理?
- 事务的ACID,怎么保证原子性,怎么理解隔离性?
- 索引有哪些?数据库中数据怎么存储的?B+树了解多少?
- 怎么排查慢查询?explain有哪些字段?
- 项目中哪些地方用到redis?
- redis的过期机制了解过吗?
- redis有哪些数据结构?
- 跳表了解吗?ZSET的数据结构一定是跳表吗?
- redis的主从如何同步数据了解吗?从节点何时可用?
- es的参数配置怎么设计的?数据量多大?如何监控es
- 对一个无序的栈进行排序,得到一个有序的栈
- 项目中用户规模大不大?遇到的困难?
- JVM垃圾回收了解多少?
- 消息积压怎么处理?
- 单库单表,如何平滑过度到分库分表?
- 有了解最新的垃圾回收机制吗?
- 职业规划?
shopee
- 列出所有的稳定排序和不稳定排序
- 讲一下快排,怎么选划分点?时间复杂度是多少?
- 堆,栈,队列怎么实现的?
- 乐观锁,悲观锁,以及应用场景?
- 介绍一下索引?B树和B+树的区别?
- redis数据结构有哪些?
- ZSET怎么实现?member和score可以有重复值吗?
- linux怎么查看磁盘占用情况?
- 一个文件里面有1000万个ip,如果求出现频率top10的?如何用shell脚本实现?
- http断电续传怎么实现?
- 说说dns?除了查ip还可以查什么?都有哪些类型的记录?
- tcp握手说一下?序列号怎么变化的?
- tcp与udp的区别?B站上的视频使用的是tcp还是udp?
- 浏览器地址栏输入网址到看到页面的过程中都发生了什么?
- 设计一个分布式系统来求PV、UV?每天要求一次怎么办?每次要求最近24h的怎么办?往分布式系统里面横向扩充一台机器会发生什么?
- 给你n个面额的硬币,给你一个amount,求凑出amount的最少硬币数,其中n<=12,amount<=10000,硬币面额大小不限。
- 给你n个数,求从1开始,最小的没有在数组中出现的数是多少,每个数大小不限,n<=1000000
- 项目难点?如何保证可扩展性?
- 给你个n个数的数组,原地往右偏移x位,要求空间复杂度O(1)
- 有哪些offer? offer选择会考虑哪些因素?哪里人?和同事合作出现分歧怎么办?介绍一下项目?
字节跳动
- 多数据源,数据同步出现问题怎么办?
- mysql主从服务器,数据同步过程有了解吗?
- 说一说物理内存与虚拟内存?
- 空指针异常和内存缺页中断有关系吗?
- 介绍一下主要的垃圾回收算法?
- 公平锁与非公平锁有了解吗?
- 介绍一下锁升级?
- 线程池有哪些参数?
- mysql的MVCC了解吗?
- 索引了解吗?
- B+树?
- mysql半同步了解过吗?
- redis常见数据结构?
- 跳表?
- redis过期机制?
- 什么场景永道消息队列?
- 如何根据ip地址查mac地址
- tcp发送请求后, 接收方网卡发生了什么?
- 网卡如何响应请求,往上面传数据?
- nginx负载均衡的策略?
- 旋转数组求最小值?
- redis中hash扩容怎么实现的?
- zset的数据结构是什么?
- 操作系统用户态内核态?
- io多路复用有哪些?
- 介绍一下cpu调度算法?
- 打开一个文本文件,修改里面的内容,这整个过程中操作系统干了什么?
- 了解哪些设计模式?这些设计模式怎么分类?
- 给n个数,不可重复取若干个出来,是否存在和为k的情况
- 一个由0和1组成的数组,最多可以把k个0改成1,求最长的连续为1的子串长度
- 代码上线后发现CPU使用率过高,怎么排查?
- 总共有6亿用户,每天有6千万活跃用户,限制1个用户每1天可以抢的红包个数,设计一个接口,输入参数为用户id,输出为布尔值,表示该用户是否可以抢红包?这里每天的抢红包数要求可以动态配置,接口qps为几百。
- 动态配置系统怎么设计?
美团
- 迁移数据怎么保证数据一致性?
- 一个业务流程,链路比较长,且涉及多个服务之间的通信,如果出问题怎么排查?
- es的内部实现?
- spring循环依赖怎么解决?
- 可重入锁?synchronized锁?
- java的内存模型?为什么volatile不能保证原子性?
- 索引失效的场景有哪些?
- 实现一下java中的atoi方法?