某安全服务商-2019秋招提前批,正式批面经

提前批

一面

首先是自我介绍,然后简单问了下项目相关以及实习相关的问,紧接着就是怼题目了,考察基础部分了

  1. 常用的排序算法有哪些?

// 我说了插入,选择,冒泡,快速排序,堆排序,希尔,归并。。。。

归并排序的时间复杂度?

快速排序的原理?时间复杂度?最坏的情况复杂度?什么时候才是最坏复杂度?

  1. 最小生成树了解吗?

我说图论的,然后就简单介绍了下概念,关于图论真的了解的少,还有那几种图论算法来着,,,,

  1. 二分查找怎么实现的?

去平均值比较(口误啊,md!!!)

  1. 红黑树有了解吗?

我:查找树,红黑树满足的五条性质,以及特征,这样做的好处,不严格平衡,查找效率高,复杂度O(logn)。。。。

红黑树有哪些特征?

我:又在胡扯了。。。

什么叫平衡二叉树?有什么用处?

我: 我怎么知道怎么用????,就这么用

如果节点数一样,为什么二叉平衡树更节省空间?

  1. 堆排序,最大堆怎么实现的?

我:说了一些概念,然后说不太知道了。。。。

节点的调整?是从下往上还是从上往下?

堆排序就是建立堆,和调整堆的过程,从下往上,堆即完全二叉树,数组存储的的形式满足:根节点,left 2n+1 right 2n+2

  1. kmp算法了解吗?具体原理能说一下吗?

我说next数组。。。
我巴拉说了几句,不太知道了

  1. 进程间怎么通信的?

我巴拉巴拉。。。,七种进程间通信简单介绍了一下,各自的特点优缺点,适用场合

是不是漏了什么重要的? 共享内存有了解吗?怎么实现的

我说mmap ,巴拉巴拉。。。。

具体是怎么实现的? 接口,原理?

我说原理不太了解。。。。

  1. 管道有有名管道和无名管道,他们之间有什么差别呢?

。。。。

管道的优势?

我:我咋知道??? 后头一想,我误解面试官意思了,尴尬。。。。

  1. 程序运行结构栈结构?

我简单描述了下。。。。

运行程序整体的栈结构是怎么样子的?

我。。。不知道

  1. 系统分用户空间和内核空间有了解吗?

在Linux里面,对应于用户态和内核态,与权限和特权级有关,在中断,系统调用或者信号才使进程陷入内核态,获得更高的访问级别;32位的Linux系统里面,虚拟内存对应的大小为4G,高位1G对应的是内核空间,低位3G是用户空间。

  1. 我们那个程序假如发生段错误,这个要怎么去排查呢?

段错误一般与非法访问有关,比如数组下标越界,栈溢出,递归调用层数过多;在Linux里面可以用gdb调试,bt来查看堆栈

附:关于段错误相关具体可以查看这篇博客:C/C++段错误问题排查和解决方案

  1. select,poll,epoll三组I/O复用对比,优缺点

    ET,LT模式?

附:我之前简单总结了的博客I/O复用之select,poll,epoll (一)

  1. TCP的拥塞控制有了解吗?讲一下?
    附:
    TCP的核心就要搞清楚状态机转换过程,那几种算法(nagle,RTT算法,拥塞算法,滑动窗口,序列号)

TCP 的那些事儿(上)

TCP 的那些事儿(下)

TCP三次握手过程讲一下?知道SYN分节攻击吗?

附:关于三次握手和四次挥手,这篇博文讲得非常详细了 面试官,不要再问我三次握手和四次挥手

  1. new 和 malloc区别?

new是C++运算符,关键字;而malloc是C语言库函数
最核心的区别:new由编译器支持,满足对象语义,创建对象和销毁对象会执行构造和析构函数,返回该类型指针;而malloc是库函数,只是向系统申请一块堆内存,无类型,需要进行一个C类型的强制类型转换。
而new实际将malloc封装了起来,解析可分为两个步骤

附:
细说C++(十七):new与delete解析(一)

细说C++(十八):new和delete解析-重载 (二)

  1. C++中的STL容器主要用过哪些呢?在使用map的时候,我们需要分离一个迭代器嘛,这个迭代器++和++迭代器有什么区别?

我说,don‘t konw

  1. C++的虚函数怎么使用呢?

我从多态开始讲,然后介绍到虚函数的实现,以及虚函数表的结构,具体的调用过程,虚函数的继承关系,以及对象模型

  1. 现在有一个int指针,其值为假设为100,执行++之后为多少呢?

还问了一些,C语言函数调用的相关问题,一面大概半个多小时就结束了,半个多小时后,收到了二面通知

