A.域名到IP地址的映射
B.域名到MAC地址的映射
C.IP地址到MAC地址的映射
D.公网IP到私网IP的映射
答案:A
解析:DNS是Domain Name System的简称,又名域名系统,是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。DNS使用TCP和UDP端口53。当前,对于每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符。DNS协议是用来将域名转换为IP地址(也可以将IP地址转换为相应的域名地址)。
A.用来建立一个已知IP地址到MAC子层地址的映射
B.用来建立一个已知IP地址到另外一个IP地址的映射
C.用来建立一个已知MAC子层地址到MAC子层地址的映射
D.用来建立一个已知MAC地址到IP子层地址的映射
A.multiprocess.dummy
B.threading.Thread
C.process
D.PyMongoDB
A.
B.
C.
D.
下面关于进程、线程的说法正确的是()。
A.进程是程序的一次动态执行过程。一个进程在其执行过程中,可以产生多个线程——多线程,形成多条执行线索
B.线程是比进程更小的执行单位,是在一个进程中独立的控制流,即程序内部的控制流。线程本身不能自动运行,栖身于某个进程之中,由进程启动执行
C.Java多线程的运行与平台相关
D.对于单处理器系统,多个线程分时间片获取CPU或其他系统资源来运行。对于多处理器系统,线程可以分配到多个处理器中,从而真正的并发执行多任务
上海海隆软件股份有限公司1月招聘面试题面试题面试官常问到的一些题目整理如下:问题 Q1:生成器?可用的回答 :生成器的本质就是一个逐个返回元素的函数,即“本质函数”最大的好处在于它是“延迟加载”,即对于处理长序列问题,更加的节省存储空间。即生成器每次在内存中只存储一个值问题 Q2:什么是arp协议?可用的回答 : ARP(Address Resolution Protocol)即地址解析协议, 用于实现从 IP 地址到 MAC 地址的映射,即询问目标IP对应的MAC地址。 问题 Q3:如何在Python中实现多线程?可用的回答 :Python有一个多线程库,但是用多线程来加速代码的效果并不是那么的好,Python有一个名为Global Interpreter Lock(GIL)的结构。GIL确保每次只能执行一个“线程”。一个线程获取GIL执行相关操作,然后将GIL传递到下一个线程。虽然看起来程序被多线程并行执行,但它们实际上只是轮流使用相同的CPU核心。有这些GIL传递都增加了执行的开销。这意味着多线程并不能让程序运行的更快问题 Q4:为何基于tcp协议的通信比基于udp协议的通信更可靠?可用的回答 : TCP的可靠保证,是它的三次握手双向机制,这一机制保证校验了数据,保证了他的可靠性。 而UDP就没有了,udp信息发出后,不验证是否到达对方,所以不可靠。 不过UDP的发送速度是TCP比不了的,而且UDP的反应速度更快。 问题 Q5:简单谈下GIL?可用的回答 : Python代码的执行由Python 虚拟机(也叫解释器主循环,CPython版本)来控制, Python 在设计之初就考虑到要在解释器的主循环中,同时只有一个线程在执行,即在任意时刻,只有一个线程在解释器中运行。 对Python 虚拟机的访问由全局解释器锁(GIL)来控制,正是这个锁能保证同一时刻只有一个线程在运行。 在多线程环境中,Python 虚拟机按以下方式执行: 1. 设置GIL 2. 切换到一个线程去运行 3. 运行: a. 指定数量的字节码指令,或者 b. 线程主动让出控制(可以调用time.sleep(0)) 4. 把线程设置为睡眠状态 5. 解锁GIL 6. 再次重复以上所有步骤 在调用外部代码(如C/C+扩展函数)的时候,GIL 将会被锁定, 直到这个函数结束为止(由于在这期间没有Python 的字节码被运行,所以不会做线程切换)。 问题 Q6:list和tuple有什么区别?可用的回答 :列表和元组之间的区别在于列表是可变的而元组不是。元组可以被散列,例如作为词典的关键。问题 Q7:用尽量多的方法实现单例模式?可用的回答 : 一、模块单例 Python 的模块就是天然的单例模式,因为模块在第一次导入时,会生成.pyc文件,当第二次导入时,就会直接加载.pyc文件,而不会再次执行模块代码。 二、静态变量方法 先执行了类的_new_方法(我们没写时,默认调用object._new_),实例化对象; 然后再执行类的_init_方法,对这个对象进行初始化,所有我们可以基于这个,实现单例模式。 class Singleton(object): def _new_(cls,a): if not hasattr(cls, _instance): cls._instance = object._new_(cls) return cls._instance def _init_(self,a): self.a = a 问题 Q8:json序列化时,默认遇到中文会转换成unicode,如果想要保留中文怎么办?可用的回答 :json.dumps函数方法中加上参数 ensure_ascii = False问题 Q9:遇到反爬机制怎么处理?可用的回答 : 反爬机制: headers方向 判断User-Agent、判断Referer、判断Cookie。 将浏览器的headers信息全部添加进去 注意:Accept-Encoding;gzip,deflate需要注释掉 问题 Q10:写爬虫使用多进程好,还是用多线程好?可用的回答 : IO密集型代码(文件处理、网络爬虫等), 多线程能够有效提升效率(单线程下有IO操作会进行IO等待,造成不必要的时间浪费,而开启多线程能在线程A等待时,自动切换到线程B,可以不浪费CPU的资源,从而能提升程序执行效率)。 在实际的数据采集过程中,既考虑网速和响应的问题,也需要考虑自身机器的硬件情况,来设置多进程或多线程 算法题面试官常问到的一些算法题目整理如下(大概率会机考):算题题 A1:两数相除题目描述如下:Given two integers dividend and divisor, divide two integers without using multiplication, division and mod operator.Return the quotient after dividing dividend by divisor.The integer division should truncate toward zero.Example 1:Input: dividend = 10, divisor = 3Output: 3Example 2:Input: dividend = 7, divisor = -3Output: -2Note:Both dividend and divisor will be 32-bit signed integers.The divisor will never be 0.Assume we are dealing with an environment which could only store integers within the 32-bit signed integer range: 231, 231 1. For the purpose of this problem, assume that your function returns 231 1 when the division result overflows.除以某数,其结果要尽可能趋向0的,且为整数。直接用Python 中的地板除 / 即可。判断两个数的符号是否相同和处理 2*31-1 和 -2*
下列说法中,错误的是( )。
A.线程就是程序
B.线程是一个程序的单个执行流
C.多线程是指一个程序的多个执行流
D.多线程用于实现开发
RARP协议的作用是什么()。
A.用来解析或者映射一个已知IP地址到MAC子层地址的映射
B.用来解析或者映射一个已知IP地址到另外一个IP地址的映射
C.用来解析或者映射一个已知MAC地址到IP子层地址的映射
D.用来解析或者映射一个已知MAC子层地址到MAC子层地址的映射
下列说法中,错误的一项是______。
A.线程有其产生、存在和消亡的过程
B.一个进程可以创建多个线程
C.Java需要利用外部的线程支持库来实现多线程
D.在Java语言中支持多线程
怎么写能让多核CPU满载,也就是申请CPU多线程(不是任务多线程)
在一个广播域中,IP地址和MAC地址的对应关系正()
A.一个IP地址只能对应一个MAC地址
B.一个MAC地址只能对应一个IP地址
C.一个MAC地址可以对应多个IP地址
D.一个IP地址可以对应多个MAC地址