Java八股文面试题之面试记录(三)

1.Kafka中有三个topic,但是有四个消费者,会出现什么问题?每个消费者都能消费到消息吗?

2.Integer a = 1,Integer b = 1,Double a = 1.0,Double b = 1.0,Boolean a = true,Boolean b =true,a==b?为什么?

(1)true。因为对于整型数据来说,在-128到127之间的值,会被缓存起来重复使用,也就是说如何自动装箱的方式创建值在-128到127之间的话,实际上他们之间的==比较是会被拆箱成int再比较,结果自然是true。

(2)对于浮点类型的数据来说,由于没有缓存区,所以a==b的结果是false。(为什么没有缓存区?因为浮点区间里面的数是无限多个的)

(3)对于布尔值来说,Java为它提供了缓冲,即TRUE和FALSE两个对象,所以a和b实际上都指向了Boolean.TRUE对象,故a==b的结果是true。

3.Java中数组和链表的区别?

(1)数组是一块连续的空间,数组在定义上长度就是固定的,一旦创建无法改变,当需要频繁的随机访问时,用数组较好。

(2)链表是一组通过指针相连的节点,链表的长度可以动态的改变,但是访问某一个元素的时候,需要遍历,但是删除和插入较快。

4.HashMap底层用什么实现的?

数组+链表+红黑树

5.红黑树是什么版本才引入的?

Java 8

6.HashMap数组中存储的是什么东西?

数组中存放的是链表(或者红黑树)的头节点,每个链表(或红黑树)中存放的是键值对

7.HashMap是如何新增一条数据的?

(1)HashMap会根据新增数据的K的hashCode找到该K在数组中的位置。

(2)如果该位置上的链表(或红黑树)为空,则直接将新增数据作为链表的头节点。

(3)如果该位置上的链表(或红黑树)不为空,则需要遍历该链表(或红黑树),查找对应的键是否存在。

(4)如果键存在,则更新对应的值;否则,将添加新的键值对到链表中。

8.线程安全的HashMap是什么?如何实现的?

9.死锁是如何产生的?

10.重写和重载的区别?

11.构造方法可以重写吗?

构造方法用于创建和初始化对象,不能被继承,自然也不能被重写,只能被重载。

12.Redis有哪些数据类型?你常用的是什么?

13.Redis一般什么场景用?

14.Redis的雪崩、穿透、击穿?如何解决?

15.Redis如何保证数据不丢失的?

16.Redis持久化中RDB和AOF的区别?

17.用过SpringBoot的什么特性?

18.自动注入过程中遇到了什么问题?

19.如何解决循环依赖问题?

20.该开始初始化的时候,Bean是保存在几级缓冲中的?

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值