写点什么

社招和校招有什么不同?阿里美团等大厂 JAVA 社招面经分享!

作者:Java高工P7
  • 2021 年 11 月 12 日
  • 本文字数:2049 字

    阅读完需:约 7 分钟

校招面试主要考察的是大家对于基础知识的理解与掌握,数据结构和算法的熟练度。


对于项目架构,业务逻辑方面的考察较少。这也就要求我们熟练掌握各个模块的基础知识点。


社招面试考察的部分包括:基础知识点的掌握,对业务逻辑(项目)的理解以及对未来的职业规划等。


社招面试中对于所做项目的考察,以及根据项目衍生出去的知识点是相当看重的,可能直接决定面试的成败。


总的来说校招面试看重基础,全方位无死角的考察各位的基础知识点,并且一般考察 XXX 是什么?XXX 怎么实现的?


社招面试对于项目的考察至少占到了一半,2 面或者 3 面会针对项目做一个详细的沟通与了解,包括整个项目的业务架构,技术架构和技术难点和卡点等;


社招面试都是这么考察的,XXX 是什么?XXX 是怎么实现的?XXX 为什么这么实现?也就是说同一个知识点,比校招多了为什么要这么实现?


校招的算法可能会比较难一点,而社招因为看重项目和技术的深度,限于时间,所以算法考察会相对简单一点。


下边列出这段时间小编遇到的社招高频知识点。(注意啦!别眼高手低,看着简单,但是你能扛得住三连问吗?)


一面:




多线程并发编程:


  • 线程池的构造参数及其含义,如何确定线程池中线程的个数等


  • 定时线程池如何实现的?


  • synchronized,volatile 关键字


  • 原子性,可见性与有序性


  • 可重入的锁 ReentrantLock


  • ThreadLocal 的实现原理


  • AQS 底层实现,与 ReentrantLock 的关系


JVM 知识点:


  • 内存区域划分


  • OOM 介绍


  • 对象分配与回收


  • CMS 和 G1 垃圾收集器


  • 对象可达性分析


  • 类加载机制


  • JVM 调优参数


  • Full GC,Minor GC


  • 对象的栈上分配(JIT 编译器)


MySQL 知识点:


  • MySQL 隔离级别


  • 一致性视图


  • 日志模块:undo log,redo log 和 binglog


  • 索引结构,回表,最左前缀原则


  • 间隙锁,幻读,MVCC


  • SQL 优化实战


Java 基础:


  • NIO 的实现原理


  • HashMap,HashSet,LinkedHashMap 以及 ConcurrentHashMap


  • hashcode 与 equals 方法的区别


  • RuntimeException Exception Error


  • 注解的使用


  • 基本数据类型


  • 五种常见的网络 IO 模型


Spring&MyBatis:


  • Spring IOC 和 AOP 的原理


  • SpringBoot 源码解读,启动方式,配置顺序等


  • SpringMVC 和 Spring 父子容器的关系


  • Spring 的事务实现方式


  • 如何自定义实现 SpringBoot 中的 starter


  • MyBatis 中 #和 $符号的区别


网络协议:


  • TCP 与 UDP 区别


  • TCP 可靠性如何保证


  • TCP 网


【一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义】
浏览器打开:qq.cn.hn/FTf 免费领取
复制代码


络包分片与重组


  • 三次握手与四次挥手,状态转换


  • SSL 握手协议使用的加密算法,非对称加密的缺点


  • XSS 和 CSRF 介绍


Redis&Kafka:


  • redis 实现分布式锁


  • redis 数据结构类型


  • redis zset 实现延时队列


  • 跳表如何维护


  • redis 线程模型


  • redis 的数据过期方式


  • redis 持久化方式


  • 缓存雪崩,缓存穿透,缓存击穿


  • Kafka 主题,分区和日志文件的关系


  • Kafka 日志压缩和删除


  • 消息队列基本特性


算法题目:


  • 找出多数元素(美团)


  • 最长公共字串 (美团)


  • 单例模式 (美团)


  • 快速排序 (阿里)


  • 查找链表中倒数第 N 个节点 (头条)


  • 合并 k 个有序的链表 (快手)


  • 蓄水池 (快手)


  • 自定义实现 parseDouble 方法 (快手)


  • a+b+c=0 (头条)


  • 二叉树前序遍历 (快手)


  • 二叉树按照前序遍历转换为只有右节点的树 (猿辅导)


  • 按照之字形遍历二叉树 (头条)


  • 保留有序链表中的重复元素,并且只保留一次 (阿里,这个很有意思,感兴趣的同学可以实现下) 给定一个有序链表,保留链表中重复出现的元素,并且只保留一次,如给定链表 1->1->1->2->3->3->4.


结果为1->3。请写出一个高效的算法


  • 使用三个线程分别打印 A,B,C,按 ABC CBA ABC CBA …的顺序进行打印 (阿里) 还行,对于有准备的各位来说,这些算法都不太困难。待会在资源分享段落,楼主将会分享自己私藏多年的算法学习节奏,助你备战面试!


一面总结:


社招一面(生死面)容易挂的第一个点,就是刚开始的项目讲解的一般,没有亮点。项目中的技术难点和技术卡点无法表述出来,很容易给面试官一种“这人不行”的感觉。至于基础知识还是得靠我们平时多想想是什么?怎么实现?为什么这么实现?


总之讲解一个优秀得项目,面试就通过了一半。


二面:




一轮面试如果通过得话,恭喜你,你的面试其实已经通过了一半。因为一面面试官已经在基础知识方面对你进行肯定,二面面试官得提问方向就相对比较多了。二面面试官得重头戏还是你对项目的理解。


本轮面试会让你继续讲解一个或者多个项目,因为没有了基础知识点的考察“压力”。面试官会对项目进行深入了解,包括其业务架构,技术架构与技术原理等。


大概包括如下的技术点:


  • 项目业务架构,针对项目中各个知识点进行扩展与提问


  • 项目技术架构,技术架构中比如说 Thrift 的实现原理,nginx 相关知识点等


  • 项目中学到了哪些技术?或者之前学到的技术哪些在项目中可以体现?


  • 服务的 QPS 如何?如何保证服务高可用性?


  • 如何限流,熔断和降级服务?


  • 服务的部署方式,各个集群数据库的同步方式


  • MySQL 单表数据量多大?索引结构如何?


  • 上线新服务如何进行压测?


  • 内存泄露的排查方式?


  • 线上接口响应超时的排查思路


当然了,在这些比较开放的问题之外,部分面试官依然会考察一些基础知识点,这个看各个面试官的风格了。但是,二轮面试看重的还是项目技术架构以及你所做的贡献有哪些。

用户头像

Java高工P7

关注

还未添加个人签名 2021.11.08 加入

还未添加个人简介

评论

发布
暂无评论
社招和校招有什么不同?阿里美团等大厂JAVA社招面经分享!