本来是不打算写这个帖子的,因为自己水平确实太菜,面试回答的非常不好,自己的凉经不太有指导意义。
总归是自己的经历吧,还是写一写吧,起码用来警示自己要不断学习。
四月份的尾巴,29,30号这两天面试有点密集,有点撑不住。。
29面的华为,一天面了两轮,走完了流程,还是挺累的。
30面的阿里,一面是下午五点,二面是九点,二面凉。
下面打算先分享一下面经后,再说一下个人面试复习的教训吧。
一面(30分钟)
1.进程和线程的区别
2.死锁的必要条件 Java中怎么写一个死锁程序
3.如何在数据量非常大的情况下找出前1000大的数
4.有一个整数,可以对他每个位置上的数进行排列组合重新组成一个数,求这些数中比原数大的最小的数
(思路大概对了,但是有点小问题,在面试官提示后改进了下)
5.数据库中某个字段temp对应多个值,查询该字段一共有多少值和每种值出现的次数
6.设计一个表,学生可以选多门课,老师可以教多门课,问怎么设计表(很久没复习数据库了,这个当时回答的不够好)
7.查找链表中间结点,口述
8.linux命令,查询某个文件中是否包含某个单词(我说我不会linux命令)
就结束了,以为凉了,后来接到二面通知了
二面(20分钟)
首先问了项目,我项目没啥亮点,没啥可问的。
1.写了二分查找
2.问设计模式,我说我只会单例模式,我写了懒汉式
3.就着懒汉式代码,面试官说你给方法加个同步锁,这个是可以实现,但效率太差,怎么优化
(这个单例模式学的很浅,没有思考这么深,当时复习的时候想着会一种设计模式就好了,教训!!!)
4.问了我一个网络的问题,有在TCP/IP之上设计过什么吗?(我太菜了听不懂这个问题,这个协议只用过socket编程)
5.数据库,问用过mysql和redis吗? (我说不会分布式redis)
6.问mysql中的主键索引和非主键索引,分库分表策略?(我说我只了解事务隔离,锁机制,没有了解过索引)
后来,就凉了,其实面试官挺好的,他尝试问我一些我会的,但我知识了解太浅了,盲区太大的,怪我不争气。。。
复习教训
从四月中旬开始投递简历到今天这半个月内,自己投递了很多简历,也参加了很多笔试,但是接到面试只有美团,华为,阿里。
简历有挂的,笔试有挂的,还是挺遗憾的。最可惜的是没有抓住每一次的面试机会,平时也不好好准备,就面试前一天看看面试突击啥的。
这样的话面试过一次属于侥幸,但想真正的拿到offer就不可能的,知识还在于平时的积累。
还有一个是知识的广度,我以前错误的以为,作为一名大三实习生,没有工作经验,面试就问问基础就好了,会写sql语句、会写算法题、会用java集合,多线程,有GC你根本就不用
关注内存的问题等等。但这个认知在我第一次面试美团的时候就被无情打破,被问到hashMap源码、红黑树、B+树,索引,事务隔离,锁机制等等,这些我没有回答出来,当时还觉得挺委屈,这些都没在学校学过(这想法太蠢。。)后来面试发现这还不止,你还要去关注redis实现分布式存储,设计模式、中间件等知识,并且这些知识不能了解皮毛,要深入的去做研究。
这三次面试结果虽然不尽人意,但也给我送来了宝贵经验。
复习要全面铺开复习,决不能完全靠面试宝典,而且宝典上的解答有时比较精炼,只背答案的话就会知其然而不知其所以然。
复习要趁早,不要投机取巧,临时抱佛脚,这不像你期末考试,考前突击一晚就能取得好成绩的,面试涉及的知识面太广太杂。
五月份了,实习就告一段落了,结果就不关注了。从现在开始,开启秋招的复习之路,查漏补缺。
后面这段话是我的个人总结与批评,大家不想看的话就略过吧,直接看面试题就好。
全部评论
(6) 回帖