为了知道自己面试情况,特意录音想知道自己答成什么样了。凉的很惨了,紧张回答的逻辑也不太好,面完了接到电话说凉了。 手撕代码:单例模式(不会)那就读写大文件(不会)那你熟悉什么,写个排序吧,插入排序,冒泡排序都写了 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) 对啊 你这样先排序再取时间复杂度过高,怎么优化  不完全排序,别的方式你想想 答曰:不懂了 就这样吧 有什么问我的 答曰:巴拉巴拉,,,现在想问问刚刚那个问题到底怎么优化。。。。 两分钟之内告诉我凉了
点赞 10
评论 20
全部评论

相关推荐

01-19 15:14
已编辑
延安大学 C++
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务