面经分享(字节-客户端)

223 阅读1分钟

1 go内存如何实现的?

2 go协程用过吗?

链接

3 内存栈和堆的区别?

栈和堆相比有这么几个好处:

栈的内存管理简单,分配比堆上快。
栈的内存不需要回收,而堆需要,无论是主动free,还是被动的垃圾回收,这都需要花费额外的CPU。
栈上的内存有更好的局部性,堆上内存访问就不那么友好了,CPU访问的2块数据可能在不同的页上,CPU访问数据的时间可能就上去了。

4 arraylist如何实现扩容?

5 linux常用命令?rm -f 什么意思?

6 http版本之间的区别?

7 http和tcp关系?

http在应用层,发起http请求报文,需通过TCP传输协议进行连接

8 tcp连接后传输数据有限制吗?

长连接和短连接?
长连接理论上可以,但一般情况下也会限制数据大小,防止恶意客户端访问服务端。

9 tcp断开过程,为什么要等待2MSL?

10 数据库的索引是什么?以什么结构存储的?有什么特点?

11 数据库范式?

12 C语言内存分配函数是什么?需要参数吗?free不需要参数,为什么?

13 java实现多线程,用thread还是接口?区别?

14 单线程对i=0执行10000次结果是10000,多线程对变量i=0执行一万次,结果还是10000吗?

可能出现:A,B线程同时得到某个一样的值加1

15 算法:两个有序数组,返回中位数