当前位置:首页 > 内存 > 正文

java内存模型面试

  • 内存
  • 2024-07-28 03:20:53
  • 2272

一、Java面试中都会遇到哪些问题不同的面试官问问题的方向不同。
一类喜欢问基础、底层的知识,需要扎实的基本功,对jvmGC内存模型有一定的了解。当然,他们也会看写的内容。在你的简历上,询问你能做什么。比如你写自己熟悉mybatis,那么他可能会问mapper中的${}和#{}有什么区别
Some。人们喜欢询问项目经验并会查看你的简历。询问你做项目的经历,遇到什么困难,如何解决等等。
有些还会问一些新的东西,比如学到了什么。最近,然后请你谈谈
当然。也许有人会问
以上都是个人观点,是我面试过程中遇到的一些情况
我个人对面试的感受还是要看情况,有时候答案很好,但是很难与面试官沟通。一般来说,有时候我们可以聊得很好,聊了很久你才注意到
刚进入职场的时候,不要害怕面试,这是第一关,放心吧去面试,给他发几百份简历,慢慢选择,慢慢来
二、关于JAVA内存模型与MESI协议?

深入了解Java内存模型和MESI协议:它们如何协同工作


内存世界的两个守护者:MESI和JMM


MESI,全称Modified、Exclusive、Shared、Invalid,是一个重要的缓存一致性协议。保证多核处理器中多个缓存副本之间共享变量的同步一致性,避免数据混乱和冲突。


JMM,Java内存模型层面


相比之下,JMM(JavaMemoryModel)是Java语言层面的一个概念,主要关注的是内存注重一致性,特别是并发编程的三个关键特性:原子性(保证操作不能共享)、顺序(操作的执行顺序与代码编写顺序一致)、可见性(公共操作的可见更新)个变量)。线程之间)。JMM通过“易失性”和“同步”等关键字来实现这些功能,以确保程序在多线程环境中的行为符合程序员的预期。


硬件和编程之间的桥梁:内存和缓存


在Java多线程中,每个线程都有自己的内存和自己的主存进行交互。虽然这里的RAM类似于计算机的硬件缓存,但它们各自侧重于不同的领域。当多个线程不一致地访问共享变量时,内存一致性问题出现在程序级别,而不是由于缓存级别的硬件冲突。因此,了解内存一致性和缓存一致性之间的区别非常重要。


MESI与内存一致性模型的融合


在内存一致性模型的实现中,MESI等缓存一致性协议发挥了英雄的作用幕后人物。它通过协调缓存之间的数据状态间接支持并发多线程操作的内存模型规范。也就是说,JMM在处理内存一致性问题时,可能会依赖缓存一致性协议来保证底层的同步协调。


总而言之,虽然MESI协议和Java内存模型(JMM)看似独立,但在多线程编程的世界中,它们是相互依赖的,并且程序是共同的管理正确性是一个关键要素。了解它们如何协同工作有助于我们编写高效可靠的并发代码。