• 常见面试题


    基础知识
    1.可变类型:整形 长整型 浮点数 复数 布尔类型 字符串 元祖
    2.不可变类型:列表 字典
    3.GIL锁:GIL锁和cpython语言没啥关系,出现在cpython解释器中,在一个进程中开启多个线程,同一时刻只有抢到GIL的线程会进行执行
    4.GIL锁的影响:使用Cpython解释器,在多个cpu环境下,GIL锁会使多线程任务的执行效率降低
    5.list和tuple区别: list可以添加重复的元素,允许修改,tuple是不可以添加重复的元素,而且值使不允许修改的
    6.装饰器:外层函数嵌套内层函数,外层函数并且把内层函数名称返回
    7.装饰器的应用场景:在不修改某个函数的基础上添加新功能
    8.字典key的类型:字典key只能是不可变类型
    9.python中*args 和 **kwargs区别: args传入的值会保存在元组中,kwargs传入的值会保存在字典中(传入的参数是有名参数)
    10.python的数据结构:列表 字典 元祖 集合 字符
    11.lambda表达式:是一个匿名函数,在代码被执行的时候构建的函数对象并返回
    12.并发和并行:并发是一个cpu在多个程序上进行切换操作,并行是多个cpu同一时间不停的同时执行多个程序
    13.python中一些常用模块:os json time sys random
    14.什么是tcp/ip协议:tcp/ip协议是网络协议,是面向连接的一种协议,发送数据前双方要建立连接,tcp提供可靠的服务,通过tcp连接数据不会丢失,没有重复,并且顺序一定
    15.什么是udp协议:upd协议属于一种无连接协议,发送数据前不需要建立连接,是没有可靠性的协议,只负责将数据发送对方接收没接收到是不管的
    16.tcp和udp的区别:
    tcp协议
    是面向连接的协议,数据传输的过程中是可靠的
    只能实现一对一
    面向字节流的传输方式
    udp协议
    没有连接,数据传输的过程中是不可靠的
    可以实现一对一 一对多 多对多
    面向报文的传输方式
    17.udp的应用场景:游戏 媒体通信 直播
    18.socket和websocket区别:socket是对tcp udp协议封装的一个实现,方便使用,websocket是基于html5的一种协议,实现了全双工通信,而且websocket也是基于http协议实现的,使用http协议初始化,在初始化的过程中升级为websocket协议
    19.post和get请求的区别:
    post请求:重点是向服务器发送数据,post请求支持上传大量的数据,post请求数据是放在请求头不 是安全的
    get请求:只要是向服务器获取数据,get请求传输的数据量小(受到浏览器url长度的限制),get请求传输数据是不安全的,因为get请求把数据放在url中
    20.对称加密和非对称加密:
    对称加密指的是加密和解密使用的是同一种密钥
    非对称加密: 既有公钥和私钥,公钥可以随意发布 私钥只能自己知道,发送文件的时候使用公钥加密,接收方使用私钥解密,私钥不需要发送进行解密,所以非对称加密是安全的
    21.cookie:cookie是存储在浏览器端的 以键值对的方式,客户端请求服务器的时候自动携带cookie
    22.session:session是存储在服务器端的,一般在传输过程中会把sessionid存储在cookie中以键值对的方式,
    23.cookie和session区别:
    cookie:数据是存放在浏览器端不是安全的,cookie的保存数据不能超过4k
    session:数据是存放在服务器端的,session并无大小限制
    24.常见的状态码
    200 表示请求成功
    301 表示资源永久重定向
    302 表示临时重定向
    404 表示未找到资源
    405 表示请求方法被禁止
    500 表示服务端错误
    25.生成器:
    函数中带有yield就可以称作是一个生成器,
    26.迭代器
    实现了iter 和 next方法的就可以成为是一个迭代器,生成器也是一个迭代器
    数据库
    1.数据库分为关系型数据库和非关系型数据库
    关系型数据:mysql
    非关系型数据库:redis mongodb
    2.什么是sql
    结构话查询语句简称sql
    3.innoDB和myisam的区别
    innoDB:支持事物 支持行级锁和外键约束,支持hash索尼,索引是聚簇索引,不支持全文索引
    myisam:不支持事物,不支持行级锁和外键约束, 不支持hash索引,非聚簇索引,支持全文索引
    存储空间:myisam可被压缩,存储空间小,innoDB需要更多额内存和和存储,他会在主内存中建立其专用的缓冲池用于告诉缓冲数据和索引
    查询比较多的话使用myisam引擎更优
    插入更新 删除 比较多的话使用 innodb引擎更优
    4.什么是索引
    索引是一种数据结构,数据库中一个排序的数据结构,协助快速查询
    5.索引的作用
    加快查询速度,提高查询效率
    6.索引的缺点:
    时间方面:创建索引和维护索引要耗费时间,当对表中的数据进行增加 删除 修改的时候,索引也要动态的维护,
    空间方法:索引需要占物理空间
    7.索引主要有哪些
    唯一索引(可以为null) 主键索引(不允许为null) 普通索引
    8.索引的数据结构
    b+树索引
    9.什么情况下需要创建索引
    频繁作为查询条件的字段进行创建索引
    更新频繁的字段不适合创建索引
    10.创建索引应该注意什么
    非空字段
    索引字段越小越好
    11 数据库使用b+数据的原因
    b+树空间利用率高,可减少i/o次数
    适合随机检索和顺序检索
    12.mysql四种隔离级别
    读未提交:可能会产生脏读 幻读
    读已提交:可能产生幻读
    可重复读:幻度可能会发生
    串行化:
    13.什么是脏读
    事务A修改了一个数据,但未提交,事务B读到了事务A未提交的更新结果,事务B读到的就是脏数据。
    14.幻读
    一个事务中两次查询同一条语句,得到的结果是不一致的
    15.jwt问题
    jwt是什么:json web token 跨域身份验证
    为什么使用jwt: 数据保存在客户端
    jwt工作原理: 在服务器端进行用户身份验证之后,签发的一个json对象并将其发送到客户端,之后当用户与服务器通信时,客户在请求中发回json对象,为了防止用户篡改数据,服务器将在生成对象时添加签名,并对发回的数据进行校验
    jwt组成: 头部 载荷 签名
    16.

  • 相关阅读:
    PowerDesigner_15连接Oracle11g,反向工程导出模型图
    angular学习
    GoEasy消息推送
    Spring 工作原理
    JAVA解析HTML,获取待定元素属性
    设计模式之工厂方法模式
    设计模式之单例模式
    通过Java代码获取系统信息
    centos7下NAT模式下设置静态ip
    关于在Spring项目中使用thymeleaf报Exception parsing document错误
  • 原文地址:https://www.cnblogs.com/happyyou123/p/16119853.html
Copyright © 2020-2023  润新知