zoukankan      html  css  js  c++  java
  • 面试遇到的一些有意思考题总结,考考你能通过吗?

    最近面试了一些公司,遇到面试官们出的一些比较有意思的面试题,在这里,我总结一些自己觉得印象深刻的,更新分享給大家。

    希望给到大家一些帮助!

    [From 滴滴打车]

    面试题1、在linux系统上,有哪些命令是打死都不能随便执行的?

    举例:
    一个是:rm –rf / 这个命令对于系统来说是致命的,一定不要使用。
    其次是:chmod – R 777 / 这个会破坏整个系统的权限体系,因此不要使用。

    面试题2、rm -rf /$FOO 和 cd /tmp/logs;rm -rf ./* 这个可以执行吗?

    不能!不能!不能!

    $FOO 变量如果为空格开头,会把文件系统整体删除。

    ;由于不会判断前面的命令cd /tmp/logs是否执行成功,同样执行后面rm ,当logs不存在或者执行异常错误时,rm -rf也会执行,是相当致命的。

    面试题3、谈谈HTTP返回码中的499、500、502、504的出现场景和区别

    首先,谈谈499,它区别于500+系列,是Nginx端返回的,是客户端(即连接nginx的前段客户)主动断开连接。

    500 502 504 都是后台服务错误导致。

    500:很明显的程序内部错误,很常见的出现是由于程序的内部语法逻辑出错导致。

    502:Bad gateway!常出现的一种场景,比如我们用nginx做代理,当upstream到后端的某一个服务,这个服务没任何响应。nginx就会return 502的响应。

    504:Gareway timeout! 表示后端的服务能接收请求,但是迟迟未能完成整个代码逻辑,后台服务只能主动超时断开请求,这个时候return 504.

    [From 阿里巴巴]

    试题1、Python去重一个list,用到哪些方式?

    方法1、

    old_list = [2,2,3,3,4,4,53,4,5,2]
    new_list = []
    for i in old_list:
        if i not in new_list:
        new_list.appen(i)
    print i 

    方法2、

    
    old_list = [2,2,3,3,4,4,53,4,5,2]
    
    new_list= list(set(old_list))
    
    //按照原来的顺序排序
    
    news_ids.sort(ids.index)

    试题2、Python的静态方法特征

    本质的区别:

    1、定义的时候,需要传递cls类实例。静态方法无需传入self参数,类成员方法需传入代表本类的cls参数.

    2、静态方法是无法访问实例变量的,而类成员方法也同样无法访问实例变量,但可以访问类变量,静态方法有点像函数工具库的作用,而类成员方法则更接近类似Java面向对象概念中的静态方法.

    试题3、用shell比对文件,然后去除两个文件中重复行

    for i in comm -12 1.txt 2.txt;do

    sed -i "/$i/d" 1.txt ;

    sed -i "/$i/d" 2.txt ;

    done;

    试题4、谈谈UDP包攻击的源IP伪造技术

    我觉得TCP因为需要建立三次握手,所以需要进行TCP协议的源IP伪造会相对复杂,所以很多DDOS中的攻击利用的协议伪造都是基于UDP的协议进行的,如:DNS反射攻击、NTP反射等等

    伪造的大体原理如下:

    A、B在不同的局域网内。
    A向我发一个数据包。我这边就得到它的IP和端口。
    B也向我发一个数据包,我也把它的IP和端口记录下来。
    我再用SOCKET RAW把UDP包的源IP和端口改成和B的IP和端口一样,伪造成B,并告诉A,叫他去连接B。

    [From 头条]

    试题1、以下程序会输出多少行#

    # -*- coding: utf-8 -*-
    
    #!/usr/bin/python
    
    #########################################################################
    
    # File Name: /tmp/test.py
    
    # Program function:
    
    # Author:Jeson
    
    # mail:jeson@imoocc.com
    
    # Created Time: 日  9/ 4 13:07:42 2016
    
    #========================================================================
    
    import os
    
    i = 5
    
    while (i > 0):
    
         print "#"
    
         i = i -1
    
         os.fork()

    没有答出来,我写程序执行后输出的是 160个#

    且规则如下:

    i=1时 输出 2个#

    i=2时 输出 8个#

    i=3时 输出24个#

    那么,规则当i赋值n时输出 : 2的n次方*n个

    无法理解os.fork()了......????? 留给你们帮解答吧 :)

  • 相关阅读:
    ubuntu16.04安装mongodb
    redis 允许远程链接
    mongodb将一个集合的数据加入到另外一个集合
    记录一次字符的坑
    Linux定时任务指定用户
    laravel 除了根目录,所有接口地址都是404
    记录一次php7-mongodb扩展的坑
    nginx 解决跨域
    记录一次部署
    MAC或者linux通过SSH使用PEM文件登录
  • 原文地址:https://www.cnblogs.com/linuxx/p/8465630.html
Copyright © 2011-2022 走看看