1、说说对HashMap的理解
我:hashMap基于hashing原理,重写equas和hashCode方法,通过hashCode函数计算出一个值然后通过这个值找到对应的哈希桶,再通过equas方法找到要的值。
面试官:它的数据结果是怎样的?
我:数组加红黑树列表
面试官:为什么要用红黑树
我:用红黑树可以让整个树趋于一个平衡的状态,避免数据出现一边倒的情况
2、说说对gc的理解
这个问题实在是问的太笼统了,我答不上来,对gc基本上没怎么准备忘了
3、数据库的乐观锁和悲观锁
说了一下乐观锁和悲观锁的原理
4、如何实现数据库锁
我只说了有行锁和列锁,具体怎么实现没答上
5、数据库引擎有哪些,有什么区别
我只答了InnoDB和MyISAM,区别只答了InnoDB支持事务,MyISAM不支持事务
6、redis怎么持久化
我:RDB,由于冷备份,每隔一段时间全量备份一次,AOF:热备份,只要redis有更新和新增就进行备份
面试官:rdb存储的格式是怎样的?
我:很懵,没答上,没有真实用过的经验
7、如果使用redis缓存,缓存里面没有值,数据库也没有值,这个时候有黑客发起大量的请求导致数据库崩溃,怎么处理
这个问题问的是缓存穿透,解决方案是当查询数据为空时,在redis上设置这条数据值为null,并设置超时时间。
8、谈谈缓存击穿
查询频率很高的一条redis数据失效导致压力全部转移到关系型数据库导致数据库崩溃。
解决办法:设置永久有效或者采取分布式锁
9、说说进程和线程的区别 ,要从操作系统层面说,进程间的通信有哪些
就是操作系统那一套
10、tcp和udp的区别
11、tcp是如果建立连接和释放连接的
问的是三次握手和四次挥手
12、口述一个算法题,给你两个相同的球,从100层楼的某一层往下扔,低于这层楼球不会破,高于这层楼都会破,请你通过这两个球找到这层楼。如果球没破你可以一直用这个球尝试,球破了就不能用了。
13、在线编程,给出一个数字数组和目标值,输出两数相加等于目标值的组合