jjzjj

【Java面试】并发编程高频面试题,请你说一下你对Happens-Before的理解

“请你说一下你对Happens-Before的理解”你听到这个问题的时候,知道怎么回答吗?大家好,我是Mic,一个工作了14年的Java程序员。并发编程是面试过程中重点考察的方向,能够考察的方向有很多关于这个问题,我把高手回答整理到了15W字的面试文档里面大家可以私信我领取下面看看高手的回答。高手:首先,Happens-Before是一种可见性模型,也就是说,在多线程环境下。原本因为指令重排序的存在会导致数据的可见性问题,也就是A线程修改某个共享变量对B线程不可见。因此,JMM通过Happens-Before关系向开发人员提供跨越线程的内存可见性保证。如果一个操作的执行结果对另外一个操作可见,

【Java面试】并发编程高频面试题,请你说一下你对Happens-Before的理解

“请你说一下你对Happens-Before的理解”你听到这个问题的时候,知道怎么回答吗?大家好,我是Mic,一个工作了14年的Java程序员。并发编程是面试过程中重点考察的方向,能够考察的方向有很多关于这个问题,我把高手回答整理到了15W字的面试文档里面大家可以私信我领取下面看看高手的回答。高手:首先,Happens-Before是一种可见性模型,也就是说,在多线程环境下。原本因为指令重排序的存在会导致数据的可见性问题,也就是A线程修改某个共享变量对B线程不可见。因此,JMM通过Happens-Before关系向开发人员提供跨越线程的内存可见性保证。如果一个操作的执行结果对另外一个操作可见,

【Java面试】什么是令牌桶限流算法

当面试官问你,“什么是令牌桶限流算法”!你知道要怎么回答,才能获得面试官的青睐吗?大家好,我是Mic,一个工作了14年的Java程序员。关于这个问题,面试官想考察哪些纬度?我们又该怎么回答呢?问题解析限流策略,是在高并发流量下保护系统稳定性的一种策略。所以这个问题,主要是互联网公司会去考察。当然,在实际业务开发中,限流无处不在,比如线程池、连接池这些通过限制总的并发数量避免资源过度使用。Nginx反向代理服务器上通过limit_conn模块限制瞬时并发连接数在方法层面通过Sentinel、RateLimiter等工具限制接口的并发请求数量等等他们的核心目标,都是限制并发请求数量,避免系统被压垮

【Java面试】什么是令牌桶限流算法

当面试官问你,“什么是令牌桶限流算法”!你知道要怎么回答,才能获得面试官的青睐吗?大家好,我是Mic,一个工作了14年的Java程序员。关于这个问题,面试官想考察哪些纬度?我们又该怎么回答呢?问题解析限流策略,是在高并发流量下保护系统稳定性的一种策略。所以这个问题,主要是互联网公司会去考察。当然,在实际业务开发中,限流无处不在,比如线程池、连接池这些通过限制总的并发数量避免资源过度使用。Nginx反向代理服务器上通过limit_conn模块限制瞬时并发连接数在方法层面通过Sentinel、RateLimiter等工具限制接口的并发请求数量等等他们的核心目标,都是限制并发请求数量,避免系统被压垮

【金九银十必问面试题】站在架构师角度分析问题,如何解决TCC中的悬挂问题

“如何解决TCC中的悬挂问题”!一个工作了4年的Java程序员,去京东面试,被问到这个问题。大家好,我是Mic,一个工作了14年的Java程序员这个问题面试官想考察什么方面的知识?我们又该怎么回答呢?问题解析TCC是分布式事务问题里面的解决方案,一般在应聘互联网公司的时候问的比较多。实际上,在TCC这个事务解决方案里面,除了悬挂问题以外,还有空回滚、幂等性需要考虑。但是我们在应用的时候都是采用一些成熟的框架,比如Seata,这些框架本身就帮我们解决了。导致大部分人不知道这个问题的意思。所谓TCC,其实就是(Try-Confirm-Cancel),也就是把一个事务拆分成两个阶段,类似于传统的XA

【金九银十必问面试题】站在架构师角度分析问题,如何解决TCC中的悬挂问题

