记录一次java面试题

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、在线编程,给出一个数字数组和目标值,输出两数相加等于目标值的组合

发布了38 篇原创文章 · 获赞 6 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/coderlady/article/details/105711053