作者文章归档:wangxiuwen

Java对象内存分布


Java对象内存分布

1.6 synchronize 锁升级过程?和之前的版本有什么区别?是否可逆?

偏向锁,轻量级锁,重量级锁

synchronize 首先是无锁状态,当有竞争的时候,先检查Markword中的线程id 是否存储线程id, 没有的话就设置线程id,执行同步代码块,有的话cas操作,成功的话就执行同步代码块, 失败的话就进入到轻量级锁过程。

升级轻量级锁的时候 ,会发生 stop the word,然后将原先持有偏向锁的线程升级成轻量级锁,然后在 cas 操作,成功执行同步代码块,失败进行自旋,自旋达到一定次数之后还没有执行的话,就升级成重量级锁。

偏向锁:标志位 01 ,

Read more

新东方一面


@李百万

项目介绍 voliate 伪共享 happen-before threadlocal 四种引用 虚信用使用场景 MySQL处理并发的两种方式 分别在什么场景下使用 引擎层和server层分别干啥 意向锁的作用 插入意向锁 juc下的包都有啥 说说常用的 说说future和completefuture redis多线程网络连接的情况下 怎么保证原子操作 Kafka高性能的原理 partition的问题 线程池的工作过程

Read more

高旅纵横


线程的几个方法 sleep,join, yield 讲解和使用场景?

sleep 是 Thread 的静态方法,不会释放锁,线程休眠,阻塞 timeout 时长
join 等待线程结束,先 join 是没有效果的
yield 是 Theead 的静态方法,线程让出执行时间片
wait 是 Object 的方法

线程池的几种类型?这种线程池使用的什么队列?

Redis经常使用的数据结构? 跳表的源码 ?什么情况下会使用跳表?会问一下常用之外的数据机构 是否清楚实现。

布隆过滤器使用场景和源码?

缓存穿透,判重过滤,去重 布隆中不存在的key肯定不存在,存在的key可能存在也可能不存在。 bit

Read more

自如面经


一面

用过spring cloud 哪些组件?

redis 的分布式锁有用过吗?

redis 分布式锁 setnx 如果线程执行时间很长,导致锁失效如何处理?

他说可以续期

zk的分布式锁有用过吗?

spring eureka 源码有看过吗?

项目里面哪里用到了 bloomfilter?

用过哪些线程池?有拒绝策略吗?

redis 部署有几种方案?

Dubbo 用过吗?

bean 的生命周期

二面

Hystrix 是靠什么保证服务高可用的?

zuul 都用了哪些功能?

算法看过哪些? (看过 xxx,xxx, 八皇后, 被打断) 八皇后你用什么算法解决的?时间复杂度是?

substring 描

Read more

Spring 事务中哪几种事务传播行为?


支持当前事务的情况:

TransactionDefinition.PROPAGATION_REQUIRED: 如果当前存在事务,则加入该事务;如果当前没有事务,则创建一个新的事务。 TransactionDefinition.PROPAGATION_SUPPORTS: 如果当前存在事务,则加入该事务;如果当前没有事务,则以非事务的方式继续运行。 TransactionDefinition.PROPAGATION_MANDATORY: 如果当前存在事务,则加入该事务;如果当前没有事务,则抛出异常。(mandatory:强制性)

不支持当前事务的情况:

TransactionDefinition.

Read more