先自我介绍
项目介绍一下
平时在实习做些什么工作
------------------------------------------------------------------------
(闲聊结束,技术篇开始)
说一下ConcurrentHashMap (我说了1.7和1.8的实现)
每一个segment里面是怎么实现的?
ConcurrentHashMap比hashtable 好么,为什么?
treemap是降序还是升序
默认是升序?
Java虚拟机各个全部说一下?
static 变量存放在哪里的?
方法区
如果加了final,是在类加载的什么时候分配的
有父类子类的加载顺序是什么?
双亲委派好处
保证先加载JDK自带包
常用的锁有什么,实现,分别说一下?(我说了Synchronized,悲观锁,乐观锁,lock,cas,版本号)问了我分段锁没答的出来
数据库索引
为什么用b+树,b+树的好处是什么
更少的IO次数,效率高,范围查询快
数据库隔离级别
线程池
(其实好像还有一些,但是没回忆的起来了)
--------------------------------------------------
后面就是简单的聊了聊,技术方面只回忆了这么多,仅供参考。
给自己攒波运气
加油!
----------------------------------------------------
今天二面结束了
记录下记得住的题目
线程池的几种实现方式?用的是那个类?(真的惨系列)
CAP知道么?(不知道gg)
分布式的CAP理论?
讲讲zookeeper ?
数据库的主从?延迟了怎么办?
数据库集群
HTTP的整个过程?
zookeeper分布式锁什么场景下用?
智力题 25匹马 5个赛道 不能记录时间 找最快的3匹 最快用几次
算法题 一个数组基数的放左边,偶数的放右边,时间复杂度o(n),空间复杂度o(1)(快排的思路来解)
剩下其实还问了一些,脑子就记住了些印象深刻的题目。
慌的一批
求二面给过!!!
刚接到电话!过了,明天三面,加油加油!!!
-----------------------------------------------------
刚刚三面结束
绝对的大佬面 直接称呼我的名字 感觉还是很亲切的
整个人嗯 感觉层次完全不一样,感觉大于等于大佬级别
问我一些Java 基础知识 答出来了
linux 管道用过么? 用过,管道有大小么?.....凉凉
协程没答的出来,B树也不太熟,B+树懂一些
微服务深入讨论,dubbo深入讨论,完全自己是小白
最终结论 linux 不太熟 微服务这些玩意,也不是太好。简直了
最后的总结就是
菜 是 原 罪 !!!
----------------------------------------------------------
三面竟然给过了,很是开心,美滋滋,然后
刚刚HR 面结束
对着简历问了问,然后 问了问简历情况。
问了问面试官情况。
Emmmmmmmmmm 面试官小姐姐声音真好听
一面
1、自我介绍?
2、项目介绍?
3、select A from table where B=1 orderby C,如何构建索引来加速查找过程?
4、数据库事务?
一些操作,要么都执行成功,要么都不执行
5、Linux? ps? grep? 强行杀掉某个进程要怎么做?
ps -aux | grep xxx
kill -9 xxx
6、五层网络模型? 交换机那一层?路由器呢?路由器干嘛的?
交换机链路,路由器网络
7、TCP为啥可靠?
8、正则表达式是干嘛的?MD5是干嘛的?MD5可以解密吗?
不可逆
9、设计模式?工厂模式为什么不直接在类的构造函数里面定义?
10、实现有序二叉树的插入方法?(手撕)
11、10亿行32位无符号整数,找出第7亿大的数是多少?只给300M内存?
12、分解质因数?(手撕)
二面
1、简单问了个人情况。
2、const有哪几种用法?常成员函数?mutable?
3、重载和重写?
4、STL了解吗?
5、智能指针?
6、什么是进程什么是线程?
7、进程通信方式有哪些?
8、怎么保证线程安全?
9、设计一个红包系统?红包的分配在什么环节去分配?金额在发的环节去分配还是在抢的环节去分配?怎么随机分配?需要考虑哪些问题?
10、500个数组,每个数组有500个元素,从大到小排序好,找出前500个最大的数?
11、有什么想问的?
12、工作地点?
三面
1、自我介绍?
2、LRU的实现?(手撕)
3、操作系统了解多吗?为什么分用户态和核心态?
4、协程了解吗?
5、进程通信方式?各自什么特点?什么应用场景?
6、估算一个上班区域一天的营销额?(开放性问题)
7、你觉得你对未来的职位的兴趣点?
8、意向的工作城市?
9、有什么想问的?
一面:
1、53个人中,任选3个人至少有两个人生日相同的概率。
2、旋转数组找最小值?(手撕)
3、10亿个IP,取出频次出现最多的TOP10个IP?(思路题)
4、某进程创建了若干线程,这些线程不能共享的是?(选择题)
5、TCP的粘包问题有哪些解决方案?(选择题)
6、滑动窗口是用来干什么的?
7、soket调用接口?
8、网络库有用过哪些?
9、IP层如何找MAC地址?如果对应IP不在局域网呢?
10、网桥?虚拟设备对?
11、ARP攻击,ARP欺骗?
12、Linux静态库和动态库有什么区别?动态库的加载器是哪个?
13、glibc是干什么的?
14、常见的hash算法?
15、一致性哈希如何优化?
16、Linux常见的信号有哪些?
17、kill -9?进程组?Group ID和PPID什么区别?
18、有什么问题要问的?
二面:
1、自我介绍?
2、很大数组中找第K大元素?
3、项目相关?
4、比较擅长什么语言?脚本性语言?
5、socket编程?
6、三次握手?
7、UDP数据包长度多少?
8、研究经历?
9、最近看的书?
10、对Linux环境的了解?
11、进程的状态有几种?
12、http头部方法GET?POST?其他的有了解吗?GET和POST的区别?POST可以在URL中携带参数吗?
13、你觉得你优势的地方?
14、平时学习开发过程中遇到什么困难?
15、发表了几篇论文?
16、进程和线程的区别?线程池?
17、多线程要注意什么问题?
18、mysql有了解吗?
19、数据库少了某些字段,现在要让你加,你怎么办?设计上有没有考虑可扩展性?
20、cookie有存什么东西吗?
21、有什么想问的?
三面:
1、项目?项目难点?花了多久时间?
2、有了解哪些最短路算法?如果速度不够,你要怎么优化?
3、最近在看哪些书?
4、平时关注哪些技术?
5、进程与线程的理解?什么时候用进程什么时候用线程?
6、微信搜索附近的人怎么设计?
7、写个shared_ptr的实现?(手撕)
8、说一下平时的一些学习习惯?
9、团队沟通能力?
10、遇到的最困难的事情?
11、你有什么优势?有什么缺点?
12、服务器宕机?怎么排查错误?
13、对于OFFER怎么选择?考虑哪些因素?
14、有什么想问的?
昨天一天面了滴滴和小红书;下午睡醒后收到了shopee hr的电话,发波面经求好运求offer;
小红书面经:
一面:
说了自己在实习期间做的事情;
算法题:
1000万个的有序数集合查找数A如何查找(写了二分查找算法)
如果有重复的呢,查找数A的最后一个位置(二分查找一边逼近);
Redis的持久化策略 以及各自的优缺点;
Redis 写AOF文件的流程;
给一个二叉树,写出前序遍历和中序遍历,算法(根据前序和中序还原出这个二叉树);
其余的记不清了;
二面:
说了自己在实习期间做的事情;
Volatile
手写生产者消费者模式(先用wait和notify实现的,面试官不满意,后来重新使用了ReentLock);
AQS原理;
dubbo原理
Redis 缓存中存了1000万个key,统一在一个时间点过期,如何删除呢;
二面面试官贼好,给我把不会的扩展的都讲了;
三面:
二维递增数组查找数A(剑指offer);
问了我的项目,老实说自己在学校做的项目可以说有点水,但是已经尽力去答了(面试官不太满意),强力弥补自己的不足,找到突破点就进行输出;
讲了讲职业规划之类的;
后来hr告诉我三面没通过;
滴滴面经:(滴滴面的很深入,面试官对JAVA并没有怎么问,会一直追原理问下去)
一面:
说了自己在实习期间做的事情;
B+树,画一个B+树,讲一讲查找的流程,如果SQL要求倒序,怎么查;
联合索引在B+树怎么存的;
InnodB和Mysaim区别
4G数据,只有1G内存,排序;(说了外部排序,写了代码);
linux的一些命令(只知道一些常用的,不懂的说不知道);
二面:
讲了去哪儿网实习时用的Qschedule原理(只看过一丢丢源码);
zookeeper zab paxos raft协议
dubbo原理 Netty NIO Tcp粘包拆包
concurrentHashMap
缓存穿透 和缓存雪崩
布隆过滤器;
三面:
三面问的技术问题比较少:
主要问了我在学校做的项目,老实说;
问了在实习期间的收获
Innodb索引和Mysaim索引
索引优化