美文网首页
计算机基础面试

计算机基础面试

作者: Phoebe_Liu | 来源:发表于2018-10-31 18:02 被阅读0次

    计算机基础:

    对于我找的方向来说,一般都会问一些linux基础,比如常用linux指令,这个如果平时经常用linux的话,问题不大。如果没有这方面基础的,就需要提前学一学了。还有就是会问一下关于你熟悉的计算机语言的基础知识,比如我说我更熟悉python,那么面试官可能就会问一些关于python基础的问题。

    总结下我曾被问到的相关问题:

    1. 进程和线程的区别?

    答:进程拥有一个完整的虚拟地址空间,不依赖于线程而独立存在;反之,线程是进程的一部分,没有自己的地址空间,与进程内的其他线程一起共享分配给该进程的所有资源。

    比如:开个QQ,开了一个进程;开了迅雷,开了一个进程。在QQ的这个进程里,传输文字开一个线程、传输语音开了一个线程、弹出对话框又开了一个线程。所以运行某个软件,相当于开了一个进程。在这个软件运行的过程里(在这个进程里),多个工作支撑的完成QQ的运行,那么这“多个工作”分别有一个线程。所以一个进程管着多个线程。通俗的讲:“进程是爹妈,管着众多的线程儿子”。

    参考自:https://www.zhihu.com/question/25532384

    1. 为什么说python的线程是伪线程?

    答:在python的原始解释器CPython中存在着GIL(Global Interpreter Lock,全局解释器锁),因此在解释执行python代码时,会产生互斥锁来限制线程对共享资源的访问,直到解释器遇到I/O操作或者操作次数达到一定数目时才会释放GIL。

    所以,虽然CPython的线程库直接封装了系统的原生线程,但CPython整体作为一个进程,同一时间只会有一个线程在跑,其他线程则处于等待状态。这就造成了即使在多核CPU中,多线程也只是做着分时切换而已。

    参考自:https://www.zhihu.com/question/23474039

    1. python的append和extend有什么区别?

    答:extend()接受一个列表参数,把参数列表的元素添加到列表的尾部,append()接受一个对象参数,把对象添加到列表的尾部。

    例如:

    a = [1,2]
    b = [1,2,3]
    a.append(b)
    print(a)
    

    输出为:[1, 2, [1, 2, 3]]

    a = [1,2]
    b = [1,2,3]
    a.extend(b)
    print(a)
    

    输出为:[1, 2, 1, 2, 3]

    1. linux下创建定时任务使用什么指令?

    答:可以使用crontab命令。

    1. 数据库Mysql和MongoDB的区别?

    答:Mysql是关系型数据库,MongoDB是文档型数据库。MongoDB占用空间大,典型的用空间换时间原则的类型。Mysql相对成熟,MongoDB较为年轻。

    1. 你知道的加解密算法有哪些?

    答:AES(对称加密)、RSA(非对称加密)、MD5(Hash算法)等。

    相关文章

      网友评论

          本文标题:计算机基础面试

          本文链接:https://www.haomeiwen.com/subject/mrtztqtx.html