2021年春招实习生面试


目录
1 阿里巴巴
2 字节跳动

阿里巴巴

新零售ICBU

20210207新零售ICBU部门实习生一面

Java

(1)java线程的创建方式和生命周期?线程池的参数?

(2)JVM的分代收集算法

(3)TCP三次握手过程;为什么需要三次不是二次呢?

(4)Spring IOC的概念;Spring或者是Springboot是如何注入属性;@Resource与@autiwer的区别

(5)Spring AOP的概念和常见应用场景?一个方法或类是否可以使用多个切面?

(6)JDK动态代理和CGLIB动态代理的区别

(7)final和finally关键字的区别

(8)Mybatis框架的作用?了解Mybatis的缓存机制么

只能记住这些了…

数据结构

算法

(1)场景题,一个100G的文件,里面是记录了访问本网站的IP,只有1G的内存,怎么找到访问前5次数的IP

循循善诱回答:

· 分治:将100G文件分成100份或者200份,依次读入内存

· 怎么保证几个文件的IP地址不重复,哈希算法

· 怎么找到前5的IP,使用堆数据结构,每次弹栈顶。

项目

(1)介绍一下简历中的一个项目,具体有哪些流程

(2)为什么要使用ActiveMq,不选择RockitMq或者Kafka(答:历史遗留问题)

(3)分布式项目是怎么进行服务划分的。

20210222新零售ICBU部门实习生二面

总结:二面主要根据阿里高并发下的实际情况来问

Java

(1)什么情况下出现OOM?定位OOM(full GC)的工具?答:递归栈溢出、死循环、线程无限创建等;定位OOM的工具_杨军的博客-CSDN博客

(2)设计模式了解吗?说一下工厂设计模式?满足那些设计原则?

数据结构

(1)高并发下使用HashMap会出现死循环,为什么

算法

(1)最长无重复子串

项目

(1)介绍一下项目

(2)高并发情况下怎么保证支付正确?答:事务保证支付过程;加缓存抵御流量

(3)数据库组合索引相关问题? 不了解组合索引…

(4)10亿数据量的表如何优化?答:分表分库、主从复制

20210223新零售ICBU部门实习生三面

总结:三面主要是面试官说一个知识点,自己根据这个知识点说一下自己知道的东西

Java

(1)了解JDK里面的集合吗?答:Collection和Map,并展开叙述

(2)JVM的分代收集算法?其他GC算法

(3)Redis的主要数据结构

(4)Redis集群中,客户端怎么选中其中的一台?这个没答出来,因为自己项目用的是单台Redis

(5)对SpringCloud框架的理解

(6)对Spring框架的理解?源码有没有看过?

(7)HashMap和其他Map结构的区别,ConcurrentHashMap是怎么加锁的?

(8)智力题:25*17用心算

(9)智力题:3L和5L的桶,怎么倒出4L的水?考虑两种方法,先到3L和先到5L的情况

(10)问了高考分数….研究生排名….

数据结构

(1)MySql的索引的数据结构?答:根据存储引擎,Innodb主要为B+树

算法

(1)描述一种排序算法

项目

(1)介绍一下自己印象最深刻的项目

(2)项目中ActiveMQ和Redis的用途

(3)参加过比赛吗?谈谈比赛的项目

新零售CBU

20210304新零售CBU部门实习生一面

Java

(1)java中那些数据结构

(2)JVM的运行时数据区域

(3)String字符串存放的位置

(4)数据库中一个SQL执行通过哪些步骤?答:结合mysql的结构来答的

(5)数据库除了主键索引,通过其他索引是怎么得到数据的?

(6)智力题:两根香,里面的材质不均匀分布,每根香燃烧都需要一个小时,问:怎么通过这两个香来得出15分钟?

答:两个香,首尾相接。第一次燃烧,每个都烧一半,是30分钟;第二次,依然首尾相接,再烧一半,就是15分钟。

数据结构

算法

项目

(1)在学校做的项目内容?CountDownLatch的运用

(2)电商网站用的中间件,如Redis,Spring Cloud有没有深入了解源码?答:关于Redis的深入

20210305新零售CBU部门实习生二面

二面主要根据项目来进行提问,包括项目设计的思路和具体设计方案

Java

(1)Springboot注解的底层实现?@SpringbootApplication里面包含其他哪些注解?

数据结构

算法

项目

(1)实验室项目整个的设计过程?自己负责的部分?

(2)比赛项目?项目有没有后续?

(3)项目使用Springboot搭建的设计思路?

20210313新零售CBU部门实习生hr面

总体聊的蛮开心的,问了些个人信息和项目的进展状况。

20210324新零售CBU部门实习生录取意向书

字节跳动

TIKTOK

20210318TIKTOK实习生一面

总的感觉,一面一开始答的懵懵懂懂的,后面的问题答的更好。

Java

(1)HashMap的底层结构?为什么用红黑树不用AVL树?

(2)为什么要划分用户态和内核态?什么情况下会调用内核态的操作?答:和硬件相关的东西,和CPU资源相关的东西

(3)操作系统的IO密集型和CPU密集型了解吗?答:没接触过这个概念

参考:什么是CPU密集型、IO密集型?_Java技术栈,分享最主流的Java技术-CSDN博客_cpu密集型和io密集型区别

