请选择行业
请选择职位
请选择省份
请选择城市

测试上岸微信、字节!超全面经(附答案)

时间: 2021-02-02 14:04   作者: 夜猫shiwo   点击次数: 
 

图片
图片
数据结构
图片

一、数组和链表

  1. 存储空间上:数组在内存中是连续的,从栈中分配空间;链表是可以不连续的,从堆中分配空间。 

  2. 在查询,访问方式上:数组可以随机访问其中的元素,查找速度相对较快,链表则必须是顺序访问,不能随机访问。 

  3. 空间的使用上:链表对内存空间的利用率较高,可扩展性高;数组则不能,数组的空间大小是固定的,不适合动态存储,不方便动态添加。 

  4. 添加或删除元素时,数组比链表慢,因为数组要移动大量的元素,而链表只需修改指针即可。 

二、堆和栈的区别: 

  1. 申请方式:stack由系统自动分配。堆;需要程序员自己申请,并指明大小。 

  2. 申请效率的比较:

    栈:由系统自动分配,速度较快。 

    堆:是由new分配的内存,一般速度比较慢,而且容易产生内存碎片,不过用起来最方便。

  3. 申请大小的限制:栈顶的地址和栈的最大容量是系统预先规定好的,在WINDOWS下,栈的大小是2M,超出剩余空间会溢出。 

    堆的大小受限于计算机系统中有效的虚拟内存。 

  4. 数据结构区别:堆可以被看成是一棵树,如:堆排序。栈:一种先进后出的数据结构。 

  5. 缓存方式区别:栈使用的是一级缓存,它们通常都是被调用时处于存储空间中,调用完毕立即释放。 

    堆则是存放在二级缓存中,生命周期由虚拟机的垃圾回收算法来决定。 

三、快排: 

通常我们将数组的第一个元素定义为比较元素,通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。 


图片
图片
数据库
图片

一、索引优化 

  1. 对较小的数据列使用索引,这样会使索引文件更小,同时内存中也可以装载更多的索引键。 

  2. 对where,on,group by,order by中出现的列使用索引。 

  3. 并不是所有索引对查询都有效,当索引列有大量数据重复时,查询可能不会去利用索引。 

  4. 索引并不是越多越好。提高查询效率,但同时也降低了Insert及Update的效率,因为可能会重建索引。 

  5. 应尽量避免在where子句中使用!=或<>操作符或使用or来连接条件,否则引擎放弃使用索引而进行全表扫描。 

  6. Where后的查询字段尽量减少使用函数或者表达式操作,因为会造成索引失效。 

  7. 尽量的扩展索引,不要新建索引。 

二、数据库优化 

三、索引的最左优先原则 

四、数据库左连、右连和内连 

左联:首先取出a表中所有数据,然后再加上与a,b匹配的的数据。

内联:两个表a,b相连接,要取出id相同的字段。

右联:指的是首先取出b表中所有数据,然后再加上与a,b匹配的的数据。

五、存储引擎以及他们之间的区别 

InnoDB:提供了良好的事务处理、崩溃修复能力和并发控制。为了维护数据完整性,InnoDB还支持外键完整性约束。 

支持自动增加列AUTO_INCREMENT(自动增长列)属性。InnoDB提供行级锁,大幅度提高了多用户并发操作的性能。 

缺点是读写效率较差,占用的数据空间相对较大。使用场景,如:银行(对事务的完整性要求比较高)售票(要求实现并发控制)。 

MyISAM:使用B+Tree作为索引结构,叶节点的data域存放的是数据记录的地址。 

拥有较高的插入、查询速度,但不支持事物。基于MyISAM存储引擎的表支持3种不同的存储格式。包括静态型、动态型和压缩型。其中,静态型是MyISAM的默认存储格式,它的字段是固定长度的;动态型包含变长字段,记录的长度不是固定的;压缩型需要用到myisampack工具,占用的磁盘空间较小。 

六、B+ 

B+树是在B树的基础上改造,它的数据都在叶子节点,同时,叶子节点之间还加了指针形成链表。

B+树所有的数据都在叶子节点,不用跨层,同时有链表结构,只需要找到首尾,通过链表就能把所有数据查询出来。

七、数据库索引有哪些类型 

八、范式、第三范式 

九、全文索引跟其他索引的区别,怎么实现的 

十、查重复‘字段’,统计重复次数

SELECT [字段],COUNT(0) AS重复次数FROM [表名] GROUP BY [字段] HAVING COUNT([字段]) > 1 order by重复次数。

十一、查找薪资第二高

Select (Select DISTINCT Salary from Employee ORDER BY Salary DESC limit 1 offset 1) as Second

十二、一个文件夹目录,获取该目录下以’ppt‘结尾的文件:find dir -name "*.txt" 

  1. 查找目录:find /(查找范围)-name ”查找关键字” -type d

  2. 查找文件:find /(查找范围)-name查找关键字-print

打印本页 | 加入收藏

上一篇:给小白讲Java中两大怪物,附带面试题    

关闭  
主要城市: 北京 上海 杭州 广州 南京 武汉 长沙
全部城市: