***尚未成功,同志还需努力!(内附面试遇到的问题)
整个秋招的过程,自己准备的其实也很匆忙。。。
7.11-10.08开始在咖啡厂实习,体验感觉还是挺不错的,也学到了很多东西,业务线比较新颖也认识了不少新朋友。
首先实习地点是在岛内,而我在岛外住宿,所以每天要赶公交车,六点半起床,吃个早餐,七点出发从学校坐快6brt到前埔站,换乘401公交到波特曼财富中心,然后晚上8点回来,坐949到宿舍已经晚上九点多了。。一周六天,真心崩溃。。
但是实习起来人难免会产生惰性,眼看秋招就开始了,对于应届毕业生的我来说,深知校招是大学生进入互联网大厂的重要的机遇,错过之后以后只能以0经验的社招身份去找工作,所以从5月份开始,我把主要的经历放在了准备秋招的学习上。
其实八月初大厂的秋招就已经陆陆续续开始了。。。。而我也在这中间一直犹犹豫豫纠结中。。。投了,又怕自己因为实习无法认真准备校招而过不了面试。。不投,又怕没有岗位hc….
8月底….实在无法继续欺骗自己了,开始广投简历了,简历刚开始做的超级烂。。。基本上也是边投递边修改的状态,
从第一个版本开始…项目经历,项目介绍,个人技能介绍等….一步一步修改,直到我最后一次投递,再去看的时候,已经是第十个版本了….可以说,感觉简历真的很重要,简历关过不了,你连笔试的机会都没有,哪怕是收到了笔试,也会因为岗位不匹配的原因无法收到面试。。
挂在简历上的就有: 猿辅导、Shopee、网宿科技、thoughtworks等厂。。
然而还有很多厂挂在了笔试上。。。
担心自己错过了笔试时间,自己做了个秋招的表格来记录自己的笔试时间。。。。
再到后面收到了整个校招的第一次笔试,京东的笔试,当时刚从实习公司下班回去,因为听说有台风可能要封桥,所以就提前下班了。回去之后,没有吃饭,去面包店买了一包面包切片,然后就跑到星巴克做笔试了,当时还一直担心做笔试的过程中星巴克会因为天气原因提前关门,所以还跟店员反复确认关店的时间…….点了一杯星爸爸的山雾乌龙茶。。。无形中还跟瑞幸的做了比较。。吐槽了一下味道差不多,星爸爸的价格确实贵而且杯量很小。。但是为了在别人这里做笔试。。还是心痛着点了一杯。。
做完笔试一脸绝望…...一直在后悔自己为什么没去找内推。。。一度以为凉了。。。。
没想到。。后面收到了面试。。。。。
但是面试地点在广州。。
怎么办?去还是不去?
"好不容易有一次面试的机会,干嘛不去",其实这是我的第一家面试。。。所以稍作犹豫,买了去广州的高铁票,参加了秋招的第一次现场面试。
面试地点是在一个四星级酒店,当时还感慨东哥有点豪气。。。在华南理工旁边,旁边一堆985的硕士。。。瞬间感觉到自己是个菜鸡。。。。
一面聊了40min左右,感觉自己表现得还算可以,和面试官聊得比较开心,讨论得大多数是基础知识,但是问得很全面,最后面试官问我想不想去他们部门,我当然说愿意啊。。我说很乐意去他们部门。。。 然后他当场就给我说不让我走了,留下来准备二面。。
然后心怀忐忑回到了自己住的酒店,开始了紧张的看面筋复习。。。。但是晚上被在网易实习的舍友拉出去搓了一顿,果然还是得浪。。。。。
第二天下午二面,面试官应该是个部门总监级别的,看发量就知道。。。。很高级
二面主要是压力和能力面。。。问得基础知识比较少。。主要是对一些实际场景进行深入的分析探讨。。中间穿插着知识点,然后他会抓住一个点深挖。。一直往底层问,一直问到你答不出来。。
所以感觉二面没有固定答案,面试了大概45min,感觉心里没有底,一度以为凉掉了。。
回酒店之后,自己查了下状态。。上面显示hr面待安排。。才知道复试通过了。。
但是听说hr面还会刷掉不少人,所以心态继续佛系。。。
23号HR打来了电话,是上海的电话,一度让我以为捞我的部门在上海,聊了大概有十多分钟就结束了。。
到晚上查状态,hr面已经完成。。。。。
这才知道自己现在到东哥池子里了。。。。加了京东的开奖群,突然发现池子里有一千多人。。瞬间害怕。。因为听说还要排序录用,自己学历也不占太大优势,所以没抱希望。。。
在池子里泡到了10月9号,收到了一个offer审批邮件。。
但是看到开奖群中说收到这个邮件还不稳。。因为还有不少人在审批环节因为排序录用被刷掉了然后收到了感谢信,所以心态继续佛系。。。继续准备面试。。
在这段时间内可以说收到了不少的面试。。
小插曲是在我去广州当天早上做了金蝶的笔试,然后我在广州期间收到了金蝶的面试,回来的动车上收到了复试,最后到hr,一周之内拿到了金蝶的offer,效率还挺高。。
后面的面试有
1.深信服测开岗,我感觉岗位不是特别符合,所以拒绝了。。
2.亚信科技 要去福州面试,本身对这家公司没太大感觉,也没去。。。拒绝了。。
3.字节跳动 一面1h20min左右,聊得挺不错的,晚上收到了二面邀约, 二面前面基础知识部分聊得也还可以,但是遗憾的是挂在了最后的一道算法题上,唉。。。果然还是自己算法太菜了。。
4.快手 一面50min左右,二面50min左右,同样挂在了手撕算法环节,当时那段时间没刷题真的一点手感也没有。。。
5.CVTE 本以为自己通过了,结果到hr突然说后端hc没有了,也很迷, 果然是不想收人,hr面挂。。。
6.腾讯实习,感觉流程是走得差不多了,一面问的超级细,二面稍为聊点人生,还差总监面和hr面,但不知是否有转正机会
7.海康威视(杭州), 去现场面的,面试通过了,当天晚上收到了谈薪签约会的邮件,过去了,感觉薪资不太合适,考虑到网上的黑料。。拒绝了。
8.中信银行信用卡(深圳) 地道的国企,开会第一天感受到了浓浓的国企氛围,面试通过了,评分好像还不错。后面收到邮件去谈薪资,给的薪资还算可以,但是刚毕业真心不喜欢国企的安稳生活,所以还是想去互联网学习几年的。。。
9.在高铁上收到了京东的offer letter, 心中还是纠结了下是去中信还是京东,因为部门本身比较吸引我吧-京东商城的数据与技术中台,加上想要一个比较大点的平台,还是选择了和东哥做兄弟。。
可以说整个秋招,全程佛系吧。。。。。在准备秋招的过程中,看到了自己很多准备不足的地方,可以说是边面试边查缺补漏了。。。
最后再分享一下面试中主要遇到的问题吧。。
一、JAVA基础相关
1.java的基本数据类型有哪些,各占多少字节
2.抽象类和接口的区别和关系
3.深拷贝浅拷贝
4.重写hashcode和equals
5.java常见的集合类,Collection和Map
6.HashMap的底层源码,HashMap的扩容方式,扩展为什么是到2的n次方,处理hash冲突的方式,hashmap的put和get操作分析,多线程情况下hashmap的线程安全问题,形成死循环环路,hashmap中红黑树和链表的转化。
7.ConcurrentHashMap的源码,简要叙述一下ConcurrentHashMap的实现,jdk1.7是segment锁加同步,jdk1.8之后用了synchronized和cas
8.ReentrantLock源码,可重入锁的实现,从而引发到AQS的讨论
9.JAVA的内存模型,可见性原子性的实现保证
10.volatile关键字的底层实现
11.synchronized关键字的底层实现,synchronized关键字和reentrantlock的区别
12.多线程交替打印A,B,C
13.线程池的各个参数以及场景分析(常问!京东,CVTE,腾讯都有问这个),里面的拒绝策略到底有哪些?怎样去实现一个阻塞队列
-
IO与NIO以及并发的理解
-
常见的设计模式,单例模式(6种),工厂模式,装饰器模式,***模式,这些基本的设计模式可能让你手写
-
jdk动态***和cglib动态***的区别,SpringAOP的实现
-
Spring容器初始化的流程,bean的生命周期,这一块如果你看过源码会好很多
-
SpringMVC的执行流程分析,看过源码分析更好
-
Spring的事务控制,可以扯到ThreadLocal的相关实现
-
Spring常见的注解,自定义注解的实现
-
红黑树的基本特性,红黑树怎样保持平衡的
22.java代码分布式锁的实现,用redis的setnx 怎样保证原子性,如何用zk实现分布式锁?
-
JAVA异常,自定义异常,项目中如何处理异常的
-
java8的新特性
-
Spring IOC的实现原理
-
jdbc连接数据库的过程
-
信号量的使用,AQS同步组件的使用
-
什么是线程安全
-
ArrayList、LinkedList、Vector区别
-
String、StringBuffer、StringBuilder区别
-
类的实例化顺序
-
java序列化反序列化
-
io流的分类和使用,java io使用了哪些设计模式
-
java反射和泛型
-
java线程的生命周期和状态转化
-
实现多线程的几种方式
-
创建对象的几种方式
二、JVM相关
1.JVM的内存模型,程序计数器, java虚拟机栈,本地方法栈、方法区、堆
2.堆的内存分配,年轻代,老年代,然后年轻代分为Eden区和From、To区
-
Minor GC 和Full GC 在什么情况下会触发
-
JVM参数的配置,如何配置老年代新声代的比例大小,晋升年龄,如何打印虚拟机的参数信息
-
利用什么工具查看java的内存信息
-
GC Roots 有哪些
-
垃圾回收算法,分代收集、复制算法、标记-清除、标记整理清除
-
垃圾收集器的实现,常见的老年代和年轻代的收集器
-
Stop the world的理解
-
G1垃圾收集器和CMS收集器的垃圾回收过程
-
类加载器双亲委派模型对类的加载过程
-
对象的内存布局,对象头的格式
-
常见的OutOfMemoryError异常
-
Java对象的引用类型,强引用、弱引用、软引用、虚引用
三、mysql相关
1.innodb和myisam存储引擎的区别
2.mysql索引的底层数据结构,b+树的实现
3.binlog和redolog undolog
4.一条查询语句或者更新语句的执行过程
5.查询优化,explain的使用,explain结果的分析
6.B+树索引和Hash索引的区别
7.mysql多表查询的原理
8.mvcc的原理和基本实现
9.mysql常见的锁,x锁,r锁,gap locks, next-key locks
10.mysql对并发事务的处理,脏读、幻读、不可重复读是怎样处理的
11.事务的隔离级别和事务的四大特性
12.mysql中如何避免死锁
13.mysql与redis如何保证数据一致性
14.最左前缀匹配原则
15.mysql的行记录格式,聚簇索引和二级索引的区别,回表优化
16.悲观锁和乐观锁
四、redis
1.redis常见的数据结构
2.跳表的实现,底层结构
3.跳表和红黑树的区别,查询时间复杂度
4.cow和fork
5.aof和rdb
10.reids 集群相关
11.用redis实现分布式锁
12.用redis实现延迟队列
13.用redis实现消息队列
14.redis的使用场景
15.缓存穿透与缓存雪崩,解决方案
16.redis的单线程I/O多路复用模型,为什么不使用多线程
17.为什么redis是单线程的效率还这么高
18.redis的数据过期策略和数据淘汰策略
19.redis集群如何扩容
20.redis主从同步
五、消息队列
1.常见的消息队列有哪些?rabbit mq、kafka、rocket mq等。。都各自有哪些特点
2.消息队列的主要功能?解耦、异步、限流、削峰
3.消息重复怎么办?怎么防止重复消费?
4.消息丢失怎么办?
5.消息队列的基本使用,订阅发布模型
6.如何保证消息队列的高可用
7.消息队列的组成角色
六、网络
1.三次握手和四次挥手的过程以及各个阶段的状态变化
2.为什么要进行三次握手和四次挥手
3.OSI七层网络协议模型,以及每一层的作用
4.tcp的实现,tcp首部的格式
5.滑动窗口协议,拥塞避免算法
6.SYN攻击,怎样解决
7.keepalive
8.tcp四次挥手哦过程中,TIME_WAIT和CLOSE_WAITE的区别,服务器TIME_WAIT堆积怎么处理
9.tcp和udp的区别
10.socket编程相关的知识,相关参数怎么设置,注意点有哪些
11.http协议的理解
12.get 和post的区别
13.前端到后端请求过程的优化
14.http的常见状态码
15重定向和转发
16.Cookie和Session
17.https的实现(重要),https还存在哪些安全隐患
七、算法
面试算法比笔试算法简单些,算法就刷leetcode和<<剑指offer>>吧。。我是把剑指offer刷了两遍然后lc刷了两百六十道题目左右,一定要及时复习,不然手生很难受
常见的一些排序算法一定要熟悉
八、其他
1.会问你简单的linux的基本命令和操作
2.怎样查看一个进程的信息等
3.怎样避免死锁
4.死锁产生的条件
5.用户态和内核态
6.进程和线程的区别
7.信号量
8.怎样处理分布式事务
9.分库分表,数据库垂直拆分水平拆分
10.海量数据处理,排序
11.dubbo源码相关
12.netty源码相关
13.lucene和solr,倒排索引
14.限流算法
15.一致性哈希
16.除此之外还会问你一些智力问题,就当脑筋急转弯去思考就行啦。
卒。。。。上面大概就是我面试中遇到的一些问题
——————————————手动分割线-------------------------------------------------------------------------
然后给大家推荐一下我看过的一些书籍吧。。
《深入理解JVM》、《Head First设计模式》、《JAVA并发编程的艺术》、《大型网站技术架构》、《从根上理解Mysql是怎样运行的》、《Redis设计与实现》、《剑指Offer》、《图解HTTP》、《Spring源码深度解析》、
《Think IN JAVA》、《TCP/IP协议详解 卷I》、《Spring实战》、极客时间《数据结构与算法之美》、极客时间《深入拆解Java虚拟机》、极客时间《mysql实战45讲》、《计算机网络谢希仁》
寒冬之际,整个秋招竞争太惨烈了,想想自己每天实习完下班做笔试到十点然后打车回学校的经历真是惨不忍睹。还好没放弃任何一次机会。。。
***尚未成功,同志还需努力
最后祝大家都能找到自己满意的工作!考研的也都顺利上岸!!!
#学习路径##Java##书籍推荐#