字节跳动日常实习一面面经

岗位:字节跳动广告数据平台Java后端研发实习生
面试轮次:一轮技术面

1.基础知识
  1. TCP/IP四层模型
      (1)应用层, 负责处理应用程序的逻辑,常用协议有HTTP协议、DNS域名服务、FTP协议等
      (2)传输层,进行端到端的数据通信,常用协议有TCP协议、UDP协议
      (3)网络层,IP数据包的封装和路径选择,常用协议有IP协议
      (4)网络接口层

  2. RPC协议
      RPC 即 Remote Procedure Call,是一种计算机通信协议,该协议允许运行于一台计算机的程序调用另一台计算机的程序。
      其与HTTP协议的相同点是底层都是基于socket进行实现,都可以实现远程调用,都可以实现服务调用服务。
      其与HTTP协议的不同点是RPC要求服务的调用方和提供方都要使用相同的编程语言甚至是编程框架,而HTTP并不用关注语言的实现,服务提供方只需要提供restful风格的接口给服务调用方即可。
      RPC协议较HTTP协议的优势在于不用进行臃肿的消息封装,基于原生TCP通信,速度快,效率高。

  3. 网络I/O模型,NIO、BIO
      见百度日常实习一面面经

  4. 为什么会引发死锁问题?如何解决死锁问题?
      死锁成立的四个条件:(1)存在互斥资源 (2)线程占有一个互斥资源并等待另一个互斥资源,等待的互斥资源被另一个线程所占有 (3)资源不能被抢占,资源只有在线程执行完后才能释放 (4)资源循环等待
      在Java中我们可以使用reentrantlock来解决死锁问题,通过响应中断机制来强制获取锁或者设置获取锁的超时时间来解决。

2.Java基础
  1. 什么是JDK
      JDK是Java开发工具包,包括Java运行环境(JRE),Java工具(javac,java,javap等),Java基础类库
  2. String类与StringBuffer类与StringBuilder类之间的区别
  3. synchronized的底层实现原理
      Java中synchronized的实现原理与应用
  4. synchronized和reentrantlock的区别
      (1)reentrantlock显示的获取锁、释放锁,synchronized隐式的获取锁,释放锁
      (2)reentrantlock是在API的层面实现锁机制的,synchronized是在JVM的层面实现锁机制。
      (3)reentrantlock可以实现公平锁
      (4)reentrantlock使用的是乐观锁策略,synchronized使用的是悲观锁策略
      (5)reentrantlock是lock接口的实现类,synchronized是Java的保留关键字
      (6)reentrantlock可以让等待锁的线程响应中断或者设置获取锁的超时时间来解决线程的阻塞时间过长问题,synchronized不能进行这些操作,等待锁的线程会一直被阻塞。
3.数据库基础
  1. 当需要使用大量事务时使用哪种数据库存储引擎?
      使用InnoDB,InnoDB通过事务提交、回滚、恢复等功能保证了事务安全,MyISAM不支持事务,也不支持外键。但MyISAM访问速度快,写效率比InnoDB更高
4.算法题

  字符串字符的全排列(回溯算法的经典题)

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
字节跳动是一家知名的互联网公司,提供多样化的在线服务和产品。在字节跳动的go实习面经中,通常会包含以下几个方面的内容: 1. 基础知识测试:字节跳动会对应聘者的基础知识进行测试,例如数据结构、算法、计算机网络等方面的知识。这一部分的问题可以是选择题、填空题、编程题等形式,用于评估候选人的基础水平。 2. 项目经历和实践能力评估:字节跳动也会关注应聘者的项目经历和实践能力,询问候选人在实习或学校项目中担任的角色、面临的挑战、解决方案以及取得的成果。通常会以开放性问题形式出现,侧重考察候选人的思维能力和解决问题的能力。 3. 技术深度面试:在技术深度面试环节,字节跳动会聚焦于候选人在Go语言相关技术方面的掌握情况。例如对候选人对Go语言的理解、熟练程度以及应用经验进行详细的询问和讨论。 4. 沟通与团队合作:字节跳动非常注重候选人的沟通能力和团队合作能力。所以在面试过程中,他们可能会提问候选人在团队合作中的角色、如何和其他成员协作以及如何解决团队遇到的问题等。 5. 自我介绍和问题回答:面试的最后要求候选人进行自我介绍,这是一次展示个人的机会。同时,面试官还可能询问一些与实习相关的问题,了解候选人对实习的期望、目标以及对字节跳动的了解程度。 综上所述,字节跳动的go实习面经主要包括基础知识测试、项目经历和实践能力评估、技术深度面试、沟通与团队合作以及自我介绍和问题回答等环节。应聘者需要准备充分,熟悉Go语言相关知识,并能够展示自己的技术能力、项目经历以及团队合作等方面的能力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值