360视频面试 测试开发 一面凉凉
为了知道自己面试情况,特意录音想知道自己答成什么样了。凉的很惨了,紧张回答的逻辑也不太好,面完了接到电话说凉了。
手撕代码:单例模式(不会)那就读写大文件(不会)那你熟悉什么,写个排序吧,插入排序,冒泡排序都写了
1.自我介绍
2.你不是计算机专业,那你熟悉计算机相关的吗(了解一下各种基本情况)
正式面试
进程线程概念区别;
答曰:进程是一段程序在一个资源集合上的一次执行过程,是操作系统资源分配的基本单位,线程是进程中的一个执行,他不拥有资源,是操作系统调度执行的最小单位。
什么时候使用多线程,什么时候使用多进程
答曰:进程创建和撤销的开销比较大,每次创建和取消都要分配一个进程控制块,比如频繁建立连接,使用多线程;cpu频繁切换使用多线程。但是多进程可以使用在多机分布式系统,需要扩展到其他机器上,使用多进程,多线程适用于多核处理机
那如果有很多任务,创建线程越多越好吗?
答曰:不是,创建线程越多,对共享资源同步要求多,设计同步容易出错。另外多线程并发容易导致资源分配问题
那有没有优化的方式呢?很多线程任务,怎么解决呢
答曰:根据实际情况使用多进程+多线程结合
不是,不用进程,就是在一个线程里边,线程池了解吗?
答曰:不了解
进程状态了解吗?
答曰:主要是就绪,运行,阻塞状态
就绪:当一个进程获得了除了CPU以外的所有资源,处于就绪状态
运行:获得CPU以后,任务调度,转换到执行状态,如果时间片用完,又会回到就绪状态
阻塞:处于执行过程中的进程,由于I/O请求,变到阻塞状态
僵尸进程,孤儿进程
答曰:不记得了。孤儿进程,父进程被kill了
进程同步方式
答曰:进程通信?不是,进程同步方式不记得了
网络了解吗
网络分层结构讲一下
答曰:OSI七层模型:从下往上:物理层,数据链路层,网络层,传输层,应用层,表示层,会话层
TCP/IP四层模型:网际接口层,网络层,传输层,应用层
TCP,UDP是哪层的 优缺点是什么
答曰:运输层的,TCP是面向连接的,提供可靠交付,每次传输数据之前先建立连接,只提供一对一,点对点的通信,把数据包看成一连串无结构字节流
UDP不提供可靠交付,只提供尽最大努力交付,用户数据包方式,通过UDP传输的数据可能产生差错。UDP适合于实时通信,当网络发生阻塞时,不影响发送端的发送效率。UDP提供一对一,一对多,多对一,多对多的通信
保存登录状态用什么?
答曰:cookies,session
优缺点
答曰:cookies保存在客户端,session保存在服务器端,session比cookies更安全,比如把用户名密码保存在浏览器,下一个用户登录会暴露信息,session占用资源也更多。其他不记得了
浏览器请求,浏览器输入一个连接,到展示到页面,经过了什么
答曰:例如输入www.baidu.com 首先DNS解析域名对应的IP地址,然后建立TCP连接,发送http请求,获取页面内容,发送get请求,服务端收到请求以后返回内容到浏览器
然后呢?还有什么
答曰:要断开TCP连接
然后呢,浏览器怎么把页面显示出来
答曰:页面文本是.html文件,呃呃呃不懂了
C的东西了解吗?C++的特性了解吗?
答曰:了解一些JAVA的
那JAVA有什么特性
答曰:面向对象的三大特性:继承,封装,多态。23种设计模式
那会写JAVA吗?
不会,只会写python,
最惨的来了
那你写单例模式吧,不会。那文件,读写大文件read,write两个函数实现一下,不会
那你熟悉什么算法,数据结构
链表了解吗 写判断循环链表
不会
那讲下思路
答曰:。遍历整个链表,到最后,尾指针指向头指针。
那怎么知道他是为节点 呢?
答曰:不记得了
熟悉什么数据结构,算法
答曰:基本理论,排序算法
熟悉哪些排序算法
答曰:冒泡,插入,选择,快排,希尔
写完了好像不对,紧张+基础不行,写了个死循环,他说不对,然后我改了一下
说下思路:
紧张说的 乱七八糟
答曰:类似扑克牌,XXXXXXX说的很乱
你这个程序看着像冒泡的
答曰:不是,冒泡排序是怎么怎么样,当时给他写了
冒泡是每次把最大的沉到最后,插入是维护一个有序序列,遍历前n个,遍历n-1次有序
数据库了解多吗
答曰:了解一些
用的什么
答曰:MYSQL
非关系的用过吗
答曰:没有
那你知道关系型和非关系的有什么区别
答曰:不记得了
怎么优化查询
答曰:建立索引
索引原理知道吗
答曰:底层是B树
索引建立越多越好吗
答曰:不是,建立索引需要消耗内存,数据量多的时候,索引占用空间也会大,创建索引要消耗空间
如果内存足够呢,不考虑消耗空间
答曰:不记得了。现在想起来,索引见多了对插入和删除有影响
那你说说B树
答曰:了解
B树插入删除说一下
答曰:B树左子树比根节点关键码小,右子树关键码比根节点大,插入的时候把她放到结尾,递归保证每个子树保持这个结构
删除的话删除最上边的元素,把最后的元素放到根节点,也是递归保持这个结构
(好像又错了.....)
B树和B+树有什么区别
答曰:B+树的关键码存放在叶子结点,叶子结点之间建立链接,只想相邻叶子节点。m阶B树非叶子节点关键码个数为m/2-1向上取整到m B+树m/2到m-1 又说错了。。。。
B树的搜索可能在非叶子节点结束,而B+树一定会到叶子节点才结束
问个思路,有一个无序的数组或者列表,找出中位数怎么找
答曰:Python内置有sort函数,直接sort变成有序的,再直接取中间的
不写代码,你说思路
答曰:PYTHON有内置函数,直接排序取中间的就是您说的中位数啊
那主这样时间复杂度呢
答曰:python内置的sort底层是快排,时间复杂度o(nlogn),数组取操作o(1),所以是o(nlogn)
对啊 你这样先排序再取时间复杂度过高,怎么优化 不完全排序,别的方式你想想
答曰:不懂了
就这样吧 有什么问我的
答曰:巴拉巴拉,,,现在想问问刚刚那个问题到底怎么优化。。。。
两分钟之内告诉我凉了