项目是管理系统,本科211(非科班),硕士985(非科班)。
投了15家公司,参加了阿里,头条,快手,美团的面试,均已通过。
华为和腾讯,简历过了,但是因为有了offer,就没有去面了。
其余的简历挂。
阿里一面:70分钟
突击电话面试,正思考着导师布置的任务,阿里面试官打来了电话,开始了阿里一面。
阿里面试官自我介绍
介绍了5分钟左右,部门的情况,主要的业务
会那些操作系统
Linux会一点
说一下操作指令,怎么看cpu,看进程,看端口
操作系统进程间通信
追问了一个信号相关的问题,我不知道了。
io多路复用,说一说
面向切面编程,说一说那些场景
说说面向切面编程
给一个场景,有很多方法,找出耗时长的方法
spring的@autowired的作用
mybatis和hibernate的区别
C,C++了解吗(不了解)
python用过吗
没有,我用过matlab(笑)
java类加载器哪几种
java垃圾回收器
我先说了垃圾回收算法--垃圾收集器--比较CMS和G1。英文名词可能念的不是很标准。
配置过java启动设置吗
没有,我只用过-xms等指令改过JVM参数,和jinfo看参数
说说-XMS,除了-XMS,你还用过哪些指令
-XMX -XSS -XMN
说说java保证线程间同步的方法
Synchronize,reentrantlock,volatile,原子类。。。
说说倒计时器和循环栅栏的区别
说一说为什么要有JIT
平时怎么学习的
mysql聚簇索引和非聚簇索引
左外连接和内连接的区别
数据库的读写分离的作用
hash和一致性hash的区别,为什么要用一致性hash
spring boot。。。(不了解)
消息中间件了解吗,说说为什么要用消息中间件
项目中的缓存不一致怎么解决的
英文面试(说说你的特点,你的爱好)
聊了聊作为非科班,怎么去安排时间学习计算机。
工作压力大能承受嘛
反问
面试官对我的努力以及学习态度非常认可。对我而言是莫大的鼓励,希望自己能一路走下去,不管发生什么。
早上面试官发来短信,约了晚上面试,让我准备一段最能体现我水平的代码。
纠结了一天,最后还是硬着头皮,准备展示自己的项目代码。
首先自我介绍
聊了聊为什么转专业,本科阶段分数咋不高,有没有参加一些社团活动(没有)。。。。
面试官用共享屏幕看了我的项目,项目太过简单。
感觉面试官一下没了兴趣。
之后面试官说我简历上写读过SSM框架源码,让我说一说SSM框架的源码
我愣了一下,我说简历上好像没有写吧,SSM框架源码我没读过。
问我读过哪些源码
我当时有点懵,第一反应,ha..ha..hashmap
面试官又问,除了hashmap你还读过哪些源码。
想了想,ConCurrentHashMap, ArrayBlockingQueue。。。
那就ConCurrentHashMap吧。你给我讲一讲。
理了下思路,准备开始讲了,面试官让我在IDE上把源码打开讲。
当时差点ConCurrentHashMap都没拼出来。(一紧张,以为是Cur开头的。。。)
之后就一直说Concurrenthashmap源码
面试官主要关注点在怎么是线程安全的。
插入怎么保证安全,读写间会不会影响,怎么保证安全。。。
因为之前项目和SSM框架的源码,我都没能很好的展示。所以concurrenthashmap就尽可能的多说,把自己好的一面展示给面试官。
说了大概40分钟吧,然后面试官说时间差不多了,先这样吧。
反问。
面试官让我多参加开源的项目,多参加比较,多参加社团活动。
面完一度觉得自己凉了,没有高水平的代码展示,也没读过spring的源码。我的朋友也觉得这次希望不大。之后问了一面的面试官面试结果,没想到竟然过了。
面试官介绍
面试官介绍自己是中间件部门的,这轮是交叉面。
感觉面试官很和蔼,很有耐心。更多的是让我自己去讲述所学的知识。
自我介绍
项目介绍
说说自己会那些知识
我从头开始说,(集合类,JVM,JUC,Mysql,SSM。。。)
集合类用了那些设计模式
Juc
说说怎么理解线程安全
之后面试官一直在追问线程安全问题,问我JVM堆上会不会产生线程安全问题。(大概是这个意思)
我这方面确实不太了解。就说了创建对象时候的线程竞争问题。
后来面试官说了,他其实更想我能从底层去说,如果能从底层CPU开始说,那他会非常认可。
反问
面试官很真诚的给了一些学习建议:他让我加强学习的广度和深度,先加强广度,多学一些技术知识。(确实我目前的会的技术还很少)因为学习精力有限,再挑一些方面去加强深度。(我也没能做到在一些方面深入学习)
没有自我介绍,直接开始问问题。
hr给我感觉还是比较亲切的。
大概问题:
非科班的你对比科班的学生,满分5分,给自己水平打几分(3分),怎样提高剩下的两分。
自己的强项和优势(自律,努力,对学习有热情)
在阿里每个人都很勤奋,这一点不算什么优势。(做事专注度高,精力旺盛)
最喜欢哪一类的人
家庭带来的一个影响(可以说好的,也可以是不好的)
遇到的心里落差最大的事情(挫败感最强的事情)
压力大能承受吗。
hr也很真诚,其实交流过程中,也能引发自己的一些思考。自己的优势,自己的性格,自己的抗压能力,到底是怎样的。
其实我投简历的时候,都不太敢投递阿里。因为在阿里一面前已经过了字节的三次面试,投阿里的简历一直没被捞,所以以为简历就挂了。
特别感谢一面的面试官捞了我,给了我机会,同时也认可我的努力和态度。
对比我的面经和其他大佬的面经,自己真的是运气好。别人8成实力,我可能8成运气。
所以对我而言,我要继续加倍努力,弥补自己技术上的不足,以及与科班大佬们基础上的差距。希望自己能继续保持学习的热情,继续努力走下去。
算法题:合并链表
先说思路,第一次面试,有点紧张,说的一塌糊涂。然后又重新说了一遍,迅速写完代码,过了。
算法题:合并k个链表
一开始先问时间复杂度,我马上回答nlogk,然后用归并的想法解释。
但是太紧张,没有解释清楚,面试官不理解我的做法。
最后急中生智想到了用堆来合并。
面试完后看leetcode, 这题我刷了3遍,每次都是用归并的做法做的。
所以面试的时候有点思维定势,想了好久才想到用堆。
select * from t where b=1;Select * from t where a=1 and b=1;问怎么建立索引
先说需要建两个索引,后来反应过来了,建一个联合索引。
Select * from t where c=1;C是非主键索引,问几次磁盘io,b+索引树高度3。
我目前还不知道正确答案是啥。
自我介绍
最长连续序列
做过了,秒了。面试官让我测试一下,还好没出问题。
String为什么不可变
聊聊http2.0,问http缓存
有没有遇到过死锁,咋解决的
项目中中文乱码问题咋解决,知不知道中文乱码的原因
java线程间通信,有没有用过java中的exchange
知不知道负载均衡
redis几种数据结构,Zset数据结构,怎么排序的,Redis缓存淘汰策略
业务场景
电脑微信扫码,然后手机点验证,电脑就进入微信。怎么实现
反问
自我介绍
sqrt(x),保证小数点后三位精度
面试的时候一直在想之前腾讯笔试的时候做的一道题,觉得尾数处理太麻烦了。我以为需要最后保留小数点后三位,想得复杂了。
简单的一道题,写的比较纠结,面试官看我如此纠结,于是就让我全程写代码了。
跳台阶,斐波那契数列
单例模式,然后面试官问指令重排。
写个简单工厂模式吧
写了简单工厂,面试官说确实实现了功能,但是有两个问题,一个是依赖关系没有解除,一个是if else。
本身是非科班的,项目也特别简单。所以面试更多是手撕代码,代码题也不难。
非常感谢字节给的机会。
最后接了阿里意向书,工作地点应该是阿里云飞天园区云栖小镇
个人学习Java时间短,很多技术都不会,而且没有好的项目,所以最开始都不太敢投递简历。每次投递简历都是很心累,仿佛想到了面试的时候,问啥啥不会。也算是运气好吧,能通过几家公司的面试。但我知道自己有多菜,所以后续还要继续努力。
限于平台篇幅原因,这里只放了阿里和字节的面经,对其他面经感兴趣的朋友可以私信回复【学习】来找笔者获取面经
写一点个人的学习上的想法经验,仅供同学们参考。
首先要了解一点:为了找工作和为了提高技术,在学习的方向上肯定是不一样的。
各个公司面试的题目方向其实还是有一些不同的,比如头条注重算法,所以看对应公司的面经,可以有一个大概的方向。
面试前刷了三个月的LeetCode题,每天一道,翻了几遍左程云左神写的《程序员代码面试指南》
感兴趣的朋友可以帮忙转发文章后,私信回复【学习】来免费获取左神的《程序员代码面试指南》
除了上面提到的LeetCode题和算法书,还看了很多左神讲的视频
只有算法肯定是不够的,还要有其他技术的支撑
多线程与高并发
深入JVM
23种设计模式(马士兵课程:以坦克大战项目为实战)
Redis
MySQL
Zookeeper
网约车项目实战
亿级流量多级缓存架构平台
相关的资料笔者已经给大家打包整理好了,感兴趣的朋友可以帮忙转发文章后,关注私信回复【学习】来免费获取
相关文档及视频