首页 > 实习Java后端面经(字节一二三面 + 网易一面)
头像
TheKernel
编辑于 2021-01-22 16:22
+ 关注

实习Java后端面经(字节一二三面 + 网易一面) 内部员工回复

字节跳动(电商业务)

一面

1.13 号下午 2 点

(写帖子的时候离一面已经过了一个星期了,细节记不清楚了,小伙伴们大致看看就好)

首先是自我介绍环节,面试官介绍部门相关的技术栈以及常用语言等,然后让我做了一下自我介绍(因为是视频面,建议准备一个3-5min的自我介绍稿,直接切屏照着稿子读就好了),随后开始技术问题

  1. 你介绍说使用Java做开发,但是我们项目主要是使用Golang(这当然是不介意)

  2. 经常使用Linux是吧,问你几个命令吧,查询当前目录下所有以.go结尾的文件数(这个应该是用find的exec参数就好了,楼主没有回答出来)
  3. 杀掉一个进程 -9 代表什么(强制) 还有什么其他参数使用kill命令后,操作系统是如何通知进程的(这里回答了进程间交互,后来在引导下讲了socket,最后没有得到很好的回答,过)
  4. 32、64位系统有什么区别

  5. 操作系统的寻址有哪些方式(分页、分段、段页式)

  6. 段页式查询一次数据总共需要几次访存

  7. 如何减少访存次数

  8. 来写个SQL吧,统计数据表time中每个小时记录数
    id p_date
    1 2020/08/29 00:10:10
    2 2020/08/29 01:10:10
    3 2020/08/29 01:10:10
    4 2020/08/29 02:10:10
    5 2020/08/29 01:10:10
  9. MySQL默认引擎是哪个,底层索引有什么作用,主键索引&非主键索引的区别

  10. 在浏览器中输入 www.douyin.com 浏览器提示找不到 IP 地址是什么原因

  11. DNS解析有哪两种,分别讲一下具体流程

  12. 问一下关于Java的问题吧,Java如何安全地停止一个线程(不等它运行结束)(这里楼主本来想回答 join() 不过 join() 要等它运行结束)

  13. 编程题

    旋转无环链表,将链表每个节点向右移动 k 个位置,其中 k 是非负数
    in:1->2->3->4->5->NULL, k = 2
    out:4->5->1->2->3->NULL

    这里就是非常建议小伙伴们写题时要问面试官,比如这题就是关于 k > list.length 时如何解决
  14. 编程题
    给定正整数 n,找到若干个完全平方数(比如 1, 4, 9, 16, ...)使得它们的和等于n,你需要让组成和的完全平方数的个数最少
    in: n = 12
    out: 3
    解析:12 = 4+4+4 (一个常规的动态规划问题,不过楼主当时光顾着复习Java,算法不到位,最后在面试官提醒下解决)

反问环节

因为当时那两道编程题楼主花了太多时间了,面试官没时间就走了(这时候真的以为自己已经凉了!)

总结

面试官水平很高,有不懂的千万不要不懂装懂,本来面试也没期望能答出所有问题;面试官很有耐心的,又不懂的地方完全可以询问,不要自己一个人闷想。

二面

1.20 号下午 5 点

