首页 > 菜鸡秋招面经总结
头像
yxhh
编辑于 2020-11-10 10:31
+ 关注

菜鸡秋招面经总结

写在前面

真的非常感谢牛客网提供的这个平台和各位牛油,每次面试就在牛客狂搜面经然后一通背,平时也有很多大佬分享自己的经验,参考他们的经验和自己摸索。虽然只有一个offer,对于本菜鸡来说也达到了目标了。
面试情况:字节一二面,oppo一二面+hr,美团阿里猿辅导猫眼一面,中信银行一面,招商银行一面
下面是我的一些个人经验,我的方向是Java后端。

面试重点

  • Java

    基础

    集合类:这个要了解实现原理数据结构,源码,重点关注hashMap concurrentHashMap,集合类的线程安全问题

    多线程:线程池,AQS、synchronized、reentrantLock、线程中断、原子类等,推荐书籍(并发编程的艺术)

    JVM:垃圾回收、jvm内存结构、jvm内存模型、类加载机制等

    IO:NIO、BIO、AIO

  • 数据库

    三大范式,事务、事务隔离级别、索引、索引优化、分库分表、存储引擎等,推荐书籍(高性能MySQL)

  • redis

    基本介绍(如为什么redis这么快,跟其他NOSQL比较),基本数据类型、乐观锁、持久化、事务、主从复制、缓存穿透击穿雪崩、哨兵、分布式锁

  • 计算机网络

    各层协议、重点是:dns、http、https、tcp、udp、icmp等

  • 操作系统

    问的比较多的进程管理,如进程通信,进程调度等 和内存管理分页分段等、死锁

  • LInux

    常用命令、进程线程通信等、可能因为我没写到简历上,问的相对少一点

  • 设计模式

23种设计模式和设计原则,其中单例问的最多

  • 数据结构与算法

    刷题,这个我也摸索不到什么好办法,手撕算法经常写不出,有经验的大佬可以分享一下😂

  • 项目

    重点是为项目准备一些亮点,然后思考说出来以后面试官会怎么追问,最好可以由这个亮点引入到自己熟悉的 知识点,再回答就很加分。

  • 我在复习一个模块后会写成总结笔记发表在自己博客上,虽然比较耗时,后面复习起来又快又方便,大家可以试试。

字节

一面:

  • 内部类

    非静态的内部类怎么访问外部的成员变量和方法

    匿名内部类在方法中声明,可以访问方法中的临时变量吗 为什么

  • final

  • 内存泄漏,哪些情况导致内存泄漏(如哪些编码不规范导致的内存泄漏)

  • 四种引用

  • JVM垃圾回收算法

  • GC ROOT根节点包括哪些

  • Java中集合类

  • Map hashtable和hashmap(内部实现)

  • hashmap的实现有什么改动

  • 多线程,开启一个线程有哪些方式

  • 介绍线程池

  • 从线程池创建的线程会被销毁吗

  • 讲讲sychornized关键字

  • sychornized关键字怎么使用

  • sychornized锁一个类和一个对象怎么使用

  • sychornized是可重入吗,解释一下什么是可重入锁

  • 讲一下http,状态码,对象头,body组成等

  • content-type

  • http下层协议 ,介绍tcp协议

  • 三次握手,四次挥手的原因

  • 算法题:lc简单难度左右,旋转数组,从小到大不重复打印数字,如1, 2, 2, 5, 10,11,12, 9, 8, 2, 1,1 输出1 2 5 8 9 10 11 12


二面:

  • 输入域名后,发生的过程

  • http报文包含哪些

  • 接口和抽象类的区别

  • Java泛型

  • List不设置泛型会怎么样

  • 一道代码题

图片说明

  • 手撕代码 线程安全懒汉式单例模式

  • 单例模式解决什么问题

  • 实现单例模式需要注意问题

    线程安全、构造方法私有,volatile

  • 内存泄漏、内存溢出

  • 解决内存泄漏有什么办法

  • 代码题:第K个大的元素(lc hard)

  • 最近有做什么项目

oppo

