momenta历经艰辛终于面到java的组了 1.自我介绍 2.实习拷打 3.mysql有什么引擎 4.这些引擎有什么区别 5.为什么inodb用最多 6.对索引的理解 7.索引底层结构 8.聚簇和非聚簇索引区别 9.B+树索引和hash索引区别 10.为什么现在还是不咋用hash索引 11.spring核心注解 12.spring配置加载顺序 13.spring源码的设计模式有啥在哪用到了 责任
自我介绍 拷打项目(40min) 选一个自认为最满意的项目,先简单介绍一下。顺着项目考察的点如下 redis: 若大量并发请求一个不存在的数据(缓存穿透)怎么解决? 布隆过滤器的原理是什么? 布隆过滤器的01数组发生哈希冲突怎么办? 多线程: 常用的线程池类有哪些? 线程池的核心参数有哪些? 线程池工作流程? spring: 循环依赖如何解决? A中有B,B中有A,给A加上@Lazy之后,B就能正
3a 第一题:字符串(操作1:字符串的第一位移到最后一位,操作2:某个位置的字母为任意字母)求最少操作使字符串变成回文串 #include <iostream> using namespace std; int n; string s; int solve(int pos){ int ans=0; for(int i=pos;i<(pos+n +pos)/2;i++){
攒人品攒人品攒人品 1. 100% 2. 100% 3. 100% 4. 5% -> 10% (使用特殊值最高到10%) 5. 100% 前三题总体来说都不难,用暴力都能过,就是不知道暴力法会不会降低面试官的评分 第四题如果有过的朋友不知道能否麻烦请教一下,实在想不出来了 第五题和8.6号做过的小红书笔试类似,思路也很相似,最后幸运跑通
一个小时。 自我介绍 三个项目你选一个讲 项目相关: 如果qps为一万的请求打到后端,怎么解决 哪些地方用到了锁,锁的是什么 怎么解决超卖 redis里存了什么,商品信息?还是只有库存,用了什么数据结构 做了哪些结构优化,拆分服务不会开销更大成为负优化么 乐观锁 悲观锁 为什么wait notify这些不写到Thread类里,而是写在Object里 线程池参数 线程池线程数一般怎么取 为什么2n+
一面 问redis项目和具体实现 redis为什么快 缓存击穿-逻辑过期,缓存空值 怎么查找一个key是否是热点key redis分布式锁怎么做 http有无状态,怎么实现保存状态? cookie安全问题,跨域 https,对称与非对称的性能 数据库四大特性,分别怎么实现的 常见隔离机制,怎么实现的 mysql索引结构 为什么b+不哈希 写一个简单sql 有个表:age,score,name,找每
一个半小时 八股很少,感觉面试官很喜欢问优化问题,看起来比较严肃,但我不会的问题他都会给我讲一下答案/思路,总体而言感觉学到很多 介绍项目: 根据项目中的点发散思考+优化思路 1.布隆过滤器:怎么优化会没有删除问题,我说了两种思路 2.rpc的通信过程:如果用tcp这种流式通信协议,你觉得在反序列化过程中应该怎么解析(怎么组装+解析类名方法名) 3.介绍了一下哈希一致性算法 Mysql部分: 你知
进程和线程区别,进程间如何通信? 线程切换成本高原因,线程上下文包含哪些? tcp和udp区别,已经如何选择? 数据库事务,索引理解? mysql 数据库事务回滚如何实现? redis 数据结构、集群数据分配、过期删除? 线程安全、不安全如何理解? java线程池核心参数设置,任务执行流程? 乐观锁、悲观锁怎么理解,如何选择? java常用数据结构? spring aop 理解? 了解哪些设计模式
40min 1.jvm调优问题 2.hashmap冲突怎么造成的? 3.mysql索引,全文索引,10G数据,8G内存怎么整?(没听懂问题) 4.es的api,构建bsl 5.springboot自动装配 6.kafka怎么生产怎么消费? 7.问项目,项目涉及哪些实体,又问业务流程 8.项目难点
问的很深,直接把我搞得现原形 算法 判断只出现一次的数字+优先队列 没问项目 MySQL八股 锁 事务 spring八股 自动装配 微服务 rpc的原理 分布式锁 setnx 分布式事务 没用过 反问: 面试过程有哪些不足 回答:广度还行,深度有所欠缺,建议多看看源码 12.05 17:19打电话说过了,约二面
一面 11.12 项目 AOP原理 让你设计一个上报系统会怎么设计 如果上报接口的QPS特别大该怎么解决 集合的接口 LinkedHashMap LinkedList于ArrayList区别 线程池的参数以及各自的作用 ThreadLocal是什么, 怎么使用的, 主线程的ThreadLocal如何向子线程的ThreadLocal传递数据 Redis数据结构 字符串原子自增的API, 分布式锁的A
60min 感谢你的时间 1. 自我介绍 2. 进程和线程的区别?为什么线程切换消耗资源小?进程和线程是怎么来使用多核CPU的? 3. 虚拟内存 4. 手机下单流程的网络请求过程?为什么是三次握手不能是两次?世界上这么多机器是怎么知道我们的目标服务器在哪里? 是要知道所有人的MAC地址然后去匹配吗?连接断开的过程?没有第四步会怎么样?TCPUDP的区别 5. HashMap的实现?红黑树的好处?
八股 -STL中的数据结构 -vector如何实现? -vector删除一部分数据,如何回收掉? -声明vector<int> a,在内存会分配什么空间? -函数内部声明vector<int> a,内存分配的位置?push元素时,栈指针如何变? (以上均考察vector的模板类实现) -map? -unordered_map 查找过程? -unordered_map链表存储时,每个节点存放内容?
1. 为什么选这专业 2. 什么是监督学习什么是无监督 3. 损失函数 4. ArrayList LinkedList 区别,插入复杂度,删除复杂度 5. 讲下HashMap 6. 讲下ConcurrentHashMap 7. 讲下阻塞队列 8. 讲下线程安全的List 9. 讲下JVM内存区域 10. @Autowired @Resource 11. 类加载器过程 12. 如何避免全表扫描 13
二面就不同了,二面的面试官不是做golang的,于是全场拷打八股,其实基本也都答出来了,算法也写出来了,不过还是挂了,可能是横向比较比不过别人 1. 为什么tcp握手需要三次而挥手需要4次 2. 内核态用户态 3. 虚拟内存相关 4. 中断流程 5. 进程间通信 6. 系统调用原理 7. GC 8. 内存逃逸 9. 设计模式..比如装饰器模式 10. 如何防止缓存穿透 11. 如何实现负载均衡 1