平安金融陆金所笔试
1.乐观锁和悲观锁的区别,实现
https://www.cnblogs.com/qlqwjy/p/7798266.html
乐观锁适用于多读场景,因为只在最后事务提交的时候才会中断回滚,实际并没有加锁操作,可以提高吞吐量,悲观锁适用于多写,数据冲突大的时候,每次操作都先获得锁,避免了重复retry影响性能。
实现方式:1.通过版本号来实现2.Cas算法,通过hash值判断,有可能造成ABA问题
2.链表和数组的区别
链表通过指针来表示下一个元素的位置,实际在内存块中不连续
数组在内存块中是一起的
链表的查询慢,插入快;数组的查询快(获得下标就行),插入慢(每次插入都要更新后面元素的下标,在内存的位置)
3.两个字典的相加和删除
python字典里面键相同的时候,相加后面的value会覆盖前面的value,相减直接删除该键值对
相加:d1.update(d2)
删除:for k,v in d1.item():
if d2.get(k):
del d1[k]
4.时针和分针相遇次数
两种方法
1.时针和分针每天相遇多少次
分针每天转24圈,时针每天转2圈。
因为它们转动的方向相同,所以它们每天相遇22次。即24-2=22.
2.路程追击问题,因为时针每小时走钟面的1/12圈,分针每小时走1圈,所以速度差为11/12。每次的他们相差的距离(就是路程都是一圈,分针不是要赶上时针一圈吗?)所以追一圈所需时间为: 1除以11/12=12/11小时
因为一天有24小时, 24除以12/11=22次
所以一天时针与分针相遇22次(不计算头00:00,尾已算入)
5.算法 : 列表排序,找一个数,左边都是奇数,右边都是偶数
li = [21,3.4,99,6,8,48]
def sort(li):
left = 0
right = len(li)-1
while left < right:
if li[left] %2 != 0:
left += 1
if li[right]%2 == 0:
right -= 1
if li[left] %2 == 0 and li[right]%2!=0:
li[left], li[right] = li[right], li[left]
left += 1
right -= 1
return li
6.一个接口,描述前端到后端的过程
https://www.cnblogs.com/lycsmzl/p/5225809.html
7.服务器中间件
https://zhidao.baidu.com/question/1368634773826611339.html
8.接口自动化测试中遇见的问题
1.接口文档没有2.接口文档变更