前言
为什么互联网资讯这么发达,但是没有出现技术人才井喷?
为什么会出现应届生薪资倒挂多年老员工的现象?
这个世界有太多的现象都可以用**“二八定律”**来解释。
20%拿着高工资,80%每天挣扎在增删改查边缘。
职场一分钱一分货
人家拿高薪,不是全靠运气
工作年限越久,不代表越值钱
一年经验用了五年,无法改变
因为经历不等于经验
加班“重灾区”的互联网行业以996闻名,每天超过11小时的工作时长每年位居各行业之首。
工作内容重复,加班导致学习时间不够,无法跟上技术更新脚本。
如何花最少时间学习最多知识,迫在眉睫!
如何打破程序员提升的三大屏障,成为符合互联网行业的JAVA高级工程师。
一、一面 1小时40几分钟,基本会的被问完了
- 1.介绍项目,考虑没考虑过服务器挂了怎么办
- 这里应该是考查系统架构
- 2.面向对象特性
- 3.怎么理解多态
- 4.接口和抽象类的区别
- 5.说说并发是怎么回事,有什么问题,单核能并发吗?
- 6.JMM
- 7.说说volatile
- 8.说说synchronized,发生异常会释放锁吗
- 9.Lock
- 10.JVM内存结构,详细说栈、方法区和堆
- 11.String A = new String(“abc”) 创建了几个对象
- 12.public class A{String name = “”;},public class B{A a = new A(); String add = “”;},如果我现在B b = new B(); 问JVM内存的变化
- 13.类加载的过程
- 14.Java8的.class文件用Java7的虚拟机可以加载吗
- 15.说说GC,可达性分析法,什么可以作为GC ROOTS
- 16.说说CMS,CMS有几个阶段,哪些阶段需要stop the world
- 17.随便说一种单例模式
- 18.说说AOP、IOC
- 19.说说索引分类,索引实现
- 20.说说MVCC
- 21.事务问题和隔离级别
- 22.幻读是什么
- 23.CPU负载过高怎么排查问题
- 24.知道MQ,RPC吗
- 25.说说网络分层
- 26.说说TCP和UDP
- 27.哪一层有差错校验,有什么方法
- 28.HTTP常见状态码
- 29.说说B+树的结构
- 30.聚簇索引,非聚簇索引,什么是回表查询
- 31.建索引要注意什么问题
- 32.链表和数组
- 33.单链表反转思路
- 34.重定向和转发的区别
- 35.具体的一次HTTP请求的过程,越详细越好
- 36.怎么看待工作环境都是男生并且要加班
- 37.交给你一个任务,你不会做,怎么学习
- 38.怎么看待工作中有些琐碎的事情要处理
二、二面 三四十分钟,后面提问再讨论了20分钟
- 1.进程和线程的区别
- 2.进程的通信方式,管道里面的fd[]是啥
- 3.面向对象特性,多态
- 4.TIME_WAIT和CLOSE_WAIT(忘了怎么问的了)
- 5.TCP和UDP区别
- 6.TCP三次握手,传输控制怎么实现
- 7.HTTP和IP协议
- 8.cookies是什么,怎么用
- 9.堆的特点,堆排序时间复杂度,堆排序过程
- 10.怎么确定给谁加索引,加不加索引
- 11.做题:有序有重复的整数数组,得到去重后数组,返回无重复数字数量(要求尽量不用额外空间)
- 12.状态码
- 13.项目规模,几个人,推送怎么做的,是一个人做的吗
- 14.怎么学习新的技术
- 15.目前有offer吗,是哪里的(可以不说)
- 16.能实习吗
- 17.斐波那契数列知道吗?怎么做?
- 18.动态规划知道吗
三、HR面
- 1.自我介绍,抓住介绍的点让你详细说说
- 2.为什么实习经历只有一个月
- 3.为什么不去找其他的实习
- 4.其他的面试流程
- 5.考虑去哪里工作,北京是唯一选择吗
- 6.为什么来美团,从哪里知道美团技术团队
总结:
总体下来技术面问的不算深,一面看我有不清楚的地方会换其他的问题继续问,java基础,jvm,java并发,数据结构,网络,数据库基本简历上写的都问了一遍,整体答的还可以,基本都能说来些什么,但没复习语言基础还有变量分配,那里答的有点含糊,也尽量答了。所有的问题,即使不清楚的地方,也会尽量答,答自己所能知道的所有。二面主要问了网络和操作系统,感觉很虚,网络看完基本没复习过,TIME_WAIT竟然忘记了,现场画状态图思考了一波,OS是弱项,IPC基本只知道方法种类,但具体的不知道,比较虚,堆排序也没看,现场想堆排序应该怎么做。
面试官反馈,建议我多思考问题的本质。面试官非常好~~美团体验很好,二面咨询了很多具体的业务问题,还有未来发展等,面试官都一一解答。
HR面因为是突然接到的电话,在走廊面的,感觉有点慌,忘记说已经有offer了,但是和二面面试官讲过,不知道会不会被当做不诚信。
最后我们该如何学习?
1、看视频进行系统学习
这几年的Crud经历,让我明白自己真的算是菜鸡中的战斗机,也正因为Crud,导致自己技术比较零散,也不够深入不够系统,所以重新进行学习是很有必要的。我差的是系统知识,差的结构框架和思路,所以通过视频来学习,效果更好,也更全面。关于视频学习,个人可以推荐去B站进行学习,B站上有很多学习视频,唯一的缺点就是免费的容易过时。
另外,我自己也珍藏了好几套视频资料躺在网盘里,有需要的我也可以分享给你:
2、读源码,看实战笔记,学习大神思路
“编程语言是程序员的表达的方式,而架构是程序员对世界的认知”。所以,程序员要想快速认知并学习架构,读源码是必不可少的。阅读源码,是解决问题 + 理解事物,更重要的:看到源码背后的想法;程序员说:读万行源码,行万种实践。
Spring源码深度解析:
Mybatis 3源码深度解析:
Redis学习笔记:
Spring Boot核心技术-笔记:
3、面试前夕,刷题冲刺
面试的前一周时间内,就可以开始刷题冲刺了。请记住,刷题的时候,技术的优先,算法的看些基本的,比如排序等即可,而智力题,除非是校招,否则一般不怎么会问。
关于面试刷题,我个人也准备了一套系统的面试题,帮助你举一反三:
只有技术过硬,在哪儿都不愁就业,“万般带不去,唯有业随身”学习本来就不是在课堂那几年说了算,而是在人生的旅途中不间断的事情。
人生短暂,别稀里糊涂的活一辈子,不要将就。
资料领取方式:点击蓝色传送门免费领取上述资料
文章内容中涉及到的Java面试题、源码文档,技术笔记等学习资料,均可以免费分享给大家学习,只需你动动手多多支持即可!
人生短暂,别稀里糊涂的活一辈子,不要将就。
资料领取方式:点击蓝色传送门免费领取上述资料
文章内容中涉及到的Java面试题、源码文档,技术笔记等学习资料,均可以免费分享给大家学习,只需你动动手多多支持即可!