202210月巨杉数据库一面

感悟:

面试体验不是特别理想,在一些问题上,提问的方式不具有引导性而且全程黑脸,提前说了某个工具不是很了解,还是被反复问了...emmm是要咋怎。 尬聊了近乎50min谢了。

面完就感觉应该不用等了。

面试分为三部分

自我介绍

一、针对项目进行提问

  1. 项目是偏向算法的吗?
  2. 介绍一下C++多态
  3. i++与++i区别,效率上
  4. 介绍一下C++异常处理机制
  5. 为什么C有了错误码还有有C++的异常处理
  6. 学过数据结构吗?介绍一下数据结构与排序算法
  7. 介绍一下排序算法的时间复杂度
  8. 树有了解嘛?
  9. 在你的项目里用到了什么树
  10. 介绍一下B+树
  11. 在MySQL中B+是如何实现的
  12. 索引是如何使用的

走索引地效率一定比全表查找地效率高吗?

  1. 分析sql【索引定位的记录很多且需要回表,需要重排序】 【SELECT id,age,phone FROM t_account WHERE age = 25 ORDER BY name desc;】

如果排序的字段不存在于当前使用的索引和主键中,则需要去回表查询该字段,并且在server层根据该字段进行排序,所以效率更低,mysql选择了全表扫描来进行查询。

  1. 什么情况下要回表
  2. GDB调试有什么技巧
  3. 服务器项目那些地方用到了锁
  4. 任务队列中任务具体是什么?
  5. 是HTTP对象?
  6. 那是对一个数组上锁?(说错了,后来补充是链表形式)
  7. HTTP对象具体是有哪些构建地?
  8. 用到的是什么锁
  9. 怎么保证线程安全
  10. 如果不上锁会造成什么影响
  11. 如何检测服务器性能瓶颈有什么工具?

Linux有自带地工具,可以查看CPU使用情况,当前线程下处理的文件描述符数量,网络吞吐量情况

二、算法题:

公共前缀

class Solution {
public:
    string longestCommonPrefix(vector<string>& strs) {
        if (!strs.size()) {
            return "";
        }
        int length = strs[0].size();
        int count = strs.size();
        for (int i = 0; i < length; ++i) {
            char c = strs[0][i];
            for (int j = 1; j < count; ++j) {
                if (i == strs[j].size() || strs[j][i] != c) {
                    return strs[0].substr(0, i);
                }
            }
        }
        return strs[0];
    }
};

三、反问

部门负责数据的是哪一块的呢?

培养方式?

#巨衫数据库#
全部评论
过了吗
点赞 回复 分享
发布于 2022-11-30 23:30 广东

相关推荐

10-22 10:02
门头沟学院 Java
美团 会员券相关 21k
点赞 评论 收藏
分享
评论
2
4
分享
牛客网
牛客企业服务