当前位置:   article > 正文

字节跳动客户端开发实习生面经(已offer)_hr眼中60分跟挂科

hr眼中60分跟挂科

时间线

2月25日一面,约45min
3月2日二面,约60min
3月8日三面,约60min
3月12日 Hr面

一面

0.自我介绍
【Java】
1.Integer和int类型的区别
2.讲一下重写、重载和多态
3.(接第2题)在什么场景下用,为什么要用,有什么作用
4.泛型有了解吗
5.设计模式有了解吗
答MVC、MVP和MVVM。说了MVC两两之间可以交互,M是模型核心(数据库),C是业务逻辑,V是视图(html)。面试官问没有数据库怎么办,我???
6.Java的工厂模式
https://www.runoob.com/design-pattern/factory-pattern.html
【数据库】
1.一张学生表,一张成绩表,让查所有挂科学生
SELECT Student.Sno, Sname
FROM Student, SC
WHERE Student.Sno = SC.Sno AND Grade<60
面试官问怎么不用JOIN,后来改成了LEFT OUTER JOIN并且解释了一下,面试官说不对啊,学生表里没记录的学生是不要的,最后直接用JOIN
【计算机网络】
1.TCP和UDP的区别
答案如下:
①TCP面向连接,UDP无连接
②TCP要求资源较多,UDP较少
③UDP程序结构更简单
④TCP面向字节流,UDP面向数据报
⑤TCP保证数据可靠性,UDP可能丢包
⑥TCP保证数据顺序,UDP不保证
2.TCP三次握手
3.HTTP协议用的哪个
答是TCP,我说了一下二者适用情况
4.如果让你设计一个协议怎么设计(应用层协议)
我说报文首部要有一些必要字段,版本,URL,数据长度啥的
面试官又问怎么实现这些???
其实应该是想问HTTP请求、应答报文的格式,以及如何分隔字段
后来面试官给我讲了分隔符
HTTP请求、响应报文格式:https://blog.csdn.net/a19881029/article/details/14002273
【算法】
1.一个数的二进制表示有多少个1
位运算优化:
x /= 2改为x >>= 1
x % 2改为x & 1
【反问环节】

当天晚上9点收到hr小姐姐消息,约二面。

二面

0.自我介绍
【Java】
1.Java中的集合
2.ArrayList的数据结构
3.ArrayList超出内存范围了怎么办
4.向ArrayList中添加100个,过程是怎样的
接下来问了好久HashMap
5.HashMap实现原理
6.HashMap的put操作是怎么实现的
7.HashMap负载因子
8.HashMap扩容机制,扩容因为链表太长还是数组太长
9.==和equals
10.hashCode
11.Java内存模型
5部分:
方法区、堆、Java虚拟机栈、本地方法栈、程序计数器
12.堆的划分
我答了四种引用:强引用、软引用、弱引用、虚引用
13.Java是怎么判断是否回收对象的
先答了引用计数器,面试官问Java中是用的这种吗?我说应该是可达性分析,判断从GC根到变量是否有引用链
14.为什么不用引用计数器?用可达性分析?
15.内存泄露
16.进程和线程
17.线程池有了解吗?(这个没复习到,太可惜了)
18.线程同步的方式
我说了互斥锁,信号量,信号
Java中的实现方式我说synchronized,还有wait和notify。
面试官问wait和notify是线程同步吗?
19.synchronized和volatile(Java并发编程的原子性、可见性、有序性)
【算法和数据结构】
1.用数组实现栈,要求O(1)时间复杂度获取栈的最小值
先说思路:创建一个类,里面有两个栈,一个栈是正常的,另一个栈在每次push时如果当前值比栈顶小,就入栈当前值,否则入栈栈顶值,这样可以保证栈顶永远是最小值
然后写代码
2.给一个数组,要求调整顺序,使得奇数都在前面,偶数都在后面
算法:双指针
【反问环节】
问了下面试官对我的评价,说基础还可以,写代码时有些corner case要注意。

第二天上午hr小姐姐说通过了,约三面。

三面

【Java】
1.Java如何创建一个线程
2.面试官写了一段代码,用匿名内部类的方式启动线程(实现Runnable接口),在匿名内部类里修改了外部类的变量,问这样写能否通过编译
答案是可以,但当时回答说记不清了,只记得非匿名内部类是可以的,面试官就让写一下什么叫非匿名内部类,写了一个成员内部类
3.上述代码里,在新的线程修改了变量之后加一行System.out.println(i),问打印的是几(外部类赋值i=0,匿名内部类里改成i=1)
回答打印1
4.如果在System.out.println(i)前加一句Thread.sleep(1000),打印几,为什么
【算法和数据结构】
5.是否了解位运算 >>,<<,&
6.手撕:判断一个byte里有几个1
7.手撕:把一个byte倒过来
8.手撕:算法题,大数相加,给出String a和String b,结果范围可能超出int,要求返回String
【反问环节】
请面试官介绍了一下所在部门和业务。

还有一些关于Java的问题,记不清了。
问完技术之后闲聊了一些,大概多久来实习,可以实习多久等等。

HR面

问了项目经历、个人在项目中的角色、压力最大的是什么时候、上学期间的每天安排、个人规划等等。很全方位地考察了软性素质。

Offer

3月15日收到实习Offer啦

本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号