字节跳动Android开发师一面面经
时长:65min左右
面试内容:
1. Http输入url的具体工作过程
2. Tcp建立连接(三次握手)
3. DNS是什么?
(回答不太对,回答的是DNS和IP的互相映射,还提了一下树结构)
4. Http和Https的区别
5. 承接问题1,服务器是怎么把资源返回给客户端的
(这里回答了根据请求头中的客户端信息,比如Host等等)
(但面试官不太满意,问我知不知道MAC地址,我说知道)
(答案应该和MAC地址有关)
6. 学过数据库吗?什么是主键?主键只能有一个属性吗
(不是,可以有联合主键)
说一下常用的查询语句
(我回答中有group by,然后面试官就问我group by的具体内容,记不太清了,就随便说了说)
然后面试官提问了join
7. 进程和线程的区别,进程的通信方法
(回答了共享内存、信号量、管道和消息队列,面试官说消息队列其实是和共享内存是一样的)
8. 引用传递和值传递有什么区别?
(这里忘了面试官怎么提问的):
- String str="i" 和String str = new String("i") 有什么区别
(没回答出来,请面试官解答了一下)
第一个是常量,声明在常量池中;第二个是变量,声明在堆内存中。
- int a=127 int b=127 == 和equals的结果
==是判断地址,equals是判断值(我说反了!!)
9. 了解设计模式吗?
10. 内存溢出和内存泄漏
(这里答了一下内存泄漏,主要回答的是C++)
(然后内存溢出说不确定,是堆栈调用超限吗?面试官就给我解释了一下)算法题:
1、判断一个链表是否成环
2、给两个非递减的数组,求合并后数组的中位数