• python 面试基础考试题收集


    
    
    默认参数
    #
    如果默认参数的值是一个可变数据类型,那么每次调用函数的时候,如果不传值就公用这个数据类型的资源 def f(k, l = {}): l[k] = 'a' print(l) f(1) #{1:a} f(2) #{1:a, 2:a} f(3) #{1:a, 2:a, 3:a}
    生成器相关
    def demo(): for i in range(4): yield i g=demo() g1=(i for i in g) g2=(i for i in g1) print(list(g1)) # [0,1,2,3] print(list(g2)) # [] # 生成器只能取一次值再取就空了

    生成器表达式相关、生成器

    生成器是在调用时才真的执行代码
    def
    add(n,i): return n+i def test(): for i in range(4): yield i g=test() for n in [1,10]: g=(add(n,i) for i in g) # n = 1 # g = (add(n,i) for i in (0,1,2,3)) # n = 10 # g = add(10,i) for i in g => add(10,i) for i in (add(n,i) for i in (0,1,2,3)) 在list(g)是生成器才真正去执行,此时n = 10 # g = add(10,i) for i in (add(10,i) for i in (0,1,2,3)) # g = add(10,i) for i in (10, 11, 12, 13) # g = (20,21,22,23) print(list(g)) # list(g) 才开始执行此时n =10
    # [20, 21, 22, 23]

     接口类和抽象类的区别

     #从java的角度看是有区别的
        # java没有多继承所以为了接口隔离原则就设计了接口这个概念,支持多继承了
        # java本来就支持单继承 所以就有了抽象类
    # python中既支持单继承也支持多继承,所以对于接口类和抽象类的区别就不那么明显了
    # 甚至在python中没有内置接口类
    

     

    arp 协议是如通过ip地址去找mac地址的

    A机器找B机器,A机器把请求发给交换机,交换机把这件事广播出去,告诉所有机器说要找B机器,
    其他机器接收到这条消息,会把消息的ip地址对比是不是自己的ip地址,如果不是就丢弃掉,
    如果找的机器是B机器,既ip是同一个ip,此机器就把mac地址发给交换机,交换机再把这个mac地址返回给A机器
    # ip tcp udp  arp分别属于osi七层中的那一层
    #ip协议:网络层
    # tcp udp协议属于  传输层
    # arp协议属于 数据链路层

    TCP协议为什么是三次握手四次挥手

    因为当Server端收到Client端的SYN连接请求报文后,可以直接发送SYN+ACK报文。
    其中ACK报文是用来应答的,SYN报文是用来同步的。但是关闭连接时,当Server端收到FIN报文时,很可能并不会立即关闭SOCKET,
    所以只能先回复一个ACK报文,告诉Client端,"你发的FIN报文我收到了"
    只有等到我Server端所有的报文都发送完了,我才能发送FIN报文,因此不能一起发送。故需要四步握手。

     为什么会出现黏包现象

     为什么会出现黏包现象
         首先只有tcp协议中才会出现黏包现象
         是因为tcp协议是面向流的协议
         在发送的数据传输的过程中还有缓存机制来避免数据丢失
         因此 在连续发送小数据的时候,以及接收大小不符合的时候都容易出现黏包现象
         本质还是因为我们在接收数据的时候不知道发送的数据的长短
    如何解决黏包问题
      在传输大量数据之前告诉接收端要发送的数据大小
      如果想更漂亮的解决问题,可以通过struct模块来定制协议

     什么是全局解释器锁-GIL

    在Cpython解释器中 同一时刻只能有一个线程访问cpu 
    锁的是线程
    是Cpython解释器的特性


  • 相关阅读:
    解决org.apache.jasper.JasperException: Failed to load or instantiate TagLibraryVal
    学java快2月了,对其应该有点清晰的认识了
    Linux(CentOS)挂载移动硬盘
    SEVERE: A child container failed during start
    JSTL 标签 详解
    转载自MSDN:Implementing a Membership Provider
    一个比较实用的服务器端模拟客户端Alert的代码
    简单的SQL分页法
    转载:Global.asax 文件 使用参考
    转载:缓存 Cache
  • 原文地址:https://www.cnblogs.com/directiones/p/10863480.html
Copyright © 2020-2023  润新知