一面:

  1. 有Android相关的经验吗

  2. 说一下Java集合类

  3. set和list有什么共同点吗,或者都实现了什么功能继承了什么类

  4. 集合类通常有线程安全问题,有什么解决办法

  5. HashMap实现原理

  6. 红黑树实现原理,有什么作用

  7. 说一说线程池你的理解

  8. 线程同步的问题有什么解决方案

  9. 安卓问题,内存只有一个G,导入一个很大的图片

  10. JVM内存回收机制

  11. 安卓内存泄漏有哪些场景 (答成了内存溢出 OOM,说要具体的场景,不要笼统)

  12. 你的项目有什么亮点,有什么难点,是怎么解决的

  13. 你同学怎么评价的或者说你自己怎么评价你这个项目的

  14. 代码题(剑指offer,两数相加不用加法,两次提示都没写出来)

  15. 还有什么问题。(如果能过后面还有几轮面试,两轮,一轮技术和hr,提示下次可能还会有很多android问题,然后进来不想做Android可以转岗


二面

1.你目前做过最满意的项目

2.是Nodejs项目,为什么要用Node.js

3.Nodejs和java语言区别

4.说说你的java项目(以下几个问题都是关于我的项目)

5.为什么要加salt

6.怎么生成的salt

7.怎么验证密码

8.salt存在哪里、存在数据库里有什么弊端。

9.加了salt有什么好处 ,md5不是动态的么(下面开始不是项目问题)

10.有没有安卓的经验

11.Java你了解哪一块

12.Java线程的安全性访问

13.乐观锁和悲观锁

14 sychroinzed是悲观锁吗

15.是可重入锁吗

16.你有使用过可重入锁吗

17.一般你的项目是用什么方法线程同步

18.等待另一个线程用什么方法(答了Thread.join())

19.如果另外一个线程是线程池呢(答了wait和notify方法)

20.具体怎么用

21.你的学习方式

  1. 博客有看哪些

  2. github看过哪些开源项目(被问结巴了 捂脸)

24.你有什么优势,不足

25.实习的工作是做什么

26.遇到问题怎么解决


hr面:

比较平常的问题,成绩排名,形容自己,团队合作的案例,做过有挑战性的事,为什么要来oppo之类的

猿辅导(客户端)

一面:

  • 二分查找复杂度,怎么计算的

  • C语言联合体

  • 深拷贝和浅拷贝区别

  • Java Object方法

  • notify和notifyAll区别,什么时候用,什么时候唤醒一个线程,什么时候唤醒多个线程,举个例子

  • volatile使用场景

  • 单例模式volatile作用

  • 对安卓开发的看法见解

  • Java和JavaScript面向对象有什么区别,实例化一个类有什么区别(简历上写了了解JavaScript答不出来 ,/(ㄒoㄒ)/~~)

  • 代码题,删除链表指定元素

  • 代码题,说思路

    给定一个经过编码的字符串,返回它解码后的字符串。 编码规则为: k[encoded_string],表示其中方括号内部的 encoded_string 正好重复 k 次。注意 k 保证为正整数。 你可以认为输入字符串总是有效的;输入字符串中没有额外的空格,且输入的方括号总是符合格式要求的。 此外,你可以认为原始数据不包含数字,所有的数字只表示重复的次数 k ,例如不会出现像 3a 或 2[4] 的输入。
    示例 1: 输入:s = "3[a]2[bc]" 输出:"aaabcbc"
    示例 2: 输入:s = "3[a2[c]]" 输出:"accaccacc"
    示例 3: 输入:s = "2[abc]3[cd]ef" 输出:"abcabccdcdcdef" 示例 4: 输入:s = "abc3[cd]xyz" 输出:"abccdcdcdxyz"

猫眼

一面:

忘记录音了,只记得这几个

  • BIO NIO AIO

  • 基本数据类型、包装类

  • 实现线程的方法

  • spring控制反转

阿里

  • JVM介绍,垃圾回收等等

  • 设计模式

    单例模式枚举实现

    装饰者模式在java体现

    策略模式在java中的体现

    适配者模式在java中实现

  • 设计原则

  • 抽象工厂和工厂模式区别

  • 不同的实现类做不同的功能,是哪个设计模式

  • 索引

    什么时候用哈希索引

    一级索引二级索引(簇族索引和非簇族索引区别,答了一个物理顺序和逻辑顺序一致,问就这样吗)

  • 为什么是最左匹配

  • spring aop ioc本质 (ioc维护一个mapper映射)

  • redis缓存和操作系统的缓存有什么区别

  • 消息队列了解吗

  • 分布式有了解吗

  • 线程池核心参数

中信银行信用卡

基本围绕简历拓展,一面:

  • 问项目

  • Java基本数据类型

  • String为什么是final

  • 为什么重写equals方法要重写hashcode方法

  • 集合类

  • 线程池

  • 有实际使用过Java定时任务吗

  • AIO BIO NIO

  • spring注入方式

  • mysql分库分表

  • mysql索引类型

  • mysql分页查询

  • jvm内存模型

  • redis基本数据类型

  • java原子类实现原理

工商银行软开

基本上是聊实习+项目+在校情况

  • 最感兴趣的课程

  • 关于这个课程的开发或者实践

  • 聊实习

  • 聊项目(项目数据库设计,功能介绍等等)

  • 实习期间最大的收获

  • 聊一个简历上另一个项目

美团

  • 实习

  • 项目

  • 为什么选择md5算法(项目)

  • 对称加密、非对称加密

  • 多个docker之间的进程相互有影响吗

  • java集合

  • hashMap是线程安全,为什么

  • 多线程使用hashMap会出现什么问题

  • concurrentHashMap实现

  • jdk8和jdk8之前比concurrentHashMap优点

  • runable和callable区别

  • runable和callable线程内部抛的异常线程外部可以处理吗

  • 三个线程,线程1执行完线程2执行,线程2执行完线程3执行,怎么实现

  • java异常

  • 数据库隔离级别,会有哪些问题

  • mysql索引

  • hash索引和b+索引分别用在哪个存储引擎

  • 为什么用b+不用b(除了解决范围查找还有其他原因吗)

  • 操作系统进程调度策略

  • 内存管理分页和分段

  • 页面替换算法

  • 计算机网络

  • http tcp(特点,保证可靠性的方法)

  • SQL题,分页查询优化

    一张表,id是主键,查询第一万页,每页是10个,按照普通索引字段create_time排序

  • 代码题:链表内指定区间反转

  • 智力题 九个球,其中一个比较重一点,用天平秤,两次找出

    求职经历和感悟

    其实是碎碎念,没有干货。
    先说一下我的情况,普通211本,在校属于非常普通的大多数人,按时上课交作业,空余时间就打打游戏。优点是没有挂科,缺点是没有其他优点🤣,竞赛奖项一律无,这也导致面试官问起这个的时候非常尴尬😅。今年二月份的时候,大三下刚开学,我还在纠结考研还是找工作,那时候春招也基本上开始了,好几个星期我都在摇摆不定,也导致我直接错过了春招大部分实习。
    后面因为个人原因选择了找工作,但是这时候已经四月份左右了,才刚复习完数据结构,一度以为我找不到实习了。然后因为觉得复习不足,也不敢投。这时候加的一个内推群的华为hr,打电话给我,叫我投简历,我说还没准备好不太敢投。hr说,没事的去试试,当给自己一次机会。真的非常感谢这个hr。于是我硬着头皮投了,然后好几天都在看面试知识点,一面面试官好像不是java方向的,但是他人很好,知道我简历写的都是java,让我自己挑自己最熟悉的讲,于是把前几天刚看的java集合的源码一通讲,线程再一通讲,再把我做过的项目讲了讲,竟然过了!二面的时候面试官脸色比较紧绷,我看着就紧张,然后就挂了,我以为又要找不到实习了。没想到半个月后,hr又把我捞上来,又进行了一次面试,于是拿到了第一份offer(实习的)。😆这时候就比较有底气一点了。
    然后在七月份多,我就入职了,基本上每天都在做一些重复性的工作,因为我不打算转正,于是我就下了个vscode插件,上班偷偷刷leetcode😏。实习是真的累,本来想白天好好上班,晚上回到租房就认真复习,结果白天也没好好上班,晚上回到租房只想瘫着玩手机玩游戏。不过实习了有两个好处,一个是简历通过率提高了非常多,二是面试的时候可以说。实习期间,也不知道哪天投的简历,就收到了OPPO的面试,所以一定要多投简历,说不定哪一次投递就是你的offer了。后面拿到了OPPO的offer,因为我实在太懒了,那段时间又因为一些个人原因状态比较低靡,就没有再投简历。一直到实习结束,差不多十月份这时候秋招已经接近尾声了,陆陆续续投了一些,做了一些笔试,也收到了几家面试。不过也都没有offer。
    我觉得找工作首先心态最重要,我没有offer的时候我也很焦虑,但是每次我都会告诉自己,我只需要好好准备,然后每次面试完好好总结,offer肯定会来的。对很多人来说,面试其实也看一些运气(当然大佬不一样😂),问到你大部分会的,你就通过了,然后每次面试录音,总结面经,不会的地方就会越来越少,但是也是要投的多才能有更多运气的机会嘛。而且其实每次面试前准备的那几天,我的学习效率是最高的,会一直去复习看过的知识点,以及想想还有哪些没看过的知识点。如果有22届的小伙伴看到,一定要早点准备,大三上就要准备实习,然后提前批一定要多投简历(可以免笔试),总之就早点投,投多点。

  • 最后说一下我的准备方式,不一定有参考价值。基本上我是对着https://github.com/CyC2018/CS-Notes 这份提纲的pdf文档,然后勾勾画画
    图片说明 看有哪些重点的,最后自己再总结出一份知识点写成文章,里面是自己的理解或者用自己的话写出来。这份提纲写的比较简略,如果我要深入理解,我就会看书+看博客。根据我目前面试情况,这份提纲大部分基础知识点都有涉及,我觉得还是一份比较好的提纲。每次面试前,我就会去复习自己总结的文章+看面经。看博客推荐大家在微信上搜公众号的技术文,因为一般公众号的文章会比百度的质量排版都高一些,比如图片说明
    非常感谢能看到这里,祝大家都能找到满意的工作。

更多模拟面试

全部评论

(11) 回帖
加载中...
话题 回帖

推荐话题

相关热帖

近期热帖

近期精华帖

热门推荐