java大厂面试题和解题思路

这篇文章给大家分享的是java大厂面试题和解题思路。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。

神农架林区ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为创新互联建站的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:18982081108(备注:SSL证书合作)期待与您的合作!

1、redis分布式锁如何保证原子性?

可以了解下这个命令: set key value [EX seconds] [PX mlliseconds] [NX)XX]

2、用过ThreadLocal吗 ?简单说一下?
ThreadLocal采用的是以空间换时间的方式,为每个线程提供一份变量副本。 每一个线程都可以独立的改变自己的副本。具体例子可以自己去网上找。

3、Java8之 后的ConcurrentHashMap,舍弃分段锁
通过JDK的源码和官方文档看来,他们认为的弃用分段锁的原因由以下凡点:加入多个分段锁浪费内存空间。生产环境中,map在放入时竞争同一个锁的概率非常小,分段锁反而会造成更新等操作的长时间等待。为了提高GC的效率。

4、介绍下cms收集器
CMS收集器是老年代收集器,可以配合新生代的Seria和ParNew收集器一起使用。使用的是标记清除算法,容易产生内存碎片。

4个步骤: 1.初始标记--并发标记--重新标记--并发清除( 初始标记、重新标记)仍需STW。但初始标记仅仅只标记了一下GC Roots能直接关联到的对象,速度很快。而重新标记则是修正并发标记期间因用户程序继续运行而导致标记产生变动的那一部分对象的标记记录,虽然一般比初始标记阶段稍长,但要远小于并发标记时间。

5、redis缓存与数据库一致性问题 ?
一致性问题主要出现在数据更新的时候,通常在更新时采取删除缓存而不是更新缓存。具体一点?先淘汰缓存,再写数据库。因为如果先写数据库可能出现如果有读请求发生,可能导致旧数据入缓存,引发数据不一致。

6、dubbo有 哪几种负载均衡策略?
RandomL oadBalance:按权重随机调用,这种方式是dubb默认的负载均衡策略
RoundRobinL oadBalance :轮询,按公约后的权重设置轮询比率
L eastActivel oadBalance :最少活跃次数
ConsistentHashLoadBalance :一致性hash
自定义负载均衡策略
7、介绍下一 致性hash ?
先说下普通hash有机器宕机或者新加机器的后果。然后介绍一致性hash,hash值是个整数非负数值,所有的hash值形成一一个闭圆环对集群的的节点的某个属性求hash值,放到环 上.数据key求hash值,也放到环上。数据的hash值按顺时针找到离它最近的节点,放在该节点上。

8、介绍下MySQL的回表和覆盖索引?
回表简单来说就是数据库根据索引(非主键)找到了指定记录所在行后, 还需要根据主键再次到数据库里获取数据。如果一个索引包含(或要盖)所有需要查询的字段的值,称为覆盖索引。即只需扫描索引而无须回表。

9、说下模板方法模式?
所谓模版方式模式:把不变的行为搬到超类,去除子类中重复的代码来体现他的优势;当不变的和可变的行为在子类实现中混合在一起的时候,不变的行为就会在子类中重复实现,我们通过模板方法模式把这些行为搬移到单一的地方,这样就可以帮助子类摆脱重复不变行为的纠缠。

关于java大厂面试题和解题思路就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。


网站名称:java大厂面试题和解题思路
分享路径:http://hbruida.cn/article/iedhgs.html