字节飞书安卓一面凉经

字节面试

总结: 可能是因为我是Java技术栈去面Android的原因,问的基本都是八股。 猜到了可能会问并发编程,就去看了下相关内容,这块是和OS一起看的; 就算这样还是写不来并发。。着实是缺乏训练

问题1:算法题,给定一个只包含数字的字符串,问你点分十进制划出IP地址可以划出多少种,输出出来

答案1:讲了下思路, 直接DFS枚举一下就可以 每1/2/3个数字一点断, 然后把字符串转数字判断是否小于255 如果小于255接着去寻找下一个点断即可

但是字节的飞书链接里面的oj貌似bits/stdc++头文件没有包含stoi函数... 着实坑了我一手

讲一讲 synchronized关键字与锁升级机制

老八股了

问题2:手写并发, 两条线程交替输出 一个输出偶数一个输出奇数

答案2:... 只晓得Java的并发机制, 就没写过并发 根本写不出来, 其实很基础 当时只看了实现机制没有去实操 估计就是挂这里了 大家引以为戒

问题3:Java的类加载机制 双亲委派机制

答案3: 我从类的生命周期开始讲的,老八股了。

堆区和栈区有哪些区别, 刚才的手写线程题里,哪些是堆区哪些是栈区

随便分析下

问题4:手写单例模式

答案4:写了一个doubleCheck的, 有些小错误,在面试官提醒后改了一下 ; 讲了一下为什么要加volatile 为什么要doubleCheck, 还讲了饿汉式写法和枚举的写法

问题5:输入URL到渲染出页面的过程

答案5: DNS查询过程,迭代查询递归查询, TCP简历 HTTP请求 返回HTML页面 再次通过HTML页面中的信息去拿资源 (这里又回答了一下Http1.1的长连接)

问题6:HTTP与HTTPs的区别

答案6:讲了一下SSL,公私钥对加密,以及在HTTPs中对称加密和非对称加密分别在什么时候会启用

一道思考题: TCP流量控制简单介绍下  TCP的流量控制为什么要滑动窗口,如果不用会怎样?

我的看法: 用滑动窗口是因为TCP通讯双方每次收发双方都不是只传一个包,而是一批一批地传(简单描述了一下流水线传输) 这样可以保证效率,而滑动窗口机制本来就是设计来实现流水线传输的,不用的话效率无法保证;

如果收发双方不交换滑动窗口大小,为了保证流量控制,收发双方也要交换信息,可能是接收方的缓冲区大小, 但如果都要交换这个消息了, 不如直接复用滑动窗口的设计

#面经#
全部评论

相关推荐

2 20 评论
分享
牛客网
牛客企业服务