A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

公司名称:上海傲梦网络科技有限公司
公司地址:西安雁塔区团结南路中晶科技广场B4层中晶岛
公司规模:500-999人
公司环境:下图
笔试:无
面试环节
1、 Python中的数据类型有哪些?
Int  bool   str   list   tuple    dict    set
2、 什么是闭包函数?
在函数内部嵌套了一个函数,内函数使用了外函数的局部变量,并且外函数返回了内函数的引用,这样就构成了一个闭包
defoutfunc(a,b):
    def innerfunc(x):
        return x*a+b
return innerfunc
3、 什么是装饰器?说几个装饰器的常用场景?
装饰器的作用:在不违反开放封闭的原则下对现有的函数进行功能扩充,比如插入日志、性能测试、事务处理、缓存、权限的校验等场景,有了装饰器就可以抽离出大量的与函数功能本身无关的雷同代码。函数计时的装饰器:
4、 TCP和UDP区别?
UDP是面向无连接的通讯协议,UDP数据包括目的端口号和源端口号信息。
优点:UDP速度快、操作简单、要求系统资源较少,由于通讯不需要连接,可以实现广播发送
- 缺点:UDP传送数据前并不与对方建立连接,对接收到的数据也不发送确认信号,发送端不知道数据是否会正确接收,也不重复发送,不可靠。
TCP是面向连接的通讯协议,通过三次握手建立连接,通讯完成时四次挥手
优点:TCP在数据传递时,有确认、窗口、重传、阻塞等控制机制,能保证数据正确性,较为可靠。缺点:TCP相对于UDP速度慢一点,要求系统资源较多。
5、 说说三次握手,四次挥手的过程?
三次握手
1.     建立连接时,客户端发送SYN包到服务器
2.     服务器收到请求后,会向客户端发送一个SYN包,即SYN+ACK包,此时服务器进入SYN_RECV状态。
3、客户端收到服务器的SYN+ACK包,向服务器发送一个序列号(seq=x+1),确认号为ack(客户端)=y+1,此包发送完毕,客户端和服务器进入ESTAB_LISHED(TCP连接成功)状态,完成三次握手
四次挥手
1. 首先,客户端发送一个FIN,用来关闭客户端到服务器的数据传送,然后等待服务器的确认
2. 服务器收到这个FIN,它发送一个ACK,确认ack为收到的序号加一。
3. 关闭服务器到客户端的连接,发送一个FIN给客户端
4. 客户端收到FIN后,并发回一个ACK报文确认,并将确认序号seq设置为收到序号加一。客户端就进入了TIME-WAIT(时间等待)状态。注意此时TCP连接还没有释放,必须经过2∗MSL(最长报文段寿命)的时间后,才进入CLOSED状态。
5. 服务器只要收到了客户端发出的确认,当前连接立即进入CLOSED状态。
6、 面向对象中怎么实现只读属性?
属性私有化
- property
7、单例模式的应用场景有哪些?
       单例模式应用的场景一般发现在以下条件下
1. 资源共享的情况下,避免由于资源操作时导致的性能或损耗等。如日志文件,应用配置。
2. 控制资源的情况下,方便资源之间的互相通信。如线程池等。
   - 网站的计数器
   - 应用配置
   - 多线程池
   - 数据库配置,数据库连接池
   - 应用程序的日志应用
8、什么是死锁?
       若干子线程在系统资源竞争时,都在等待对方对某部分资源解除占用状态,结果是谁也不愿先解锁,互相干等着,程序无法执行下去,这就是死锁。
GIL全局解释器锁(cpython):限制多线程同时执行,保证同一时刻只有一个线程执行,所以cpython里的多线程其实是伪多线程!所以Python里常常使用协程技术来代替多线程,协程是一种更轻量级的线程,进程和线程的切换时由系统决定,而协程由我们程序员自己决定,而模块gevent下切换是遇到了耗时操作才会切换。
三者的关系:进程里有线程,线程里有协程
9、简单说下同步,异步,阻塞,非阻塞?
- 同步:多个任务之间有先后顺序执行,一个执行完下个才能执行。
- 异步:多个任务之间没有先后顺序,可以同时执行
- 阻塞:卡住调用者,调用者不能继续往下执行
- 非阻塞:调用者不会卡住,可以继续执行,就是说非阻塞的。
10、知道线程池吗?有什么特点?
1. 降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。
2. 提高响应速度。当任务到达时,任务可以不需要等到线程创建就能立即执行。
3. 提高线程的可管理性。线程是稀缺资源,如果无限制的创建,不仅会消耗系统资源,还会降低系统的稳定性,使用线程池可以进行统一的分配,调优和监控
11、Python中类方法、类实例方法、静态方法有何区别?
- 类方法:是类对象的方法,在定义时需要在上方使用“@classmethod”进行装饰,形参为 cls,
  表示类对象,类对象和实例对象都可调用;
- 类实例方法:是类实例化对象的方法,只有实例对象可以调用,形参为self,指代对象本身;
- 静态方法:是一个任意函数,在其上方使用@staticmethod”进行装饰,可以用对象直接调用,
  静态方法实际上跟该类没有太大关系

面试总结:面试的是一个Python讲师岗位,问的问题比较多,偏基础的比较多,保持心态,有礼貌,认真回答。

133 个回复

倒序浏览
感谢分享
回复 使用道具 举报
感谢分享!!!!!
回复 使用道具 举报
感谢分享!!!!!
回复 使用道具 举报
                                             
回复 使用道具 举报
回复 使用道具 举报
回复 使用道具 举报
感谢分享!!!!!
回复 使用道具 举报
不错不错,谢谢分享!
回复 使用道具 举报
谢谢小伙伴的分享
回复 使用道具 举报
6666666666666666666666,辛苦辛苦
回复 使用道具 举报
面试的是一个Python讲师岗位,问的问题比较多,偏基础的比较多,保持心态,有礼貌,认真回答。
回复 使用道具 举报
SunYan 来自手机 中级黑马 2018-10-22 18:58:13
13#
黑马666666666
回复 使用道具 举报
6666666666666666666666666666666666
回复 使用道具 举报
duanshaobo 来自手机 中级黑马 2018-10-22 19:32:45
15#
面试总结:本次面试问到的东西比较杂,从基础到框架项目以及缓存都有问到,整体难度不是很大,覆盖面比较广,保持平常心,不紧张,认真回答即可
回复 使用道具 举报
66666666666666666666666666666
回复 使用道具 举报
wangxue123456 来自手机 中级黑马 2018-10-22 19:45:26
17#
你好
回复 使用道具 举报
pcdate 来自手机 中级黑马 2018-10-22 19:47:03
18#
66666666666666
回复 使用道具 举报
你很666666
回复 使用道具 举报

66666666666666666666666666666
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马