目录
本文记录一些关于python语法和web框架的面试题目。背景为研一结束找后端开发日常实习。
注:
1.面试时自己不会的东西就一定不要写在简历上。除非是一些常用的知识点必考(例如计网里面的TCP)。其他的东西不写是不会问的。本人面试时只写了MySQL没写Redis,所以面试官根本没问Redis。但是项目里面写到了WebSocket,所以基本每次面试都问了这个。
2.语言选择:建议直接选Java。虽然python比较简单,但是python和Java其实有的知识点是一样的。计网,操作系统,数据库都是必问的。即使语言不同,但是关于垃圾回收,字典的底层原理知识也都是必问的。
3.其实不同的公司问的东西基本也都是一样的,都是八股文。只要背好了,然后把题写出来基本就会过得(仅限实习)。
字节:
一面:
- Python函数传参时一个星号和两个星号
- 生成器,迭代器
- 数据类型,可变类型不可变类型,元祖和列表
- 列表引用,浅拷贝,深拷贝
- 字典的实现原理
- 数据库存储引擎,索引,事务四个特性,三个问题,隔离级别。
- 三次握手干什么,两次行不行。
- 对称加密/非对称加密
- TCP为什么可靠,怎么让UDP可靠。
- 线程和进程,多线程,进程通信。
- 实现栈,可以返回栈的最小值。入栈出栈返回最小值都是O(1),没达到O1
- 两个数字用链表正序存储,计算二者之和
二面:
- 先问项目里最难的点,然后抓这个点一直问。
- 因为之前做过WebSocket在线聊天室,所以一直在问WebSocket和Socket。底层原理,如何连接。
- http和https
- http返回状态码
- 301和302有什么用,既然对于用户来说两个状态码得到的结果都是自动跳转,为什么要区分301和302。
- 出现两次的数字:异或
- 几亿个数字topK:堆排序/快速排序
- 非本位置的数组累乘:https://www.136.la/shida/show-15566.html
- 线程与进程,Python多线程,如何杀死线程。线程安全,死锁的原因和解决,
- 同步IO/异步IO
- MySQL索引B+树和hash索引
- SQL语句:输出成绩前10名,可能存在相同成绩,所以可能多于10人
一起教育:
- __init__ 和 __new__的区别
- 装饰器
- 设计模式
- python垃圾回收
- 元组的元素能否为列表?如果元组的元素是列表,那么这个列表内部可以修改吗?都是可以的。
- Django的中间件
- Flask/Django 的生命周期,从Nginx过来以后的流程。
滴滴:
- websocket和http/https的区别
- websocket聊天室,每一条消息的id号码怎么设置?
- websocket底层原理
- 三次握手四次挥手原因
- Nginx是干什么的
- Nginx为什么性能比wsgi好,或者说为什么大家都用Nginx
- 如何实现一个字典
- 数据库的隔离级别,解决的问题,是怎么解决的?
- 镜像二叉树的判断