好未来乐读一面
1.redisson是如何实现分布式锁的?
通过set key value NX(保持互斥性) EX(过期时间,避免死锁) 实现的
2.多线程并发情况下,释放锁需要做什么操作?
释放锁时通过Lua脚本检查锁的持有者是否为当前线程,确保只有当前线程才能释放锁
3.一个成员变量的值是1,十个线程每个线程对他加一,他最后的结果是多少?如何保证他的结果为11 (除了加锁之外还有其他的实现吗)?
最后的的结果不能确定,可以使用锁和使用原子变量(例如AutomaticInteger)来保证他的结果为11
4.mysql的数据引擎是如何避免脏读的?
脏读指的是一个一个事物读取到了其他事物没有提交的数据。如何避免:MVCC+读快照
5.ConcurrentHashMap在java1.8的新特性
Jdk1.8抛弃了分段所的设计,采用了与HashMap类似的数组+链表+红黑树的结构,通过synchronized、CAS和volatile来实现线程安全
6.mq如何实现消息幂等性?
在业务层面上,记录下已经处理过的消息的唯一标识,在每次处理前先检查该消息是否被处理过。
7.spring 一个接口有多个实现 autowared注解 在注入的时候可以正常注入吗?
在默认情况下不能,但Spring提供了多种解决方案来明确指定要注入哪个Bean,利用通过Qualifier注解来指定要注入Bean的名称
8.AB两个方法A方法中调用B、假如A开启了事物,B也会开启事物吗?
取决于事务的传播行为。
9.Spring事务是基于什么实现的? AOP是通过什么实现的,方法A中调用方法B,A开启了事务,也会生成B的代理对象吗?
事物是基于AOP实现的,AOP是通过动态代理实现的。如果方法A和方法B处于同一个类中则不会生成B的代理对象(同时事物会失效),如果确实存在这样的需求可以在该类中注入自己
10.当一个对象被加载时一定会出现在新生代吗?
一个对象被加载时,极大概率会出现在新生代,但如果它是一个非常大的对象,或者遇到了需要“分配担保”的特殊GC场景,它可能会直接在老年代被创建或安置
#牛客AI配图神器#
通过set key value NX(保持互斥性) EX(过期时间,避免死锁) 实现的
2.多线程并发情况下,释放锁需要做什么操作?
释放锁时通过Lua脚本检查锁的持有者是否为当前线程,确保只有当前线程才能释放锁
3.一个成员变量的值是1,十个线程每个线程对他加一,他最后的结果是多少?如何保证他的结果为11 (除了加锁之外还有其他的实现吗)?
最后的的结果不能确定,可以使用锁和使用原子变量(例如AutomaticInteger)来保证他的结果为11
4.mysql的数据引擎是如何避免脏读的?
脏读指的是一个一个事物读取到了其他事物没有提交的数据。如何避免:MVCC+读快照
5.ConcurrentHashMap在java1.8的新特性
Jdk1.8抛弃了分段所的设计,采用了与HashMap类似的数组+链表+红黑树的结构,通过synchronized、CAS和volatile来实现线程安全
6.mq如何实现消息幂等性?
在业务层面上,记录下已经处理过的消息的唯一标识,在每次处理前先检查该消息是否被处理过。
7.spring 一个接口有多个实现 autowared注解 在注入的时候可以正常注入吗?
在默认情况下不能,但Spring提供了多种解决方案来明确指定要注入哪个Bean,利用通过Qualifier注解来指定要注入Bean的名称
8.AB两个方法A方法中调用B、假如A开启了事物,B也会开启事物吗?
取决于事务的传播行为。
9.Spring事务是基于什么实现的? AOP是通过什么实现的,方法A中调用方法B,A开启了事务,也会生成B的代理对象吗?
事物是基于AOP实现的,AOP是通过动态代理实现的。如果方法A和方法B处于同一个类中则不会生成B的代理对象(同时事物会失效),如果确实存在这样的需求可以在该类中注入自己
10.当一个对象被加载时一定会出现在新生代吗?
一个对象被加载时,极大概率会出现在新生代,但如果它是一个非常大的对象,或者遇到了需要“分配担保”的特殊GC场景,它可能会直接在老年代被创建或安置
#牛客AI配图神器#
全部评论
相关推荐

点赞 评论 收藏
分享
点赞 评论 收藏
分享