首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

如何彻底理解volatile关键字?

最近面试,你又被volatile关键字虐了吗?这个问题,是不是问得有点扎心了!的确,有很多朋友反馈面试中在涉及考察Java并发编程知识的时候,经常会被问到volatile关键字。对于有些公司如果你能回答出volatile关键字的基本作用及原理,如:"volatile关键字可以实现线程间的可见性,之所以可以实现这一点,原因在于JVM会保证被volatile修饰的变量,在线程栈中被线程使用时都会主动从共享内存(堆内存/主内存)中以实时的方式同步一次;另一方面,如果线程在工作内存中修改了volatile修饰的变量,也会被JVM要求立马刷新到共享内存中去。因此,即便某个线程修改了该变量,其他线程也可以立马感知到变化从而实现可见性"也基本上能够pass这个问题。

01

如何彻底理解volatile关键字?

最近面试,你又被volatile关键字虐了吗?这个问题,是不是问得有点扎心了!的确,有很多朋友反馈面试中在涉及考察Java并发编程知识的时候,经常会被问到volatile关键字。对于有些公司如果你能回答出volatile关键字的基本作用及原理,如:"volatile关键字可以实现线程间的可见性,之所以可以实现这一点,原因在于JVM会保证被volatile修饰的变量,在线程栈中被线程使用时都会主动从共享内存(堆内存/主内存)中以实时的方式同步一次;另一方面,如果线程在工作内存中修改了volatile修饰的变量,也会被JVM要求立马刷新到共享内存中去。因此,即便某个线程修改了该变量,其他线程也可以立马感知到变化从而实现可见性"也基本上能够pass这个问题。

05

面试总结——Java高级工程师

之前也面试别人,现在轮到自己找工作,怎么说呢,每个面试官的看法不一样,面试的方式就不一样,比如我面试别人我喜欢问项目中他用到了那些,然后针对用到的技术去问一些问题,或者说对于某些场景的一些技术实现方案是我特别喜欢问的,比如当你的接口服务数据被人截包了,你如何防止数据恶意提交?    相对来说,Java的底层和基础会问的少一点,当然问的少不是代表不问,而是说侧重点在于你的所做过的项目和你的设计思路如何。当然,懂基础和底层更好,这样能让你知其然,更知其所以然,写出来的代码和程序更具有健壮性和可维护性。所以说,基础还是很重要的。

02
领券