四跨考生的面经合集(阿里、腾讯、头条、英特尔、星环、视源)
CVTE
3月6日(19:00——20:30)笔试
【1-20】 多项选择题
Java基础偏多——hashmap拉链法平均访问次数、深度遍历可能的路径数量、四种引用类型、抽象类、包装类之间==的比较、控制台输入输出问题
【21-22】 算法两题(不能本地IDE,只能手撸白板,且代码不能跑)
1、给一个整型数组,求其中出现频率大于总个数的1/3的元素列表
2、解码方式,1—A 2—B...26—Z,给定字符串,问有多少种解码的方式(如:12——2种【1,2】【12】,56——1种【5,6】)
【23】 系统设计题
C公司有很多部门,每个部门负责不同的业务,如短信推送业务、验证码业务、人脸识别业务等等。
现在要求设计一个公共管理平台,将这些业务整合到一起,这样外界可以通过这个平台调用公司的各项业务,要求考虑安全方面等。(我全程以设计模式的角度去答的。。。2333)
3月8日(16:00——16:30)一面
简单介绍一下你自己
讲一下你做的比较好的一个项目
sonarlint用过吗?
没事,建议用一下,比sonar cloud好用(编程时直接能看到效果)
手撕算法题,给定一个整数数组,需要将所有数打乱顺序后重排列(以String拼接的方式),问这样拼出的数最小时多少
手撕算法题,10个人编号1-10,一女一男排列,女位奇数男为偶数,第一个女生4岁,男生比前一个女生大两岁,女生比前一个男生大一岁,问第十个人多少岁?
数据库的存储引擎了解哪些?
发现查询语句太慢怎么优化?
有没有什么要问我的?
3月8日(17:00——17:30)二面
说一个你最近在做的项目
说一下mybatis的实现方式
spring的IOC、AOP
Spring的源码看过吗?
数据库优化了解吗?
了解多少种不同MQ吗?Kafka和其他MQ的区别?
Kafka靠什么实现高性能吗?
Kafka当初因为什么而出现的?主要用于哪个场景之下?
手撕算法题,找出数组中和为给定值的两个数(找出一对即可),复杂度如何?能否降低?
HR面(一个面试官对2~3人,轮流答)
之前有拿到过别的OFFER吗?
了解我们CVTE公司吗?(然后狠狠给我们介绍了一遍公司业务及前景)
说一件你曾经很努力但却失败的事
说一段你觉得压力很大的时期,以及你怎么排解压力的呢?
你的父母性格、职业、以及对你的期望?
如果我们给了OFFER,你可能会因为什么原因拒绝呢?
你的期望工作时间、地点、期望工资是多少?
你有问题要问我吗?
阿里云产品
3月8日(19:45——20:15)电话面试
1、ArrayList是动态可扩展的吗?底层是什么?为何每次动态扩容都是乘2?是否线程安全?怎么让它线程安全?
2、MySQL的索引说一下?(三种)
3、myisam和innodb的区别?
4、索引的好处?何时用何时不用?
5、ACID特性详解一下
6、线程的实现方式有哪些?
7、线程池的使用方式?用了有何好处?
8、算法——N!中0的个数
9、MYBATIS是什么?
10、AOP的作用?场景?
估计由于是海选淘汰,电话面的不算很难。。。
Intel
电话面试1
1、如何判断单向链表有没有环?
2、如何找出有环的单项链表的环入口位置?
3、Linux的高级命令?(sed awk)查看CPU使用率的命令?查看网络流量的命令?VIM了解吗?
4、大规模提取数据的工具知道吗?(sqoop flume)
5、10000个节点在进行数据采集,其中一个节点坏了怎么去发现?其中某些节点有延迟的话怎么发现?
6、一个系统面临大量请求的情况,怎么写代码能让服务器减压?注意不能使用框架、缓存、消息队列等中间件哦
7、一个机器上跑了多种不同业务的应用,假设这台机器上的缓存是可分配的,请问根据什么分配这台机器的缓存?如果根本不知道这些业务是什么的话怎么办?
电话面试2
(邮件发我一篇寻找CPU性能瓶颈的英文文献)
1、询问我对论文的理解。
2、哪些性能瓶颈算性能比较好的体现?
3、确定性能瓶颈后怎么实现优化(比如发现瓶颈是缓存mem-bound)?哪类数据容易mem miss?不改变缓存大小的话可以采取哪些措施?
反问——我询问面试官有关Intel中国的部门情况
电话面试3(两面试官轮流面)
1、先是述说了一遍我对CPU文献的理解
2、用spark做过的机器学习项目,数据预处理?建模?为什么用***回归?怎么验证模型准确定性?
3、知道我主攻的是Java就问了我Java的GC机制
4、偏向于做哪一块?
HR电话
1、约定入职时间
2、实习时长
3、薪资
4、需要入职前体检
5、部门
6、发我邮件,进官网填写入职申请
腾讯
电话一面(数据平台部)
1、自我介绍。
2、项目详细流程介绍。期间设计了哪些表?怎么实现新增景点?怎么获取到用户的微信身份信息?
3、项目介绍之spark三项目详细介绍。(streaming、graphx、mllib)
4、spring boot内置服务器?单元测试?配置文件内容?说几种常用注解?
5、设计模式说一下,详说三种你熟悉的。(单例、适配器、装饰者)
6、数据库优化策略说两种。(SQL优化、索引优化)
7、垃圾回收GC介绍一下?(标记、JVM运行时数据区、堆内存结构、垃圾回收算法、垃圾回收器)
8、springmvc与spring boot的区别?
9、线程生命周期?怎么使用线程池创建线程?
10、IO与NIO区别
11、Java1.8的新特性(hashmap、GC永久带等)
12、有什么要问我的吗?(实习时间、地点、后续通知、部门技术栈)
电话一面(微信事业部)
1、code share上四道题一小时内完成!
S1中去除S2中出现过的元素
合并两条有序链表
求二叉树是否存在路径和为某一给定值的路径
求数组中a[i]&a[j]的最大值(i!=j)
2、OSI七层模型详解
3、IPC的几种方式以及各自的应用场景
2、问我MySQL的容错性、主从分离的详细种类
电话一面(广告测开部)
星环科技
一面
介绍最拿手的项目
JIRA?(懵逼)项目与事务跟踪工具,类似于我用的visial paradigm用户故事软件
ioc机制
aop机制
DI的方式(构造方法、setter方式、注解方式、接口方式、工厂模式方式)
动态***两种方式的区别(CGLIB与JVM自带方式的比较,前者低耦合但需要实现接口)
maven中东西的生命周期(懵逼)
【算法】手写二叉树的非递归版前序遍历(反应迟钝)
数据库MySQL与mongodb区别,哪种表查询快?mongodb有索引吗?内部怎么存储的?(mongodb查询更快,它启动后可以把磁盘数据加载至内存)
意向锁?间隙锁?
二面
函数重载重写区别
重写方法时的访问权限要求
Java中的容器、并发容器、hashtable内部实现原理
synchronized怎么修饰?reetrantlock的可重入好处?与sychronized的区别?
CAS算法的实现机制
concurrenthashmap的底层数据结构?以及1.8对它的优化?(尾插、红黑树)
B+、 B、 平衡二叉树 、AVL树、红黑树的区别
表连接由哪几种?笛卡儿积用哪种?
数据库索引的数据结构类型?为何用B+不用B?
数据库的隔离级别?分别解决的问题?封锁协议?
数据库锁的粒度以及区别?
springmvc的详细处理过程
IOC反射的过程?
javabean的scope有哪几种?默认是单例吗?不想让它是单例,而是每次装载时都新new一个对象的话scope怎么设置?(scope="prototype")(singleton/prototype/request/session/globalSession)
application.properties中配置的属性怎么才能让应用程序读到呢?提示:对于底层已配置有的KEY可以直接编写配置文件来设置,但是自己仅仅想为本应用配置一些框架底层没有的KEY的话怎么办才能让程序读取到?
(@Value可以把application.properties或application.yml中的自定义属性加载过来,并传值给注解的相应类型。通常用于有多种不同环境,如application-test1环境,application-test2环境……并通过在主application文件中使用spring.profiles.active=testi来任意更改运行环境)
mybatis与hibernate的区别?
mabatis使用的机制是啥?怎样从DAO到SQL的map映射的过程了解吗?(大致为用动态***、工厂模式、建造者模式等,创建对象后进行赋值的过程)
mabatis的缓存机器缺点?
Java内存模型的工作区详述?
成员变量的存储位置?局部变量的存储位置?静态变量与常量呢?
垃圾的判断?GC roots?
maven的<dependencies>与<dependencies management>差异?
redis的数据类型及其特点?过期设置方式?持久化方式以及比较?
Kafka的特点?topic的数据组织形式?
spark的核心特点与优势?生态系统?
反问——实习时间?(至少我们南京base没有要求)部门业务?(我们是南京BASE的,主要做B2B的后台开发,成立不久,还在扩展期,针对不同企业要求制作不用产品,接触的产品面比较广)表现漏洞?(答得不错,不出意外给OFFER)建议发展?(选自己喜欢的吧,都不错的)AI与后台的发展?(总在变化)核心部门?(大数据与AI)南京BASE?(50人今年将扩大至200人)
蚂蚁金服
一面 (35分钟)
自我介绍
介绍项目
MySQL索引、Innodb与myisam特性及好处、数据库事务特性、事务隔离级别
reetrantlock与synchronized的区别?性能差异?
线程池的使用?关键参数有哪些?应该怎么设置较合理?
TCP三次握手?拥塞控制慢开始算法?
JVM的内存模型、垃圾回收机制详述
Java类加载的过程
如果能过的话一周内会再次电话面试
二面 (90分钟)
一小时代码(一道金融题。。最长递增子序列开始结束位置、层级部门的表结构与领域模型设计题)
15分钟简短问题(项目介绍、项目所遇困难、分布式锁)
反问——对我的评价,还有几轮?
三面(35分钟)
个人成长经历的介绍,为何选择转行、跨考
证明自己学习速度与效率的事情、觉得与科班同学的差别
介绍了项目,srum模式的好处与体会,以及对于项目扩展性和后期维护性的思考
当某些进程突然消失了,可能会是什么情况?
客户端与服务器用BIO建立长连接后通信时的线程数量、用NIO建立长连接后通信时的线程数量?
线程池各参数的意义(举例考察我),觉得线程池这样设计完美吗?
多线程协作的代码经历(除了wait notify)——join、countdown latch、cyclic Barrier、sephamore等
近一个月的代码量?——少许项目代码、主要刷算法题
四面(45分钟)
1、自我介绍
2、Java中的所有数据结构
3、treemap底层数据结构,扩容,插入删除效率?
4、hashmap负载因子、扩容原理、rehash过程、原来的hashmap怎么处理?
5、hashmap的线程安全性?hashtable与concurrenthashmap(1.6&1.8底层的不同与改变)
6、Java里为什么有线程安全问题?如何解决?
7、多线程的内存模型JMM?内存屏障等
8、Java1.8新特性有哪些?(说了数据结构、JVM、函数式编程)
1.9新特性?
(Java 平台模块系统的引入,创建出只包含所依赖的 JDK 模块的自定义运行时镜像,极大的减少 Java 运行时环境的大小)
(jshell 为 Java 增加了类似 NodeJS 和 Python 中的读取-求值-打印循环,在 jshell 中可以直接输入表达式并查看其执行结果)
(在集合上,Java 9 增加 了 List.of()、Set.of()、Map.of() 和 Map.ofEntries()等工厂方法来创建不可变集合 )
9、Java体系中掌握比较好的和有待提升的方面分别是什么?欠缺的方面可能会面对什么挑战呢?
10、做一个高并发高性能的项目的话,需要怎么才能提升服务器性能?(架构、中间件、数据库)
11、redis的路由怎么实现的?实际它使用的哪种算法实现?
12、框架的学习情况?学校的学习课程?
13、微信聊天,A给B发消息背后的实现原理?点击某人后怎么精准地发给这个人?如果对方离线消息存哪里?上线后拉消息还是推送消息?网络上怎么推送到用户栏的?地址端口号不停变更的话怎么推送?上线并建立长连接后从手机操作系统层面说说微信程序是如何能拿到网络上传来的消息的?
14、搜索中智能联想功能的关键实现与技术有哪些?存储关联词语的数据结构用什么实现?相关提示语不断改变的算法用什么?(考虑的维度有哪些)这个东西实际落地的话应该再考虑哪些?
15、推荐算法了解吗?深度学习的介绍?(神经网络的训练过程与注意问题、决策树、随机森林等)
16、平时的学习方式方法?效果怎样?
17、实际做项目需要额外考虑哪些模拟项目中没有的?(说了并发技术、数据库海量数据、安全性考虑、加密算法、分布式架构设计、RPC远程调用等)
18、反问1——评价【理论熟练,实践方面偏少】
华为官网批次现场面试
一面(25分钟)
自我介绍
项目(介绍、安全性已并发行展望);多个管理员权限不同时的控制措施——AOP与切断点考虑
spark项目(简单说了下spark streaming的场景、做法)
二面(15分钟)
(晚饭点到了,面试官一遍啃面包一边问我……)
自我介绍
自己的优缺点
项目介绍,我做了什么功能点
感到沮丧的时候
期望工作城市
问他问题——内推批与常规批的区别、我选的城市与岗位可以满足吗、公司项目能做毕业论文吗
字节跳动一面(30分钟)
1、进程线程的定义与区别
2、乐观锁与悲观锁的含义与区别
3、数据库事务隔离级别、MySQL实现它们的具体方式
4、非递归先序遍历二叉树(说了两种方法)
5、层序遍历二叉树
6、实现带有求最大值功能的栈,要求时间复杂度为O(1)
7、求n数组中最大的m个数(说了三种方法)
8、给出两个单链表的头节点,求他们的公共子节点(需要考虑有环)
——表现如何?挺不错的!!!(真开心)
——何时下次面试?HR两三天之内会给我答复
二面(50分钟)
影响服务器接收请求数量的因素有哪些?
I/O模型五种详解
代码题——给出一个n*n数字矩阵,寻找一条最长上升路径,每个位置只能向上下左右四个位置移动。
代码题——2n个人围成一圈, 两两握手, 没有交叉,一共多少种握手方式。
三面(55分钟)
hashmap底层实现?hashtable?concurrenthashmap?
hashmap多线程下可能存在哪些问题?(说了数据不一致、扩容时浪费内存、可能有死锁等)concurrenthashmap扩容过程?
代码题——mysql与redis实现乐观锁、悲观锁、分布式锁的代码 代码题——返回无序数据流的实时中位数
四面(60+分钟)
项目中我主要负责的业务?数据库ER图?哪些地方加了索引?联合索引了解吗,说一下它底层的实现?
数据库索引介绍?B+的好处?
快排与归并的比较?如果要排序的数组中有大量重复元素的话怎么优化算法?
逻辑题——岛上n个人,有人红帽有人白帽,每人只能看到别人头上的帽子,且彼此不能交流,如若确认自己是红帽子的话可以离开岛。有经过的渔民说了一句“你们中至少一人是红帽!”请问接下来发生什么情况?
代码题——k个链表排成一条值递增的有序链表
大学期间让我有成就感的事?
何时能实习?
反问——语言(用GO)