模拟Java面试(一)

  1. HashMap的扩容机制

默认长度为16,存储到0.75f的时候会自动扩容2倍

  1. 线程的几种状态

创建 就绪 运行 阻塞 死亡

  1. 介绍一下AQS的信号量

和Synchronized的区别在于,信号量指定了一个共享区域允许多个线程共同访问。

  1. 自旋锁是否使用cas算法

  1. volatile的特点

将变量直接写入内存,让线程可以直接访问到

  1. redis分布式如何进行缓存一致性

将读与写串行化在内存中存储

  1. 解释一下orm的原理

对象关系映射。

在springboot中有AutoConfiguration,这样不太好说明,以spring举例:

①xml文件里,我们可以将xml的信息读入内存结合对应的类解析出关键的字段,属性等等
②properties里,我们可以进行连接数据库的配置
③通过解析映射文件,利用反射得到数据库得到映射类的信息,通过构造方法创建对象,再通过set方法注入值。

  1. tcp和udp的区别

tcp面向连接,udp面向无连接
tcp传输可靠,udp传输不可靠
tcp字节流传输,udp用数据报文段
tcp传输慢,udp传输快
tcp传输需要资源多,udp传输需要资源少
tcp应用场景是要求通信数据可靠,udp是要求数据传输快
tcp首部字节长20-60,udp首部字节长8个字节

  1. spring如何解决循环依赖

(1)每当我们创建一个bean的时候,会将其放在一个bean池,然后循环创建的同时会去对比,如果有相同的bean,会抛出BeanCurrentlylnCreationException ,就意味着循环创建bean了
(2)三级缓存:第一级缓存初始化单例对象的cache,第二级缓存如果发现对象没初始化,就曝光单例对象的cache,第三级缓存带他进行实例化。
(3)spring容器不对正在创建的bean池的bean去进行曝光

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值