从阿里到字节,8月最新字节一面面经与答案解析(代码片段)

敲代码的程序狗 敲代码的程序狗     2022-12-27     551

关键词:

前言

金九银十临近,想要涨薪就看这一波了~最近看到阿里频繁上热搜,对这个公司的某些文化还是不敢苟同,所以我最后还是去了字节,去的是Java研发部门,现在已经拿到offer了,趁着入职之前有时间过来给大家讲一下我遇到的一些面试题及答案,要是觉得回答的不好,可以留言告诉我。文末也整理一些Java学习资料给大家,记得领取!

计网

1.HTTP下层用的什么协议?

  • HTTP只定义了应用层的东西,下层的可靠性要传输层来保证,可以用TCP,但没有说一定要用TCP ,只要是可以保证可靠性传输层协议都可以承载http,也可以基于sctp的http实现。
  • 当然HTTP也不是不能通过udp承载,但是是非标准的。

2.TCP是如何保证可靠性的?

TCP主要提供了校验和、超时重传、序列号/确认应答、最大消息长度、滑动窗口控制等方法实现可靠性传输

  • 校验和 通过校验和的方式,接收端可以检测出来数据是否有差错和异常,假如有差错就会直接丢弃TCP段,重新发送。(总共计算三部分:伪首部、TCP报头、TCP数据)
  • 序列号/确认应答 应答机制,发送端发送信息给接收端,接收端会回应一个包,这个包就是应答包。发送端传输一个包,接收包没有回应确认包(ACK包),就会重发。或者接收端的应答包,发送端没有收到也会重发数据。这就可以保证数据的完整性。
  • 超时重传 指发送出去数据包到接收到数据包之间的时间,如果超过了这个时间会认为丢包了,需要重传。假如一个包经过多次重发都没有收到对应确认包,会认为接收端异常,强制关闭连接。并通知应用通信异常强行终止。
  • 最大消息长度 在建立TCP连接的时候,双方约定一个最大的长度(MSS)作为发送的单位,重传的时候也是以这个单位来重传。理想情况下该长度数据刚好不被网络层分块。
  • 滑动窗口控制 超时重传机制存在效率低下的问题。窗口的大小实在无需等待确认包的情况下,发送端还能发送的最大数据量。
  • 拥塞控制:窗口控制可能带来网络拥堵问题。为此TCP引入慢启动机制,先发少量数据探路。此处引入拥塞窗口:开始时定义拥塞窗口大小为1;每收到一个ACK应答,拥塞窗口加1。(复习四种拥塞控制算法)

3.get和post有什么区别?

get和post的区别可以从以下6个方面来讲

  • 用途不同:get用于请求;post一般用于表单提交
  • 安全性不同:get明文传输,不安全,请求信息直接跟在URL后;post安全,信息放在请求body中
  • 数据长度限制:get对传输的数据长度有限制;post没有限制,因为请求信息都放在body消息体中
  • 是否自动缓存:get请求会被浏览器自动缓存;post需要手动设置缓存
  • 反复操作:get反复请求/回退是无害的;post回退后需要重新提交表单
  • TCP数据报:get发送过程中产生一个TCP数据报(浏览器会将http header+data 一起发送过去,服务器响应200,返回请求的数据);post会发送两个TCP数据报(浏览器先发送header,等待服务器响应100 continue,在发送form,服务器响应200 ok)

4.Cookie和Session的区别?

Cookie通过在客户端记录信息确定用户身份;Session通过在服务器端记录信息确定用户身份

MySQL

5.你们MySQL数据库用的哪个引擎?

InnoDB

6.为什么用InnoDB?

因为支持事务

7.项目中哪里用到事务了,需要来支持事务呢?

Java

8. HashMap是怎么解决哈希冲突的?

数组+链表

9. 是怎么优化的呢?

当链表容量达到8(默认)时,先检查此时数组容量是否达到了64,小于64的话先对数组进行扩容,而不是转换成红黑树,达到64了再转换成红黑树

10. 那红黑树会成为一颗很大的树吗?

11. 并发存在哪些问题?怎么解决这些问题的?

12. 有哪些锁,这些锁有什么区别?

13. 操作系统内存置换策略?

