原标题:计算机面试必备知识点,你了解多少?
计算机面试必备知识点,你了解多少?
计算机编程的很多知识点,往往在日常生活中就有类似的例子。最近整理了几个非常形象生动的例子,助大家理解这些计算机面试必备的知识点。
一、什么是序列化?什么是反序列化?
序列化:把Java对象转换为字节序列的过程
反序列:把字节序列恢复为Java对象的过程
就好比当我们搬书桌时,桌子太大了就通不过比较小的门,因此我们需要把它拆开再搬过去,这个拆桌子的过程就是序列化。而我们把书桌复原回来(安装)的过程就是反序列化啦。
二、什么是限流?
我们日常开发中,经常听到接口限流,QPS多少等等这些词。那么,什么是限流呢?在计算机网络中,限流就是控制网络接口发送或接收请求的速率。
举个生活的例子:一些热门的旅游景区,一般会对每日的旅游参观人数有限制的,每天只会卖出固定数目的门票,比如5000张。假设在五一、国庆假期,你去晚了,可能当天的票就已经卖完了,就无法进去游玩了。
三、 BIO、NIO,AIO的区别
同步阻塞(blocking-IO)简称BIO
同步非阻塞(non-blocking-IO)简称NIO
异步非阻塞(asynchronous-non-blocking-IO)简称AIO
四、什么是死锁?
死锁是指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去。
假设你要开车进入一个村子,村口有条非常窄的路,只能容纳一辆车过。这时候,迎面又驶来一辆车,你们都走到一半,谁也不想倒回去,于是各不相让,陷入无尽的等待。
五、select和 epoll的区别
说到select和epoll,相信大家都很熟悉了,它们都使用了IO多路复用机制。可以监视多个描述符的读/写等事件,一旦某个描述符就绪(一般是读或者写事件发生了),就能够将发生的事件通知对应的应用程序去处理该事件。
Select和epoll本质区别是什么呢?
当套接字比较多的时候,每次select()都要通过遍历FD_SETSIZE个Socket来完成调度,不管哪个Socket是活跃的,统统都遍历一遍。
epoll使用“事件”的就绪通知方式,给套接字注册某个回调函数,只有活跃可用的FD,自动完成相关操作,避免了轮询,提升了效率。
读到最后,希望本文对同学们有帮助,面试时如鱼得水,也希望同学们有不懂的问题前来软帝官网咨询。最后都祝大家前程似锦呀!