Java知识分享网 - 轻松学习从此开始!    

Java知识分享网

Java1234官方群25:java1234官方群17
Java1234官方群25:838462530
        
SpringBoot+SpringSecurity+Vue+ElementPlus权限系统实战课程 震撼发布        

最新Java全栈就业实战课程(免费)

springcloud分布式电商秒杀实战课程

IDEA永久激活

66套java实战课程无套路领取

锋哥开始收Java学员啦!

Python学习路线图

锋哥开始收Java学员啦!

11道高级软件测试面试题 PDF 下载


分享到:
时间:2021-08-14 09:53来源:http://www.java1234.com 作者:转载  侵权举报
11道高级软件测试面试题 PDF 下载
失效链接处理
11道高级软件测试面试题 PDF 下载

本站整理下载:
提取码:xg2z 
 
 
相关截图:
 
主要内容:

11道高级软件测试面试题,你知道多少答案
1、列表和元组的区别
答:列表是动态的,长度可变,可以随意地增删改元素。列表的存储空间略大于元组,性能略逊于元组。元组是静态的,长度大小固定,不可以对元组元素进行增删改操作。元组对于列表更加轻量级,性能稍优。
 
2、字典的原理
答:python中的字典底层依靠哈希表(hash table)实现, 使用开放寻址法解决冲突。哈希表是key-value类型的数据结构, 可以理解为一个键值需要按照一定规则存放的数组, 而哈希函数就是这个规则。
字典本质上是一个散列表(总有空白元素的数组, python至少保证1/3的数组是空的), 字典中的每个键都占用一个单元。
一个单元分为两部分, 分别是对键的引用和对值的引用, 使用hash函数获得键的散列值, 散列值对数组长度取余, 取得的值就是存放位置的索引。
哈希冲突(数组的索引相同), 使用开放寻址法解决。
这也是python中要求字典的key必须可hash的原因。数组中1/3的位置为空, 增加元素可能会导致扩容, 引发新的散列冲突, 导致新的散列表中键的次序发生变化, 这也是字典遍历时不能添加和删除的原因字典在内存中开销很大, 实际上是以空间换时间。
 
3、说一下hash算法与哈希冲突
答:哈希算法:根据设定的哈希函数H(key)和处理冲突方法将一组关键字映象到一个有限的地址区间上的算法。也称为散列算法、杂凑算法。
哈希表:数据经过哈希算法之后得到的集合。这样关键字和数据在集合中的位置存在一定的关系,可以根据这种关系快速查询。非哈希表:与哈希表相对应,集合中的 数据和其存放位置没任何关联关系的集合。由此可见,哈希算法是一种特殊的算法,能将任意数据散列后映射到有限的空间上,通常计算机软件中用作快速查找或加密使用。
哈希冲突:由于哈希算法被计算的数据是无限的,而计算后的结果范围有限,因此总会存在不同的数据经过计算后得到的值相同,这就是哈希冲突。


 

------分隔线----------------------------

锋哥公众号


锋哥微信


关注公众号
【Java资料站】
回复 666
获取 
66套java
从菜鸡到大神
项目实战课程

锋哥推荐