写在最后
作为一名即将求职的程序员,面对一个可能跟近些年非常不同的 2019 年,你的就业机会和风口会出现在哪里?在这种新环境下,工作应该选择大厂还是小公司?已有几年工作经验的老兵,又应该如何保持和提升自身竞争力,转被动为主动?
就目前大环境来看,跳槽成功的难度比往年高很多。一个明显的感受:今年的面试,无论一面还是二面,都很考验Java程序员的技术功底。
最近我整理了一份复习用的面试题及面试高频的考点题及技术点梳理成一份“Java经典面试问题(含答案解析).pdf和一份网上搜集的“Java程序员面试笔试真题库.pdf”(实际上比预期多花了不少精力),包含分布式架构、高可扩展、高性能、高并发、Jvm性能调优、Spring,MyBatis,Nginx源码分析,Redis,ActiveMQ、Mycat、Netty、Kafka、Mysql、Zookeeper、Tomcat、Docker、Dubbo、Nginx等多个知识点高级进阶干货!
由于篇幅有限,为了方便大家观看,这里以图片的形式给大家展示部分的目录和答案截图!
Java经典面试问题(含答案解析)
阿里巴巴技术笔试心得
-
平常会做单元测试吗?
-
。。。
HR面(约二十分钟)
-
自我介绍
-
你们专业和软件开发是不是不太相关?为什么报这个岗位?
-
你平常有做商业项目吗?还是都是实验室的项目?有没有实习?
-
你感觉大学期间最有成就感的事情是什么?
-
你有遇到过什么特别大的挫折吗?
-
你父母对你有什么期望吗?
-
你未来的职业规划是如何?
-
你喜欢什么样的工作?
-
加班压力能承受吗?
-
未来的职业规划?
公司现场面试。蜜汁面试,一面比一面短。
一面(约三十分钟)
-
自我介绍
-
项目是否碰到特殊网络环境?
-
ArrayList和LinkedList区别?
-
ArrayList和LinkedList是线程安全的吗?为什么说他们不是线程安全的,举实际场景?
-
有什么线程安全的List?(CopyOnWriteArrayList)讲一下怎么实现线程安全的?(读时复制,写时共享,加锁机制)
-
线程A和线程B同时针对一个共享变量进行操作,如何实现线程安全?
-
平常怎么创建线程?线程池里闲置线程怎么保活?(不清楚,说了自己的想法)那怎么唤醒?如果用wait()和notify(),对谁加锁?
-
给一个数据库表,ID、score两个字段分别代表学生ID和成绩,写SQL语句求ID=?的学生排第几名?
-
假设是InnoDB,给上述SQL语句加索引怎么加?为什么这样建立?聚集索引和非聚集索引有什么区别?
二面(约二十分钟)
-
自我介绍
-
介绍一下觉得做得最好的项目?画一下项目的框架结构图?Nginx用来做什么?采用了什么负载均衡策略?万一某一个服务器挂掉怎么办?(一致性hash)如果添加一个节点呢?
-
Spring中Bean生命周期?提到的Aware相关接口指的是什么?平常会自己会用Aware相关接口吗?Bean生命周期这么长是为什么?
-
JVM内存模型?如果给一个类,里面只有一个main方法,方法里面只有一句System.out.println(“helloworld”),问运行这个类会在Java内存模型里发生什么? “helloworld”存储在哪里?
-
MySQL数据库,给一个用户表格,ID、用户名、性别、用户信息…,假设经常对性别字段进行查询,问怎么建立索引?为什么?假设用户名需要是唯一的,问怎么建索引?
HR面(十七分钟)
-
自我介绍
-
介绍一下自己的专业?为什么找IT开发工作?
-
介绍一下最有成就感的项目?为什么觉得这个项目最有成就感?
-
为什么报了这个部门?
-
你觉得自己有什么优势,能给这个部门带来什么?
-
讲自己的三个优点?
-
说一下自己的不足?
-
。。。
牛客网视频平台面试,算法题在线编程一下午走完三面流程。不涉及部门面试,面试官说三轮面试都是统招的。
一面(约五十分钟)
-
自我介绍,主要讲讲做了什么和擅长什么
-
看你项目做Spring比较多,问一下Spring相关的东西,IoC是什么概念?
-
Bean的默认作用范围是什么?其他的作用范围?
-
索引是什么概念有什么作用?MySQL里主要有哪些索引结构?哈希索引和B+树索引比较?
-
平常用线程主要是怎么写的,会用一些线程框架吗?(没有用框架)Java线程池的概念?线程池有哪些?线程池工厂有哪些线程池类型,及其线程池参数是什么?
-
ConcurrentHashMap讲一讲?
-
Java GC机制?GC Roots有哪些?
-
Java bin包下面的工具用过哪些?
-
算法题:红蓝两种球,总共N个, N>2, 排列组合,连续3个颜色一样是非法的,求合法的排列数量
二面(约五十分钟)
-
自我介绍
-
项目询问:问了简历上写得最早的项目的情况,项目QPS?数据来源和传输形式?
-
发起一个HTTP请求的过程?刚才提到DNS,DNS用的什么传输层协议?为什么说用的是TCP协议?(我说其实我不清楚是用的什么协议)他说那让你设计的话用什么协议比较合适?(思考了一下,说觉得UDP比较合适,比较轻量不占用服务器带宽,查了一下TCP和UDP都有,用在不同情境下)
-
TCP协议的三次握手和四次挥手过程?
-
同步IO和异步IO的区别?
-
操作系统的blablabla?(懵)算了,直接问你好了,select和epoll?
-
线程如何实现同步?
-
MySQL了解到什么程度?binLog知道吗?
-
描述一下堆排的过程?建堆的时间复杂度?最大堆中求前k个最大值的时间复杂度?
-
算法题:海岛面积计算题,给一个矩阵,0表示海水,相连的1表示海岛,上下左右表示相连。
00011
11011
10001
(1)求最大海岛面积。
(2)求最大海岛面积和对应海岛的所有坐标。
(3)求所有海岛的所有坐标,按海岛分。
每小题讲思路,最后写第二题。
三面(综合面,约五十分钟)
-
自我介绍。
-
ConcurrentHashMap 在Java7和Java8中的区别?为什么Java8并发效率更好?什么情况下用HashMap,什么情况用ConcurrentHashMap?
-
加锁有什么机制?
-
ThreadLocal?应用场景?
-
Web容器用的什么?你项目里涉及了SSM框架,一个请求到Tomcat容器了,怎么到SSM代码中去?
-
网络协议了解吗?
-
**项目介绍一下是做什么的?讲一讲学到什么东西?
-
平常怎么学习?
-
大学到现在遇到的最大困难是什么?怎么克服?事情太多的时候会有压力吗?
-
未来的规划?
-
目前有offer吗?
-
设计一个系统:用来促成交易,有多种商品,有购买方和卖出方,促成买家价格大于等于卖出价格的交易。
腾讯(在线教育,面试通过,这两天两次错过电话,HR还会再给我打吗QAQ)
电话面+QQ远程桌面做题。
一面(电话面,约一小时十分钟)
-
自我介绍
-
觉得自己做得最好的项目?项目技术架构?
-
HashMap有了解吗?HashMap的时间复杂度?HashMap中Hash冲突是怎么解决的?链表的上一级结构是什么?Java8中的HashMap有什么变化?红黑树需要比较大小才能进行插入,是依据什么进行比较的?其他Hash冲突解决方式?
-
实现线程安全的方式?ThreadLocal原理?线程池了解吗说说看?自己用线程池怎么定参数?
-
Java堆中怎么分区?怎么判断对象是否需要回收?Java内存占用过大怎么查看?Java内存溢出有碰到过吗?Java内存溢出怎么定位?
-
HTTP常见错误码?TCP三次握手?
-
进程和线程的区别?平常的开发环境是Windows还是Linux?Linux命令知道哪些?要在多个文本文件中找一个关键词用什么命令?(grep)网络相关的命令是什么?
-
MySQL数据库引擎?应用场景?查询优化?NoSQL有用或了解吗?
-
排序算法了解哪些?Java里内置的是用什么排序方法?快排是稳定的吗?快排排对象的时候有什么问题?(提示我,三个字段,第一个字段和第二个字段做hash,第三个不做,还是不太懂)
-
十亿个IP,获得访问次数最多的十个。
-
五个单词,在一个长文本中查找是否存在。
-
Github有用吗?平常有看一些博客和书籍吗?平常有用脚本语言做一些方便自己的事情吗?
二面(QQ远程桌面做题)
算法题:
-
快速排序算法
-
实现一个lru ***
智力题:
-
一个五升桶,一个三升桶,怎么倒出四升水,水可以无限量使用
-
从4亿qq号码中,统计出出现次数top 10的号码
三面(电话面,约一小时)
晚上十点钟的电话,面试官声音透露着疲惫。
-
目前有哪些Offer?地域倾向?怎么选择?
-
滴滴派发订单功能设计?
-
有声小说音频自动匹配字幕情景题,有大量的音频文件,非人力能够做到,语音识别匹配生成字幕文件,字幕文件中语音和字幕的时间需一致,如何设计?
-
Linux里查看CPU占用的命令?怎么看CPU占用?
-
。。。
四面(电话面,约一小时)
-
场景设计题:英雄联盟H5小游戏排名,实时动态更新,如何实现?
-
场景设计题:杭州G20形象工程需要擦窗子,估计杭州擦窗子要多少费用?
-
Java虚拟机相关问题
HR面
常规问题。
酒店现场面试。
一面(业务面,约半小时)
项目从后开始问,越早的项目问越多。
-
自我介绍
-
数据量多大?项目PG(PostgreSQL)版本?非结构化数据指的是什么?有没有考虑过nosql?分库分表怎么分?查询的表会合并在一起吗?
-
项目性能有没有考虑过?(我是做服务端的,主要考虑请求并发量)数据库性能呢?(了解一点,MySQL主从结构)
-
请求到SSH框架的流程图画一下?远程调用Shell脚本用到哪些命令?
-
Nginx原理了解吗?(只用到负载均衡,介绍了一下负载均衡策略)
二面(综合面,约半小时)
-
**项目介绍一下?用到了Nginx,用的七层还是四层Nginx? HTTP还是TCP?负载均衡策略用的是什么?
-
项目负责主要做了哪些事情?学到了什么东西?项目几个人?怎么样分工?
-
业余活动?日常时间安排?
-
为什么参加学生工作?学生工作带给你最大的收获是什么?
-
华为有什么吸引你的地方?
-
为什么报**?
一面(电话面)
-
自我介绍
-
Spring Cloud用到什么东西?如何实现负载均衡?服务挂了注册中心怎么判断?
总结
至此,文章终于到了尾声。总结一下,我们谈论了简历制作过程中需要注意的以下三个部分,并分别给出了一些建议:
- 技术能力:先写岗位所需能力,再写加分能力,不要写无关能力;
- 项目经历:只写明星项目,描述遵循 STAR 法则;
- 简历印象:简历遵循三大原则:清晰,简短,必要,要有的放矢,不要海投;
以及最后为大家准备的福利时间:简历模板+Java面试题+热门技术系列教程视频
. 项目经历:只写明星项目,描述遵循 STAR 法则;
3. 简历印象:简历遵循三大原则:清晰,简短,必要,要有的放矢,不要海投;
以及最后为大家准备的福利时间:简历模板+Java面试题+热门技术系列教程视频
[外链图片转存中…(img-Tvdsb9XI-1714831302995)]
[外链图片转存中…(img-3527GFDP-1714831302995)]
[外链图片转存中…(img-0BKEGfuC-1714831302996)]