如何设计CPU密集型与I/O密集型程序_慕课手记

Java中的不同

(4)用现在了解到的知识,如果设计一个网站,怎么设计?

答:一开始,用户量小,单体系统的MVC模式,可以基于springboot发布应用程序,并将服务器IP进行外网映射;随着用户量或者QPS到万级,可以加机器或者拆分系统;到十几万级,需要加入Redis缓存,甚至进行Redis集群处理。。。(还没说完时间不够了,进行算法题了)

(5)Redis怎么做读写分离?怎么保证Redis和数据库的双写不一致情况?如果没写进去Redis,但是mysql数据修改了怎么办?答:Redis读写分离基于主从复制;Cache Aside Pattern模型,读的时候,先读缓存再读数据库,写的时候,先删掉缓存再写数据库;Redis写入失败,可以在高峰期的时候,将Redis热点数据键的有效期设置短一点。

(6)HashMap插入和查询的时间复杂度?

数据结构

(1)红黑树和AVL树的区别

算法

(1)翻转链表(和Leetcode稍微不同)

k=2 时:由1-2-3-4-5-null变为5-4-1-2-3-null

项目

(1)PageHelper分页怎么做的?100万的数据,5条一页,怎么找到第10万页的那5条数据?答:写了伪代码的SQL语句,其他的没懂表达的意思;说了可以通过Redis去存储大数据量的一定范围的数据记录。

参考:mysql百万级别数据查询_MySQL百万级数据量分页查询方法及其优化_hateful harmful的博客-CSDN博客

什么是覆盖索引?如何利用覆盖索引进行SQL语句优化?_斜阳雨陌-CSDN博客_覆盖索引

SELECT * FROM product WHERE ID > =(select id from product limit 866613, 1) limit 20

20210318TIKTOK实习生二面

二面是在一面结束后几分钟就进行了,总体答的很棒

Java

(1)HashMap、HashTable、ConcurentHashMap的区别?答了锁相关、线程安全相关、底层结构相关的东西

(2)Java的volatile关键字?答:先说了Java线程的三大特性,这里主要保证可见性,再结合JMM模型去说刷新内存的事情

(3)Java中堆和栈的作用?答:堆主要存放对象,栈主要存在方法中的变量,并在方法调用结束后释放内存。

(4)Mysql中索引的实现?答:B+树,加快查找。追问了B+树和硬盘文件存储的关系,这个不清楚细节。

参考:B树与B+树与磁盘读取的联系_键盘上的青春-CSDN博客_b树 磁盘

深入理解数据库索引采用B树和B+树的原因_菜鸟不会飞-CSDN博客_b树和b+树

(5)NOSQL了解吗?答:Redis是典型,然后阐述了关系型数据库和非关系型数据库的差别。

(6)线程可以无限创建吗?答:不可以,所以会出现线程池机制。1 空闲的线程可以处理其他请求(提高利用率) 2 一个服务被限制创建线程的数量之类的(线程管理),这点类似于Hystrix的资源隔离。

(7)了解一致性哈希算法吗?答:基本的机制还有虚拟节点保证负载均衡。

数据结构

(1)红黑树在Java里面的应用?答:TreeSet和TreeMap,看面试官的意思,好像还有其他的..但其他的就不知道了

算法

(1)子集(原数组中不含有重复元素)

利用回溯法实现,并在基础上优化空集的添加位置

(2)子集(原数组中含有重复元素)

利用排序进行排重

(3)搜索旋转数组

利用优化的二分法实现的。

项目

(1)介绍一下项目

答:这里介绍的是电商网页项目,说了分布式系统是基于SpringCloud做的,系统拆分为哪几个服务,怎么调用服务

(2)在项目中碰到的技术难题(不是Bug)

答:说了关于购物车功能的实现,先调研了相关可能的实现,有基于mysql的,有基于Redis的,这里采用Redis设计功能,并设计里面购物车的数据包结构。

(3)怎么实现物品详情的显示?

答:数据库采用mysql,ORM工具采用Mybatis,业务逻辑中采用Map来接收数据,并返回给前端页面,前端页面使用freemarker进行渲染。

220210318TIKTOK实习生三面(Over)

leader面,以项目的出发点为主,追问为什么要这样做。总体感觉,被牵着走。。答的不是很好,没有自信

而且对实习时长要求较长,实验室这边时间暂时不允许。

Java

(1)学习Java后端技术的过程?Java编程思想书、到视频入门框架、到书本细化、到博客和网站解决问题。

(2)为啥学Java不学Go

数据结构

算法

(1)应用题:上海1号线的徐家汇到上海10号线的新天地站,找到最优路径

· 整体的数据结构怎么设计?先说了树,因为比较熟悉,但是发现站是双向的,后面说图…

· 每个站的数据结构怎么设计?先说了保存临接节点之类的。。后面在引导下,写了类似双向链表的结构,加入map结构保存不同线路的前后站。

项目

(1)实验室项目介绍一下?串行化的设计,为什么用多线程去做?因为考虑到中间会有状态返回给客户端

(2)电商网站的具体设计思路?


文章作者: 小小千千
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 小小千千 !
评论
  目录