以下为《多线程编程基础01课件》的无排版文字预览,完整内容请下载
线程独占: 每个线程都会有它独立的空间,随线程生命周期而创建和销毁 JVM运行时数据区.java
源代码.class字节码编译JVM运行时数据区线程共享部分线程共享: 所有线程能访问这块内存数据,随虚拟机或者GC而创建和销毁方法区堆内存> 作用:存储加载的类信息、常量、静态变量、JIT编译后的代码等数据
> JDK7中的永久代 和 方法区 是否等价? 晚一点回答大家
> GC:方法区存在垃圾回收,但回收频率低;
回收主要针对常量池的回收,和类型的卸载;
当方法区无法满足内存需求时,报OOM。 方法区.java
源代码.class字节码编译OldS1S0Eden 堆内存.java
源代码.class字节码编译> 作用:唯一的目的就是存放对象实例,几乎所有的对象、数组都在这里存放
> 对于大多数应用来说,堆是JVM管理的内存中最大的一块 内容过长,仅展示头部和尾部部分文字预览,全文请查看图片预览。 er)记录当前线程执行字节码的位置,字节码解释器
工作时,就是通过改变计数器的值来选取下一条需要执行的字节码指令。
> 如果执行java方法,存储的是字节码指令地址,如果执行Native方法,则计数器值为空。
> 程序计数器是唯一一个在《JVM规范》中没有任何OOM的区域。程序计数器.java
源代码.class字节码编译方法区堆内存虚拟机栈> 直接内存不是JVM运行时数据区的一部分,也不是《Java虚拟机规范》中定义的内存区域,
是我们常说的堆外内存。
> JDK1.4 引入NIO,它可以使用Native函数库直接分配堆外内存,然后通过一个存在在Java堆
中的DirectByteBuffer对象作为操作这块内存区域的引用进行操作。
> 直接内存不受Java堆大小限制,当内存总和大于机器物理内存时,会OOM。 直接内存(不属于JVM内存区域).java
源代码.class字节码编译方法区堆内存直接内存谢谢观看[文章尾部最后300字内容到此结束,中间部分内容请查看底下的图片预览]请点击下方选择您需要的文档下载。
以上为《多线程编程基础01课件》的无排版文字预览,完整内容请下载
多线程编程基础01课件由用户“cutejerk”分享发布,转载请注明出处