虚拟内存很重要的一个概念就是页面置换算法。

  • 最佳页面置换算法:永久不再使用的页面
  • 先进先出页面置换算法:即在内存中驻留最久的页面被淘汰
  • 最近未使用页面置换算法:最近时间内未使用的页面
  • 最少使用页面置换算法:最少被使用到的页面

14. 平衡二叉树是什么?

  • 二叉树
    a. n=n0+n1+n2
    b. n=n1+2n2+1(n=分支数+1、分支数=n1+2n2)
    c. n0=n2+1(由以上两式可得)
  • 满二叉树:深度为k ,且含有2k−1个节点的二叉树
  • 完全二叉树:深度为k,n个节点,当且仅当其每个节点与深度为k的满二叉树一一对应时,其为完全二叉树。
    a. 其特点:i.叶子结点只可能在层次最大的两层上出现; ii.对任一个节点,其右子树下的子孙最大层次为l ,则其左子树下的子孙的最大层次必为l 或l+1 。
    b. 具有n个节点的完全二叉树的深度:k=⌊log2n⌋+1
  • 二叉查找树/二叉排序树:左子树(如果不为空)上的结点值小于根结点的值;右子树(如果不为空)上的结点值大于根结点的值。
  • 平衡二叉树(AVL树) :一种特殊的二叉排序树,希望二叉排序树的高度尽可能小。
    a. 平衡二叉树是具有如下特征的二叉排序树:i. 左右子树深度之差绝对值不超过1;ii. 其左右子树也是平衡二叉树。
    注意:平衡二叉树的平衡调整方法

15. 稳定的O(nlogn)排序算法?

2

16. 什么是稳定?

17. 算法:剑指 Offer II 046. 二叉树的右侧视图 https://leetcode-cn.com/problems/WNC0Lk/

class Solution 
    public List<Integer> rightSideView(TreeNode root) 
        // 面试中打算使用两个参数递归,发现做不出来
        // 上午刚复习的BFS,也没想到用,还是做题太少
        List<Integer> result = new LinkedList<>();
        if(root == null) return result;

        Queue<TreeNode> q = new LinkedList<>();
        q.offer(root);

        while(!q.isEmpty()) 
            int sz = q.size();
            for (int i=0; i<sz; i++) 
                TreeNode cur = q.poll();
                if(i == sz-1) result.add(cur.val);
                if(cur.left != null) q.offer(cur.left);
                if(cur.right != null) q.offer(cur.right);
            
            
        
        return result;
    

学习资料

Java核心知识点总结


大厂面试真题


书籍资料


最新阿里p7技术体系:阿里p8跳槽到字节跳动

美团技术一面20分钟晚7点,因为想到下周一才面试,我刚准备出去打个羽毛球,北京的电话就来了。面试官各种抱歉,说开会拖延了。1、自我介绍说了很多遍了,很流畅捡重点介绍完。2、问我数据结构算法好... 查看详情

2022最新android面试题及答案整理(共计4176页pdf)包含腾讯字节百度小米阿里等大厂面试真题

前言最近在准备面试,然后复习下之前写过的项目,书籍,笔记,文章。一看很多知识点都没有印象,最可拍的是连自己为了防止忘记写的文章竟然都感觉不是自己写的。有些开始怀疑人生了。好了,废话... 查看详情

字节跳动头条研发---测试开发一面面经(附答案)

你好,我是测试开发工程师——小捣。欢迎和我交流测试领域相关问题(测试入门、技术、python交流都可以)。因为读者里有不少刚入门测试的同学,这两天抽空整理了一份字节测开实习的面试题答案,说实... 查看详情

字节一面面经

1、有什么具体的办法可以避免死锁2、redis过期数据删除的机制删除的策略3、实际项目中用到了redis哪些数据结构用list做了什么4、kafka如何保证消费者不会重复消费数据5、offset自动提交还是消费完之后才提交offset6、kafka有没有什... 查看详情

最新luajit32/64位字节码,从编译到使用全纪录(代码片段)

...些陈旧。如果你对LuaJIT编译Lua源文件为具体的32位或64位字节码,极其具体使用感兴趣的话,不妨快速读一下这篇文章。此文章针对尝试在iOS或Android上使用LuaJIT的小伙伴。限于篇幅,此处假定,你可以成功在iOS/Andr... 查看详情

字节跳动java实习面试凉凉经,含答案解析