首先是自我介绍环节,面试官介绍部门相关的业务(主要是电商平台的风险管控),然后让我做了一下自我介绍,随后开始技术问题

  1. Java内置对象Object,有什么方法以及对应的用处(这里我主要讲了hashcode()、equals()、toString()、clone()),在讲到clone的时候也问了常见的深拷贝与浅拷贝问题;之后面试官也提到了wait()以及notify()方法(楼主只记得notify()在观察者模式的应用)

  2. 因为在前面提到了设计模式,面试官就顺势问了设计模式的五大原则(SOLID)以及hash碰撞的几种解决方法

  3. final以及finalize关键字(楼主回答了 final常量、不可继承... finalize()类似于析构函数但是GC时只会调用一次...)

  4. 在讲到finalize的时候楼主作死提到了最近看了Thinking in Java(这里建议大家了解深入的可以多提一些,让面试官更深入问知道的问题,不深入了解的真的可以不要提了,血的教训),面试官就顺势问了,在Thinking in Java中印象最深的是哪个章节(楼主回答了有关堆栈的内容)

  5. 这里面试官来了个callback,在深拷贝时,实例变量是个对象,那么对应的变量应该存在堆栈中的什么地方(就是局部变量在堆栈中的创建)

  6. 看到你在简历中写了Spring以及SpringBoot,在Spring中FactoryBean和BeanFactory有什么区别呢

  7. 简述一下Spring中的AOP、Ioc以及DI

  8. 你们专业在大学中上过什么课程(这里楼主回答了数据库、数据结构...)

  9. 数据库中的ACID分别代表什么(常见,Atomicity原子性、Consistency一致性、Isolation隔离性、Durability持久性)

  10. 既然学过数据结构,简述一下B树和B+树的区别吧

  11. 计算机网络中,TCP如何保证可靠

  12. TCP为什么要使用三次握手而不是两次握手(这题划重点,楼主被问到好多次)

  13. TCP的序号机制有什么用处

  14. 场景题,两个大文件,如何得到两个文件中内容相同的行(两个文件都不能完全被内存读入)(这题答得不好,最后在面试官帮助下也没想到最优的解法,不过比一开始优化了很多),随后字节开会,面试官留下一道编程题

  15. 编程题,重排链表,leecode中等题,要求是使用原题算法 Leetcode143题原题 (这里真的发挥失常,思路非常清晰,但是没有用牛客网写过题,被报错误导了好久,不过所幸最后还是写出来了)

    反问环节

    最后因为面试官开会离开,少了反问环节,不过一开始部门介绍已经非常仔细了

    总结

    关于以上,楼主大概答出了九成,但是编程题发挥太差了,花了半个小时左右,剩下的就看命了,希望能进下一面!!!(第二天楼主还在打游戏就收到了hr的三面邀请,原定在1.22的下午,后来因为面试官22号请假,直接安排在了当天的下午5点)

三面

1.21 号下午 5 点

自我介绍...

  1. 学过计算机网络吧,你们学的是哪种模型(楼主回答 OSI七层、TCP四层以及课本整合的5层都有学习过)那具体讲一下OSI的七层分别是哪七层数据链路层具体有什么功能

  2. 具体讲一下TCP中的time_wait(在解释具体为什么选择2MSL时没有给出满意的回复)

  3. 知道HTTPS的证书具体是怎么交换的吗(这个没有回答出来)

  4. 编程题,给定一个数字n,求出对应1-n的所有子序列(常规的回溯法或者动规)

      in: n=3  out: [[1], [2], [3], [1, 2], [1, 3], [2, 3], [1, 2, 3]]

    (这里楼主选择较为简单的回溯,5min解决,学完之后面试官也提到用动规比较麻烦)

  5. 学过数据库吧,MySQL默认的隔离级别是什么,为什么选择这个级别(这里楼主忘记了,回答了Read Committed!可惜)

  6. 了解数据库的 MVCC 吗(不了解)

  7. MySQL的引擎有哪几种,它们有什么区别(常规题)

  8. 问问关于操作系统的吧,进程、线程和协程分别是什么以及他们之间的关系(常规题)

  9. 讲讲死锁吧,发生的条件以及如何避免(常规题,不过楼主好像漏掉了一个必要条件!可惜)

  10. 数据结构学过吧,不知道你熟悉什么语言,就是我们常见的字典,HashMap是怎么实现的(hash表顺便问了如何解决hash碰撞)

  11. 了解跳表这种数据结构吗(不了解)

  12. 来写个SQL吧

    给定一个表T,表结构如下: id, name, salary, city 根据两个条件查找name 1. salary 大于等于 10000 2. 所在 city 的平均 salary 大于等于 5000

    (一层嵌套SQL,最后在面试官的提醒下写出来了)

    反问环节

    问了关于具体需要学习的相关技术等(不过三面面试官是北京总部的,楼主base是杭州,让我具体入职后问二面面试官,二面面试官就是入职后的mentor)

    总结

    字节的面试官中的都是非常友好的,面试体验也特别舒服,小伙伴们主要要注意遇到不清楚的编程题一定要和面试官商量,不要一开始就上手写代码,这样真的很减分,先和面试官讨论题目不清楚的细节,然后简述自己的思路,最后再上手。

    字节的技术面结束了,而且三面感觉也挺不错的,希望可以收获offer!!!

网易(杭州研究院)

一面

1.21 号上午 10 点

TODO: 上面三篇连着写,写不动了,下次补上

更多模拟面试

全部评论

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