当前位置 博文首页 > 程序哥聊面试:秋招总结:花了半年时间,准备Java后端开发工程师

    程序哥聊面试:秋招总结:花了半年时间,准备Java后端开发工程师

    作者:[db:作者] 时间:2021-07-16 13:13

    Persist,and anything is within your reach. 坚持下来,做任何事情你都能成功。


    Hello,我是程序哥,一个来自魔都的程序员,小马哥每个月会付我薪水!!

    关注再看,养成习惯,大家好,我是程序哥!微信搜索【VeryJava】关注一下,这很Java。本文 GitHub very-java 已收录,整理了本人面试过程学习的知识,正在逐步开放,欢迎StarFork

    绪论

    想写这篇文章,已经很久了,之前在准备秋招的时候,就一直想着如果我能顺利拿到offer,一定也写一篇博客总结一下。毕竟这一路走来,路上从满艰辛,这也是人生路上非常重要的一段路程,也该好好总结一下。

    文末有我在面试过程中自己总结和收集的一些资料, 目前由于当时笔记记的格式不是太好,所以还没有全完开放出来,这个我会逐步整理和完善,最终全部开放给大家,希望可以在大家面试的过程中,帮助到大家,毕竟我在面试的过程中也是看了很多别人的文章,整理不易,希望大家StarFork,就是对我最大的鼓励!!!

    这里先说一下,我是20年1月份的硕士毕业生,目前在上海腾讯工作,小马哥每个月会付我薪水!!!

    我在准备秋招的过程中,总共面了9家公司,共收得到8家公司的offer,有人可能会问你为什么面这么多家公司?不累吗?哈哈,面试对我来说,真的不累,是一种享受,我就爱跟别人聊天,哈哈!我面的公司如下:

    • 阿里
    • 腾讯
    • 百度
    • 网易
    • 华为
    • 美团
    • 字节
    • 滴滴
    • B站

    这些公司,除了字节两次挂在3面上之外,其它公司均一次过,下面我会详细的讲讲。

    这次分享,主要想从下面两个大的方面讨论:

    • 面试准备阶段:包括基础知识准备和笔试准备
    • 面试的感受

    至于面经,我会在以后的文章继续更新分享,也避免大家看到太长的文章的疲惫感!!!

    面试准备

    关于面试准备,一般来说,如果你是6月份毕业,你就应该提前一年半开始准备,因为6月份毕业的学生,offer基本在去年的9-10月份才会发正式offer,所以你需要在9月份面试之前给自己留半年的时间准备。而1月份毕业的同学,提前1年就可以了,原因大家应该都想的明白。

    那么对于一个计算机尤其是软件工程专业的学生,到底应该在面试的过程中准备哪些东西呢?下面我会告诉你我自己准备的东西,但是有一些确实是我虽然准备了,但是面试过程中一次也没有用到。我会先把准备的知识列出来,具体内容,大家以后可以去Github上查早的到

    Java基础知识

    下面这些真的很Java了,面试的过程中,如果不会,面试官该会怎么想对面的这位面试小哥,哈哈!!!

    JDK里面的数据结构相关

    这些都应该看源码的,必须非常熟悉才行啊。当然了,贴心的我都在Github上为你准备好了,学习就完了。

    • ArrayList
    • Arrays
    • AtomicInteger
    • HashMap
    • HashTable
    • Integer
    • Java7-8中HashMap和ConcurrentHashMap的区别对比
    • LinkedList
    • Spliterator
    • String
    • Unsafe
    • Vector

    这里面最长问的就是Java7-8中HashMap和ConcurrentHashMap的区别对比,这两者的实现原理。

    Java并发包里面的东西

    这些也都是应该看源码的,也必须非常熟悉才行啊。当然了,贴心的我也都在Github上为你准备好了,学习就完了!!!

    • synchronized
    • volatile
    • AQS
    • ReenTrantLock
    • CAS
    • ThreadPool
    • ArrayBlockQueue
    • LinkedBlockQueue
    • PriorityBlockQueue
    • CLH同步队列
    • ThreadLocal
    • CyclicBarrier
    • CountDownLatch
    • Semaphone
    • Excahanger

    这里面,问的最多的就是前面6个,其它的基本没人问。

    Jvm相关

    下面这些也是Jvm面试必问的。

    • Java内存区域
    • class文件结构
    • 垃圾收集器和内存分配策略
    • 类加载机制
    • Java内存模型与线程
    • 线程安全与锁优化
    • G1垃圾收集器
    • CMS垃圾收集器
    • JDK8默认的垃圾收集器

    这些面试Java岗位,基本全都是必问的哦。

    Java的其它零碎知识点

    这些在Github上有总结的部分,这一部分主要就是模拟面试过程中,面试官可能问题的一些知识点。

    看到这些知识点,有没有想学习的冲动!!!

    其它Java后端必备知识

    • Spring
    • Redis
    • Zookeeper
    • MySQL
    • 操作系统
    • 网络
    • 计算机组成原理
    • 设计模式
    • CAP, 2PC, 3PC

    讲真的,设计模式没有一个公司问我,Spring AOP,控制反转啥的,也就阿里会问,其它公司都不问。

    由于知识点太多,一次分享不完,剩下的后面几期我整理完了,会分享出来,并更新到Github。能坚持看到这里的,明年肯定能获得不错的offer,加油!!!

    笔试准备

    笔试的话,建议给自己留2个月的刷题时间,而且最好做个150+的Leetcode题目,如果你算法能力不是很强的话,最好刷300题,毕竟“熟做力扣300题,写不写来也会记啊”,中国人的话,建议直接做中文版的Leetcode就ok,除非你要去面试外企,目前国内公司笔试题都是中文的。

    刷题目,可以按知识点的标签刷,也可以专门挑选带公司面试遇到的题目刷,毕竟真的有很多公司题目就是直接在那个上面的原题。

    像下面这些都是常考的:

    • LRU
    • 快排
    • 树的前,中,后非递归
    • 树的最近公共祖先
    • DFS 和 BFS
    • 动态规划
    • 前缀树

    总之题目要多刷,刷了要总结,很多题目都是相似的,有规律的,比如买卖股票的系列题目。

    面试的感受

    前面也说了,这里不是分享具体的面经,毕竟9家公司,面经其实和牛客的都差不多,我只在这里谈谈我去年面试时候的感受,让你对这些大厂有一个总体的认识啊。

    下面并没有恶意或贬低任何一家公司,纯属个人的一点客观事实的认知感受,如有冒犯,联系我删除!

    阿里面试感受

    阿里在互联网公司中,给的薪资中等,同等条件下比阿里给的工资高的多的是,而且阿里是典型的活多钱少的公司,要求还很多,阿里人P级从低到高,天生的会带有一种优越感,P级越高的人,个人感觉越有这种感觉,当然高P也有和蔼可亲的。

    • 阿里面试官特别严谨。你在面试的时候,Java省略双括号而没写的,都会指出来,而且写的不具有可扩展性的,也会说你写的不好,这给我一个面试者的感觉就是在稍微有点“吹毛求疵”啊。
    • 你一般可能会挂在高P上。我面过3个部门,前两个部门因为总总原因,没有真正面试,所以不算挂。但是总体感觉,第一面P7或P6面就是知识的广度面试,你只要基本知识都了解,第一面绝对挂不了。第二面一般就是P8面试,第三面就是P9了,就是你在的部门主管面试了,其实我总共和3位P9大佬聊过,但是两位给我的感觉很不好,其中一位倒是很平易近人啊。一般P9问的东西虽少,但是问的很深入了,基本就是原理,底层的东西,不会的话,可能就无缘阿里。
    • 阿里笔试题目真的很难,需要多多刷阿里历年笔试题目,多多理解。

    阿里基本都是Java技术栈,所以Java必须很牢固,而且像Spring,SpringBoot这些也都是要很熟悉的,当然你如果会Dubbo,SpringCloud Alibabab就更好了。其它的知识点和别的公司一样有要求。

    字节的面试感受

    字节的面试,给我的感觉很不好,字节是唯一一家,在每一面都会让你做题目的公司,可能字节投的人太多了,需要靠这种机制刷人???

    • 字节笔试真的很重要,我两次都败在3面的笔试上面了。不说了,都是泪啊。
    • 字节面试官要求更严,我个人感觉就是只要你在三面的时候,有一个不会的,就可能不要你了。

    当然了,字节的独特薪资和行业最顶级的免费三餐和下午茶,和上海的独特地理位置,绝对是优势啊!!!

    其它公司

    腾讯和网易,都是两面,感觉真的挺不错的,办事效率也高。腾讯的面试官最拼,有一次我从晚上11点,面到了凌晨12点,哈哈!!!其它公司的面试套路大多是一样的。

    春招和秋招

    其实关于春招和秋招,一般是建议春招准备好的话,就投递简历吧。不过其实春招不投,也基本没有什么影响,基本每个人都会在秋招的时候拿到自己的offer的,而且90%的人,都是在秋招提前批和正式秋招的时候才拿到offer的。

    春招

    春招对于像阿里,字节这些公司,如果投递了能中的话,还是很容易转正的,毕竟转正基本也就是一次面试而已,而且你完全可以不去实习,都会给你转正答辩面试的机会。香香也挺香!

    秋招提前批

    一定要在最早的时候把简历投出去,投完了,就真的没有岗位了。切记第一时间投递出去就对了。

    秋招正式批

    如果你没有参加前面两个,这个就千万不要错过了,这个抓不住,就要再等半年了。全力以赴就对了。

    总结

    整个面试过程,真的是有点“面试造火箭,工作拧螺丝”的感觉。复习的很多都没有问到,而且很多知识,工作根本用不到。但是其实理解这些也是很重要的,你光会用,不知道原理,用起来自己也没有底气吧?

    好了, 今天就分享到这里了,一些具体的知识点,大家可以关注Github和微信公众号。

    我是程序哥,一个来自魔都的程序员,小马哥每个月会付我薪水!!
    创作不易,别忘点赞哦,你的关注,就是程序哥创作的最大动力,我们下期见!


    文章持续更新,微信搜索【VeryJava】关注一下,这很Java。 本文 GitHub https://github.com/clsaa/very-java 已收录,整理了本人面试过程学习的知识,正在逐步开放,欢迎StarFork

    今天最大的努力,是明天最低的要求,我们一起加油!!!


    cs