Java虚拟机内存模型Java虚拟机内存模型中定义的访问操作与物理计算机处理的基本一致!Java中通过多线程机制使得多个任务同时执行处理,所有的线程共享JVM内存区域mainmemory,而每个线程又单独的有自己的工作内存&#... 查看详情

字节回应阿里涉侵犯男员工曾面试并通过一面;harmonyos2.0用户数升至5000万|极客头条...

...s)一分钟速览新闻点!HarmonyOS2.0用户数升至5000万阿里涉侵犯男员工曾到字节面试,字节回应&#x 查看详情

字节回应阿里涉侵犯男员工曾面试并通过一面;harmonyos2.0用户数升至5000万|极客头条...

...s)一分钟速览新闻点!HarmonyOS2.0用户数升至5000万阿里涉侵犯男员工曾到字节面试,字节回应&#x 查看详情

46.全排列,字节后端一面机试(代码片段)

给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。示例1:输入:nums=[1,2,3]输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]示例2:输入:nums=[0,1]输出ÿ... 查看详情

字节跳动面经分享(android客户端)(代码片段)

...双非学校,且非科班生,有三个App上架,大三在读9月1号投了字节的简历,9月中旬参加了笔试,9月底收到字节面试邀请10月初参加了第一轮面试,10月中旬参加了二面,10月27日参加了三面10月28日offermail一面(60分钟)前15分钟个人介绍,什么时... 查看详情

两年前端经验,从腾讯辞职的我跳槽到了字节(附面经详情及答案)(代码片段)

...毕业于广东一所一本大学,校招的时候拿到了腾讯、字节、拼多多等offer。最终选择了腾讯,在鹅厂待了两年多了,业务只能说一般般,比较忙,通常都是晚上十点左右才下班,而且需要随时待命。鹅厂其... 查看详情

两年前端经验,从腾讯辞职的我跳槽到了字节(附面经详情及答案)(代码片段)

...毕业于广东一所一本大学,校招的时候拿到了腾讯、字节、拼多多等offer。最终选择了腾讯,在鹅厂待了两年多了,业务只能说一般般,比较忙,通常都是晚上十点左右才下班,而且需要随时待命。鹅厂其... 查看详情

字节跳动一面(凉)(代码片段)

视频面试,上来就是一道算法题,LeetCode上的原题,440题(qaq,后悔当初没写到) publicintfindKthNumber(intn,intk)intcur=1;--k;while(k>0)longstep=0,first=cur,last=cur+1;while(first<=n)step+=Math.min(n+1,last)-first;first* 查看详情

java:“类型不匹配:无法从字节[]转换为字节[]”[重复](代码片段)

这个问题在这里已有答案: Convertinganarrayofobjectstoanarrayoftheirprimitivetypes7个答案 我在Java中遇到了这个奇怪的错误而且我完全卡住了。privateList<byte[]>sharedWorlds=Collections.synchronizedList(newAr 查看详情

字节跳动大数据开发面试题-附答案(代码片段)

此面试题来自牛客网友分享的字节跳动应届一面,面试时长一小时。网友情况:985本硕。参考答案由本公众号提供。如有错误,欢迎指正!以下为面试过程中提问,岗位为大数据开发:自我介绍+项目介... 查看详情

使用数组和队列的方式解析字节

下面的逻辑为:从socket通道中读取到接收的数据到字节缓冲区,将缓冲区中的数据输出到字节的数据btyes中,再将数组中的数据一个个读取到字节队列bytesto 中(过来掉不需要的字节),最终将bytesto的数据转换到数组arr中,... 查看详情

大厂面试题阿里字节最新springboot面试题15问(代码片段)

做Java开发,没有人敢小觑SpringBoot的重要性,现在出去面试,无论多小的公司or项目,都要跟你扯一扯SpringBoot,扯一扯微服务,不会?没用过?Sorry,我们不合适!今天小编就给大家整理了15... 查看详情

从编译器asm输出反向设计数组维度/结构布局?(代码片段)

...%rdi)ret答案该结构具有以下对齐要求:一个char可以从任何字节开始一个short可以从偶数字节开始int可以从byte开始,可以被4整除一个long可以从byte开始,可以被8整除str1.y场是一个long,从184开始,这暗示,str1.x可以持有184或180字节... 查看详情