记录字节跳动初次面试

字节跳动初面面试题

数据库的优化问题

1.为了加快数据库的搜索速度,有哪些方案?

对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。
mysql数据库加快搜索速度
记录一次MySQL两千万数据的大表优化解决过程,提供三种解决方案

2.对数据库索引的理解,怎么加索引

数据库索引,是数据库管理系统中一个排序的数据结构,以协助快速查询、更新数据库表中数据。索引的实现通常使用B树及其变种B+树。
数据库索引的实现原理(面试问题:请说出数据库索引实现原理)

3.索引采用的什么数据结构?

B+树
MySQL索引背后的数据结构及算法原理

4.讲一讲红黑树是什么?红黑树解决了什么问题?和二叉搜索树有什么区别?

面试题——轻松搞定面试中的红黑树问题

5.redis采用的数据结构是什么?

(Remote Dictionary Server)redis的本质是跳表,支持的数据结构有:String、 List、 Set、 Sorted Set、 hashes
解决了Redis的这些问题,你就是Redis高手

6.什么是跳表

跳表是可以实现二分查找的有序链表。
Skip List–跳表(全网最详细的跳表文章没有之一)

7.给你一个一百万个数,求最大的一百个,用什么方法?时间复杂度?

最大堆,时间复杂度是nlogk(n = 100w, k = 100)

8.快排时间复杂度,堆排序时间复杂度,入堆,堆排序时间复杂度?

9.给你一个二叉搜索树,求所有节点做差的绝对值的最小值。(中序遍历,做差比较记录)

10.实现一下二叉树的中序遍历

二叉树基础

操作系统基础

1.多线程怎么保证对一个同变量的操作是正确的

2.锁机制,在第几行代码里面加锁?碰到多线程都使用递归的情况好使吗?了不了解递归锁?

3.在你定义的全局变量前面加个static有什么用?加了static的变量存在内存的什么区域?

4.内存的分布

5.进程和线程的区别

6.线程有自己的资源吗?就比如哪些是多个线程共享的资源,哪些资源线程不是共享的?

计算机网络

1.了解HTTPS吗?和HTTP有什么区别

2.对称加密和非对称加密的机制,有什么区别?为什么他们要组合使用,非对称加密加密的是什么?

你可能感兴趣的:(面试经历记录,数据库,数据结构,算法)