• 记录求职


    工作经验算上实习1年多,外包公司,员工各种离职,项目越做越难,工资不涨怒而离职。目前陷入找工作的泥潭,记录一些知识点的不足来督促自己吧。

    2018/5/29 zn公司 : 很棒的公司,环境好,员工都是年轻人,大牛很随和,问了很多题目,回答上来一部分,还答错了一部分。

    1、多个装饰器调用时先后关系

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    def decoratora(func):
        print 'decorator_a start'
        def wrapper():
            print 'in the wrapper_a'
            func()
        return wrapper
     
    def decoratorb(func):
        print 'decorator_b start'
        def wrapper():
            print 'in the wrapper_b'
            func()
        return wrapper
     
    @decoratora
    @decoratorb
    def test():
        print 'in the func'

     不进行调用test 此时结果:

    先调用decoratorB 再调用decoratorA

     接着加上 test()

    这里就有点迷糊了。为啥先调用wrapper_a呢,再加一点代码就看清楚了

    按 Ctrl+C 复制代码
    按 Ctrl+C 复制代码

    https://blog.csdn.net/jyhhhhhhh/article/details/54627850 这里有帖子说的很清楚了。

    2、定时任务 

      crontab -l 查看 -e 编辑 -r 删除所有

      ***** 执行命令

      这里分别指 分 时 日 月 周  

      其中*表示全部 ,表示和 -表示一个时间段 /n 隔一段时间(n的时间)

      crontab真实文件放在 /var/spool/cron 目录下可以写一个文件通过crontab命令来调用 不能直接修改文件

    3、python2和python3的区别

      3.1 print() 

      3.2 raw_input与input合并为input

      3.3可以使用中文作为变量名

    4、序列化

      这里是把内存的运行数据保存下来 模块是pickle  pickle.dumps 和 pickle.load

       josn 也是有这两个方法用法相同

    5、生成器和迭代器区别

      迭代器是一个实现了迭代器协议的对象,例如

    it=range(2)
    ite=iter(it)
    ite.next()

      生成器是迭代器的一种,是使用yield语句快速生成的迭代器,把一个普通函数变成生成器,每次执行到yield都会停止,调用next继续执行。

    6、树的遍历 前序中序后序

      前序遍历:根节点 左节点 右节点

      中序遍历:左节点 根节点 右节点

      后序遍历:左节点 右节点 根节点

    7、字符串找最大相同

      这里的思路是创建一个二维数组来保存相同位置的状态

      

    复制代码
    #coding:utf-8
    
    def getLongestString(str1,str2):
        len1=len(str1)
        len2=len(str2)
        record=[[0 for i in range(len2+1)] for j in range(len1+1)]
        print record
        maxNum=0 #最长匹配长度
        p=0         #匹配起始位
    
        for i in range(len1):
            for j in range(len2):
                if str1[i]==str2[j]:
                    record[i+1][j+1]=record[i][j]+1
                    if record[i+1][j+1]>maxNum:
                        maxNum=record[i+1][j+1]
                        p=i
        return str1[p-maxNum:p],maxNum
    
    
    
    if __name__ == '__main__':
        str1='abcefghijk'
        str2='dasdghijad'
        res=getLongestString(str1,str2)
        print res
    复制代码

    结果

    8、网络结构

      问了一个问题,在浏览器输入百度的网址,到显示百度的页面为止,数据是怎么工作的。

      首先要明确网络的七层协议:应用层 表示层 传输层 会话层 网络层 数据链路层 传输层 数据被一层层传输,传到服务器,然后再返回数据包,浏览器进行解析,打开网页。

      1.DNS解析 根据输入的域名进行解析到服务器的具体地址。这里浏览器会有缓存,如果没有则发出DNS请求到DNS服务器。

      2.发出TCP请求 这里的重点是三次握手(具体参数)

      三次握手

      3.http请求

      4.负载均衡 将自己ip的请求分配到服务器上

      5.浏览器渲染 

  • 相关阅读:
    .NET面试题解析(07)-多线程编程与线程同步
    .NET面试题解析(06)-GC与内存管理
    .NET面试题解析(05)-常量、字段、属性、特性与委托
    .NET面试题解析(04)-类型、方法与继承
    .NET面试题解析(03)-string与字符串操作
    .NET面试题解析(02)-拆箱与装箱
    .NET面试题解析(01)-值类型与引用类型
    StackExchange.Redis使用配置
    X--名称空间详解
    深入浅出话资源
  • 原文地址:https://www.cnblogs.com/di2wu/p/9110661.html
Copyright © 2020-2023  润新知