[JAVA笔记]-基础-Java虚拟机-内存空间

Java虚拟机的内存空间

  • 栈内存: 方法[运行时]所进入的内存, 里面还会存储程序的局部变量
  • 堆内存: new出来的数据都会进入堆内存
  • 方法区: 字节码文件加载时所进入的内存

  • 本地方法区: 这块内存空间主要调用的是操作系统相关的资源

    • public static native long currentTimeMillis();
      
  • 寄存器: 交给CPU进行控制和使用的区域.

public class Jvm_Memory {
    public static void main(String[] args) {
        Tiecket t = new Tiecket();

        new Thread(t,"窗口1").start();
        new Thread(t,"窗口2").start();
    }
}

class Tiecket implements Runnable{
    int tickets = 100;

    @Override
    public void run() {
        while (true){
            synchronized (Tiecket.class){
                if (tickets <= 0){
                    break;
                }
                System.out.println(Thread.currentThread().getName() + "卖出了第:" + tickets-- + "号票");
            }
        }
    }
}

内存图:

每一个线程都会有自己独立的内存空间:

这里有三个线程:

  1. main;
  2. 窗口1;
  3. 窗口2.

image

更新时间:2019-10-18 15:15:35

本文由 Alicyu 创作,如果您觉得本文不错,请随意赞赏
采用 知识共享署名4.0 国际许可协议进行许可
本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名
原文链接:https://www.alicyu.com/archives/jvm-memory
最后更新:2019-10-18 15:15:35

Your browser is out of date!

Update your browser to view this website correctly. Update my browser now

×