理解Java内存模型:常见问题与案例

原创 客官°小女子只卖身不卖艺 2024-10-20 07:27 165阅读 0赞

Java内存模型(JMM)是Java语言规范的一部分,它定义了所有Java虚拟机(JVM)共享的、无状态的抽象硬件。以下是一些关于JMM的常见问题以及案例:

  1. 引用

    • 什么是引用?
    • 示例:int a = 5; String s = "Hello";这里a和s都是对内存中对象的引用。
  2. 可见性(Visibility):

    • 什么是可见性?
    • 示例:public class Test { private int num; public void setNum(int num) { this.num = num; } public int getNum() { return num; } }在多线程环境下,setNum和getNum的方法可能具有不同的可见性。
  3. 有序性(Ordering)

    • 什么是有序性?
    • 示例:public class Test { private final Object lock = new Object(); public void test() { synchronized (lock) { System.out.println("Thread 1: Before acquire"); // 这里执行一些逻辑 Thread.sleep(500); // 等待一段时间 System.out.println("Thread 1: After acquire"); } } }在多线程环境下,如果多个线程同时访问一个临界资源(如lock对象),那么它们的执行顺序可能会变得不确定。

了解和理解JMM是深入Java虚拟机工作的重要基础。

文章版权声明:注明蒲公英云原创文章,转载或复制请以超链接形式并注明出处。

发表评论

表情:
评论列表 (有 0 条评论,165人围观)

还没有评论,来说两句吧...

相关阅读