前言
9月基本要结束了,给大家分享一下大佬的经历, 给还没有上岸的同学打打气。
面试之前:
- 早投, 毕业前一年的春招就要开始, 投实习, 不管去不去, 都对秋招有帮助, 企业秋招提前批时都会主动找投过实习的同学, 有些公司还可以直通终面(如阿里),如果你错过了实习春招, 秋招一定要主攻提前批, 不用笔试, 且hc足. 提前批不行还有正式批机会
- 一定要找内推, 虽然不内推也能找到工作, 但是内推觉得能提高你成功的概率, 至少有助于帮你通过简历筛选, 避免简历机器过一遍之后就石沉大海
- 不要觉得自己很菜没准备好, 我之前一直陷入这个怪圈, 一看别人的面经, 就觉得自己是垃圾, 不配面试, 总的来说我的感觉就是, 实力是一方面, 运气也很重要, 知识是学不完的, 不同面试官关注的问题也不一样, 问啥都会, 不是我们凡人的目标, 尽量给面试官留下一种, 你很自信, 你很聪明, 你有潜力的感觉, 虽然你知道的不多, 幸运也可能落到你的头上, 比如你只有一个offer觉得自己很菜, 但是拿到了自己想要的offer, 看到一些比自己强的人还零offer就觉的太幸运了. 就算不信自己的实力, 也要相信自己攒的人品.
- 根据自己现有的技术栈去准备面试。避免在被问到时自己也答不上来,以笔者自己为例,因为近两年使用的都是SpringCoud技术栈,所以在准备面试的时候完全放弃了Dubbo、ZK一系列的东西。
- 既然你选择了要去尝试寻找新工作,那么就不要随便拒绝一个面试机会。因为有的时候,看似不是很好的机会,你去了公司,见了老板,听了HR的介绍,也许你会发现这是一个非常适合你的机会,这是一个非常有潜力的公司,你的未来上司又可能是一个非常好的老板,如果你拒绝了,你就失去了这个机会,找工作,要有一个开放心态,愿意尝试,愿意发现,给自己更多的锻炼机会,最终找到一份自己觉得最理想的工作。
- 得到了面试通知,就应该认真做好功课。公司的信息,岗位的资料都要认真查询,仔细阅读,行业的信息,竞争市场的状况,相关产品的信息,都要广泛搜集和研究,让自己对公司和行业都有一个大概的了解。
面试之前的准备做完了,面试问题该怎么办,正文开始。
腾讯面经
1.面向对象和面向过程的区别?
2.java为什么说它即是解释型语言,又是编译型语言。
3.java怎么弥补它单继承的特性。
4.java语言的三大特性。
5.怎么拼接多个string。
6.多进程和多线程的应用场景。
7.CPU密集型任务适合多进程还是多线程?
8.为什么进程的健壮性更好?
9.进程的同步机制,你在什么时候用。
10.向一个进程发出kill信号接下来发生什么?
11.共享内存的坏处。
12.你在什么时候捕获异常,捕获之后怎么处理。
13.深拷贝和浅拷贝,你在什么时候用?
14.java的包装类的了解?为啥要有包装类?
15.守护进程,它可以用来做什么?
16.多线程会出现什么问题?
携程面经
1.如何实现多态?并以面向对象的思想设计一个猫吃鱼的例子(写代码)
2.如何避免线程死锁?
3.synchronized关键字加在静态方法和非静态方法上有何区别?
4.线程有哪些基本状态,状态切换图画出来
5.解释一下IO阻塞?
6.用过哪些集合?
7.ArrayList和LinkedList的区别?
8.HashMap的底层原理? 在key相同的情况下怎么处理?
9.HashMap线程安全吗?与ConcurrentHashMap的区别?分段锁在Java8后有什么变化?
10.TCP如何保证可靠传输?
11.TCP两次握手不行吗?
12.TCP断连呢?为什么需要4次挥手?
13.TCP建立连接后,服务端出现故障,怎么处理?
14.TCP流量控制、拥塞控制?
15.解释一下SQL注入
16.事务的特性是什么?
17.事务隔离级别有哪些?
18.MySQL存储引擎是什么?
19.索引的优点是什么?什么场景下使用索引、什么场景下不使用?
网易面经
1.你为什么会考虑投递java开发
2.你在学习java过程中,或者在做的这些事情的,实现一些小的项目之类的,有没有遇到什么挫折
3.JVM是怎么实现的,内存是怎么管理的?
4.新生代老年代内存划分,是什么样的,比例,为什么是1:2。
5.什么情况下JVM会出现内存的溢出?
6.栈帧的模型是什么样的,包含哪些东西
7.Java如何支持并发安全?
8.Java读过源码吗?了解集合类吗?讲一下HashMap
9.HashMap的哈希算法是怎么实现的,为什么要这样实现
10.为什么用红黑树,不用其他的数据结构,红黑树有什么好处
11.学过计算机网络吗? 学过
12.实现一个文件管理服务,怎么实现比较好?例如有一个客户端向你传递一个文件,把文件保存起来,上传过来,怎么实现比较好。重要的文件,不重要的文件,要上传到开发的文件服务器。文件传输的过程。
13.TCP怎么解决传输可靠性的问题。
14.用过哪些中间件?消息中间件,缓存之类的用过吗?
15.Kafka用在哪些场景?
16.MySQL怎么管理事务?MySQL不是有ACID吗?怎么实现的。
百度面经
1.mysql中有哪些索引
2.char和varchar
3.如何查看sql查询的性能瓶颈
4.mysql的事务隔离
5.mybatis中的#和$
6.Java中如何实现多线程
7.HashMap的实现原理
8.针对HashMap的攻击
9.synchronized作用是什么,在哪些地方用到了
10.HTTP有哪些响应码,可以自定义响应码吗
11.HTTP的DELETE方法是做什么的,可不可以用于请求增加或者创建某个资源
12.@RequestMapping注解是做什么用的,有哪些属性
13.刚创建的对象可能被放在老年代吗
14.JVM有哪些可以设置的参数
最后
-
技术点:每家的技术问题都不一样,不变的是基础技术,所以必须要扎实,像算法、数据结构、操作系统等...。
-
拓展:还是要提前准备好JVM、多线程高并发这块,主要集中在高并发、多线程、分布式架构,大以及常用中间件(缓存等)的选型和比较。
-
最后为大家把面试问题和答案都整理好啦!
面试宝典:戳这里免费领取,暗号:CSDN,还有更多大厂面试专题资料和视频哦!