二面

  1. 先简单出个算法小题目吧!假如现在有一个输入有两个集合A和B,输出另外一个集合C,输入是一些IP段,IP地址是延续的,并且都是整数,一百万,假设其中只要一个IP地址的值,这个值要么是IP地址要么带有一个IP段。并且在集合中无重复,乱序的,输出的集合C是他们的合并

和面试官讨论了蛮久,说了下思路,我对这题感觉比较陌生,一直都没太听明白意思

  1. 你做过的一些项目?

我简单介绍了一下,面试官好像不是太感兴趣

  1. 网络连接的过程?TCP的time_wait状态,为什么客户端要有?有什么作用?分析一下

  2. 然后问了有了解过云计算和其它开源项目没有?

总之来说,二面不是太顺利,面试官先是推迟了一天,然后这次有迟到了一个多小时,来的好像很匆忙得面试一下,似乎我的简历手头上都没有,然后自我介绍也没有,就是问了这么些问题就没了

结果可想而知,在一个星期后,果不其然得收到了感谢信了


正式批

一面:

  1. 简单自我介绍

  2. 说一下#define宏定义?带参数的宏知道吗?比如输入一个或者两个参数之类的,说一下这个的原理,起什么作用?在什么场景下会使用?

  3. 在做变量运算时,我们会有类型嘛,比如二元运算,我们要遵循一点原则了解吗?

    在做不同类型的运算,有了解具体的类型转换规则吗?

  4. C语言里面字符串的定义是什么?字符串里面可以包含“\0”吗?

  5. strlen和sizeof对比?

  6. 问一下一个函数有局部变量,全局变量讲一下作用域和生存周期?
    如果局部变量加static呢? 全局变量加static呢?

  7. main函数原型知道吗?main的参数 agrc,argv

  8. 数据结构排序的算法?

  9. 递归和循环的实现那种好?

    递归有什么缺点呢?为什么开销大呢?

  10. 快速排序,归并排序,堆排序讲一下,对比,什么时候应该选用哪一种?

  11. hashmap哈希表是一个什么样子的吗?

hashmap 函数,key value
核心:1. 快速定址
2. 解决冲突

  1. TCP和UDP协议对比,优缺点?

    TCP的可靠性体现在哪些方面呢?

    什么情况下会不可靠呢?不可靠的情况有哪些?

丢包, 未按序到达,网络拥塞,多次发起连接

  1. Linux如何创建一个进程?知道进程树吗?开机之后有进程树,为什么会有进程树呢?

二面

  1. 先做一个简单的自我介绍
  2. 问实习?

(1)实习期间主要做的什么?有没有参与到项目的开发中来?
(2)并且针对简历上的介绍做了一些问题
(3)实习主要带给你的收获是什么呢?

  1. 问项目?
    (1)介绍一下项目,主要做的事情?
    (2)线程池怎么实现的?如何处理同步问题
    (3)并发模型采用的什么?
    (4)在项目中印象最深刻的问题
    (5)什么是CGI服务器?

  2. 有了解过其它什么开源项目吗?主要还看过一些什么书呢?

我简单说了一下,并且提到了muduo网络库

总结:这家企业比较注重基础的考察,对语言,操作系统功底最看重,其次有时真的要看一点运气,是不是能和面试官聊得比较开,我两次二面都不是太顺利,可能是我不太胃口吧

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
《java面经-百度准入职老哥整理.pdf》是一份关于百度准入职面试的Java面经整理。这份面经是由百度准入职的老哥整理而成,其中记录了一些面试时可能会遇到的问题以及解答方法。 这份面经对于准备参加百度准入职面试的人来说非常有价值。首先,它列出了一些常见的面试问题,涵盖了Java语言的各个方面,包括基础知识、数据结构与算法、设计模式、多线程、网络编程等等。通过仔细研究和复习这些问题的答案,可以帮助面试者全面了解Java语言的特性和应用。 其次,这份面经还提供了问题的解答思路和方法,帮助面试者理清思路,正确回答问题。这对于很多面试者来说特别有帮助,因为在面试时有时会遇到一些棘手的问题,有了这份面经的指导,面试者可以更好地掌握应对策略。 不过需要注意的是,面经作为一份参考资料,不能完全依赖于它来准备面试。面试官可能会问一些不在面经中列出的问题,因此考生还是需要自己对Java语言有充分的了解,并能够熟练运用。同时,面试官还会关注考生的沟通能力、解决问题的能力以及对新技术的学习和掌握能力。 总体来说,《java面经-百度准入职老哥整理.pdf》是一份非常宝贵的资料,可以帮助面试者对Java面试中可能会遇到的问题有更深入的了解,提供了解答思路和方法。但记住,面试准备还需要多方面的知识积累和实践经验的积累,才能在面试中展现自己的优势。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值