腾讯teg云架构平台

昨晚看雷军的十周年演讲就没有及时整理,所以到今天可能有些忘了,记录的不够完整。顺便说一句,小米牛逼,永远相信美好的事情即将发生!

一面

网络

  • tcp三次握手说一下
  • 如果第三次握手的ack丢失会怎样
  • 你刚刚说第二次握手服务端会将连接放到半连接队列,那你知道SYN攻击吗,怎么解决
  • 你说的SYN cookie具体说一下
  • 那SYN cookie从代码的角度怎么去设置打开这个选项知道吗(这个确实不知道……)
  • 那在linux上是怎么去查看tcp的状态的,如果被SYN泛洪攻击了状态会怎样
  • 客户端第一次握手时可以顺便携带数据吗
  • 第一次不行那如果是第三次呢,可以带数据吗

这里插个话,不得不说腾讯对基础考得很深入,这里推荐一篇关于三次握手和四次挥手的博客,写的很好,说实话要不是看过这篇博客我这几个问题可能就答不好了---https://juejin.im/post/6844903958624878606

  • http和https有了解吗,他们有什么不同
  • https的加密过程知道吗
  • 如果有个网站,你会怎么选择使用http还是https
    (这里我感觉没答好)我就只是答了如果涉及隐私的,例如密码那就用https更安全,如果只是新闻类网站不需要登录也没有隐私可言就http更快,但是事后想想其实https还可以做网站本身的验证,例如可以解决钓鱼网站等问题
  • 知道http的长连接和短连接吗
  • 那有个网页,你会怎么选择使用短连接还是长连接

c++

  • c++里面的const知道吗
  • 那底层是怎么保证const变量不会被改变的呢(我说难道不是编译时就能发现语法错误了吗)
  • 好,那如果让你来做编译器,你会怎么去处理const呢(不知道了……)
  • 参数传递时的按值传递、按指针传递、按引用传递说一下
  • 按指针传递的情况,我在函数内部对这个指针改变他的指向,会对外面的变量有影响吗(不会影响,按指针其实是指针复制了一份)
  • 如果要在函数中改变外部变量,你一般使用指针还是引用
  • (接上一问)有没有什么场景是指针能办到而引用不行的(不知道……)
  • c++里面的智能指针说一说
  • (我刚说完share_ptr)那share_ptr是怎么实现的
  • share_ptr的使用会有什么问题吗(说了循环引用)
  • 解决方法呢(weak_ptr)
  • 智能指针是线程安全的吗(这里有点懵,我记得不是线程安全的,但是没理解透,导致下一题错了)
  • 为什么不是线程安全的(答:比如引用计数的加减被多线程竞争读写的话计算结果会错)
    其实这里是答错了,引用计数本身是安全且无锁的(原子性的),但对象的读写则不是,参考这篇博客https://blog.csdn.net/D_Guco/article/details/80155323

数据库

  • 数据库了解多吗
  • mysql的存储引擎是什么
  • 索引的数据结构是什么
  • B+树和B树的区别
  • 查找时B树和B+树的时间复杂度(难道不都是log吗)
  • 那有没有什么情况用B树更好,一定要无脑用B+树吗(这个确实不懂)
  • 那如果我insert一条记录,mysql会怎么储存这个数据知道吗(由于数据库不熟,想了一会怎么说,结果没等我说呢,他说没事,那我们做一道题)

编程题

数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字,否则返回0。比如长度为9的数组{1,2,3,2,2,2,5,4,2},数组中2出现了5次,超过数组长度的一半,因此输出2

我没能想出最好方法,就说了两种,一种是用unordered_map计数(O(n)),另一种是排序后对中间元素计数(O(logn))。实在没想到更好的,他就叫我实现这两种。不过我快排还没写完呢,就说时间到了要不先这样。

你可能感兴趣的:(腾讯teg云架构平台)