“如何解决TCC中的悬挂问题”!一个工作了4年的Java程序员,去京东面试,被问到这个问题。大家好,我是Mic,一个工作了14年的Java程序员这个问题面试官想考察什么方面的知识?我们又该怎么回答呢?问题解析TCC是分布式事务问题里面的解决方案,一般在应聘互联网公司的时候问的比较多。实际上,在TCC这个事务解决方案里面,除了悬挂问题以外,还有空回滚、幂等性需要考虑。但是我们在应用的时候都是采用一些成熟的框架,比如Seata,这些框架本身就帮我们解决了。导致大部分人不知道这个问题的意思。所谓TCC,其实就是(Try-Confirm-Cancel),也就是把一个事务拆分成两个阶段,类似于传统的XA

【金九银十必问Java面试题】工作六年面试被问JVM为什么使用元空间替换了永久代?

“JVM为什么使用元空间替换了永久代?”这是一个工作6年的同学去字节第一面遇到的问题,很遗憾,他没有回答出来大家好,我是Mic,一个工作了14年的Java程序员。关于这个问题,我们怎么回答?面试官到底关注什么呢?面试解析我们都知道Java8以及以后的版本中,JVM运行时数据区的结构都在慢慢调整和优化。但实际上这些变化,对于业务开发的小伙伴来说,没有任何影响。因此我可以说,99%的人都回答不出这个问题。但是互联网大厂的面试就是筛选那1%的优秀人才,因此通过这道题,既可以考察求职者对JVM原理的理解程度又能够考察求职者基本功的扎实程度还能实现高级人才的筛选在Java7里面,JVM运行时数据区是这样

【金九银十必问Java面试题】工作六年面试被问JVM为什么使用元空间替换了永久代?

“JVM为什么使用元空间替换了永久代?”这是一个工作6年的同学去字节第一面遇到的问题,很遗憾,他没有回答出来大家好,我是Mic,一个工作了14年的Java程序员。关于这个问题,我们怎么回答?面试官到底关注什么呢?面试解析我们都知道Java8以及以后的版本中,JVM运行时数据区的结构都在慢慢调整和优化。但实际上这些变化,对于业务开发的小伙伴来说,没有任何影响。因此我可以说,99%的人都回答不出这个问题。但是互联网大厂的面试就是筛选那1%的优秀人才,因此通过这道题,既可以考察求职者对JVM原理的理解程度又能够考察求职者基本功的扎实程度还能实现高级人才的筛选在Java7里面,JVM运行时数据区是这样

【Java面试】听说Java求职者/面试官都关注了我,这道面试题一个空Object对象的占多大空间?你答的上来吗

“一个空Object对象的占多大空间?”一个工作了5年的Java程序员直接被搞蒙了。大家好,我是Mic,一个工作了14年的Java程序员。我把这个问题的文字版本整理到了15W字的面试文档里,大家可以扫描文章尾端领取。下面看看高手的回答。高手:在开启了压缩指针的情况下,Object默认会占用12个字节,但是为了避免伪共享问题,JVM会按照8个字节的倍数进行填充,所以会填充4个字节变成16个字节长度。在关闭压缩指针的情况下,Object默认会占用16个字节,16个字节正好是8的整数倍,因此不需要填充。在HotSpot虚拟机里面,一个对象在堆内存里面的内存布局是使用OOP结构来表示的,它主要分为三个

【Java面试】听说Java求职者/面试官都关注了我,这道面试题一个空Object对象的占多大空间?你答的上来吗

“一个空Object对象的占多大空间?”一个工作了5年的Java程序员直接被搞蒙了。大家好,我是Mic,一个工作了14年的Java程序员。我把这个问题的文字版本整理到了15W字的面试文档里,大家可以扫描文章尾端领取。下面看看高手的回答。高手:在开启了压缩指针的情况下,Object默认会占用12个字节,但是为了避免伪共享问题,JVM会按照8个字节的倍数进行填充,所以会填充4个字节变成16个字节长度。在关闭压缩指针的情况下,Object默认会占用16个字节,16个字节正好是8的整数倍,因此不需要填充。在HotSpot虚拟机里面,一个对象在堆内存里面的内存布局是使用OOP结构来表示的,它主要分为三个
12