python 基础面试题理论

本文解答了技术面试中常见的问题,包括Python的__dict__作用、缓存穿透、击穿和雪崩现象、MySQL索引原理、Linux常用命令、HTTP协议特性及无状态解决方案、Cookie与Session的区别等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、python的__dict__的作用,平常怎么使用?

查看对象的属性,元类编程的时候有用。一般不自己写库基本上不会用到元类编程,__dict__的相对用途就小很多。

2、缓存穿透、缓存击穿、缓存雪崩了解么?简述下

缓存穿透
在高并发下,查询一个不存在的值时,缓存不会被命中,导致大量请求直接落到数据库上,如活动系统里面查询一个不存在的活动。
缓存击穿
在高并发下,对一个特定的值进行查询,但是这个时候缓存正好过期了,缓存没有命中,导致大量请求直接落到数据库上,如活动系统里面查询活动信息,但是在活动进行过程中活动缓存突然过期了。
缓存雪崩
在高并发下,大量的缓存key在同一时间失效,导致大量的请求落到数据库上,如活动系统里面同时进行着非常多的活动,但是在某个时间点所有的活动缓存全部过期。

3、了解mysql索引么?干什么用的?

索引(书签)可以大大提高MySQL的检索速度。
需要确保该索引是应用在 SQL 查询语句的条件(一般作为 WHERE 子句的条件)。
实际上,索引也是一张表,该表保存了主键与索引字段,并指向实体表的记录。
它的缺点:虽然索引大大提高了查询速度,同时却会降低更新表的速度,如对表进行INSERT、UPDATE和DELETE。因为更新表时,MySQL不仅要保存数据,还要保存一下索引文件。

4、常用的Linux命令

查询内存的命令:top
终止进程: kill -signal PID
查询动态log:tail -f

5、了解http协议吗?怎么解决Http协议无状态协议?

http协议和tcp/ip协议族内的其他众多的协议相同,用于客户端和服务器间通讯。
HTTP协议的特点

  • 简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、PUT、DELETE、POST。每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。
  • 灵活:HTTP允许传输任意类型的数据对象。
  • 无连接:限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。
    可见,HTTP不是字面意义上的没有连接,事实上,这个定义也符合HTTP短连接的定义,但无连接强调的是HTTP的特性,短连接可理解为一种实现。
  • 无状态:HTTP协议是无状态的,HTTP 协议自身不对请求和响应之间的通信状态进行保存。任何两次请求之间都没有依赖关系。直观地说,就是每个请求都是独立的,与前面的请求和后面的请求都是没有直接联系的。协议本身并不保留之前一切的请求或响应报文的信息。这是为了更快地处理大量事务,确保协议的可伸缩性,而特意把 HTTP 协议设计成如此简单的。

相对于特性3:HTTP 的设计者有意利用这种特点将协议设计为请求时建连接、请求完释放连接,以尽快将资源释放出来服务其他客户端。引入Keep-Alive模式后,Keep-Alive功能使客户端到服务器端的连接持续有效,当出现对服务器的后继请求时,Keep-Alive功能避免了建立或者重新建立连接。
相对于特性4:http协议是无状态的,无状态协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息
无状态协议解决办法: 通过1、Cookie 2、通过Session会话保存。

6、简述cookie和session的区别

1 .存取方式的不同
2 .隐私策略的不同
3.有效期上的不同
4.服务器压力的不同
5 .浏览器支持的不同
6.跨域支持上的不同
(具体自己补充吧)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值