美文网首页
技术周总结 2025.06.02

技术周总结 2025.06.02

作者: 算法成瘾者 | 来源:发表于2024-06-29 18:29 被阅读0次

一 java中的jvm的程序计数器为什么没有内存溢出的问题?

在 Java 虚拟机(JVM)中,程序计数器(Program Counter, PC)是一个非常特殊的内存区域。了解其设计和功能,有助于理解为什么它没有内存溢出的危险。

程序计数器的功能

  1. 指示当前线程执行的字节码指令地址

    • 在 JVM 中,程序计数器记录当前线程正在执行的字节码指令的地址。如果线程正在执行一个 Java 方法,程序计数器记录的是该方法中的字节码指令地址;如果线程正在执行的是本地方法(native method),则程序计数器为空(undefined)。
  2. 实现多线程

    • 程序计数器帮助 JVM 实现多线程。在 JVM 中,每个线程都有一个独立的程序计数器,它独立于其他线程。这意味着每个线程在执行过程中都有自己的指令地址记录,从而能够在多线程切换时恢复正确的执行位置。

程序计数器的特点

  1. 线程私有

    • 程序计数器是线程私有的,这意味着每个线程都有自己的程序计数器,不会与其他线程共享。因此,不同线程的程序计数器彼此独立,互不影响。
  2. 占用内存小

    • 程序计数器存储的只是当前指令的地址(通常是一个整数或指针),所以所需的内存空间非常小。由于每个线程只需要维护一个简单的地址,内存占用是微不足道的。
  3. 不存在垃圾回收问题

    • 程序计数器作为一种基础的数据结构,它的生命周期与线程的生命周期一致。当线程结束时,其对应的程序计数器会自动销毁,不存在垃圾回收问题。

为什么程序计数器没有内存溢出(OutOfMemoryError)危险

  1. 占用内存小

    • 由于程序计数器只是一个简单的指针(或整数),它的内存需求非常小,通常在几个字节到几十个字节之间。这种微小的内存消耗不足以引发内存溢出。
  2. 分配内存确定

    • 程序计数器在线程创建时就被分配了固定的内存空间,而且这个空间大小是固定且非常小的,不会动态变化,因此不会因为内存分配或使用的不确定性而导致内存溢出。
  3. 线程私有和生命周期

    • 每个线程都有自己的程序计数器,程序计数器的生命周期和线程的生命周期一致。当线程结束时,程序计数器也随之销毁,不会存在残留的内存占用问题。

总结

程序计数器在 JVM 中起着至关重要的作用,但由于它所需的内存极小,且设计上保证了线程私有和生命周期的独立性,根本不可能出现内存溢出的问题。这使得程序计数器成为 JVM 内存模型中一个非常稳定和可靠的组成部分。

相关文章

  • 周总结:技术篇

    微信6.3.16版更新,终于可以“置顶公众号”啦! 30个媒体平台 1. 泛媒体平台 1. 微信公众平台 http...

  • 2019周检视第18周(20190428-20190504)

    2019周检视第18周(20190428-20190504) 本周总结: 本周上班三天,完成公报的技术审查,儿歌群...

  • 技术分享标题

    ## 2015.06.05 - [开源利弊浅谈 - 张超耀](移动组周技术分享总结#开源利弊浅谈---张超耀) -...

  • JAVA技能树

    JAVA核心技术总结 J2EE技术总结 工作和学习总结 大数据相关技术总结

  • 【20170501】一周技术总结

    这里讲的是我在这周内所了解的技术动态,我在项目里遇到的事情。可能对我是新鲜事,对你并不是,对行业来看也不是。 这次...

  • 【20170404】一周技术总结

    这里讲的是我在这周内所了解的技术动态,我在项目里遇到的事情。可能对我是新鲜事,对你并不是,对行业来看也不是。 上次...

  • 【20170411】一周技术总结

    这里讲的是我在这周内所了解的技术动态,我在项目里遇到的事情。可能对我是新鲜事,对你并不是,对行业来看也不是。 这次...

  • 【20170511】一周技术总结

    这里讲的是我在这周内所了解的技术动态,我在项目里遇到的事情。可能对我是新鲜事,对你并不是,对行业来看也不是。 估计...

  • 【20170226】一周技术总结

    这里讲的是我在这周内所了解的技术动态,我在项目里遇到的事情。可能对我是新鲜事,对你并不是,对行业来看也不是。 差点...

  • 【20170219】一周技术总结

    这里讲的是我在这周内所了解的技术动态,我在项目里遇到的事情。可能对我是新鲜事,对你并不是,对行业来看也不是。 这周...

网友评论

      本文标题:技术周总结 2025.06.02

      本文链接:https://www.haomeiwen.com/subject/csvjqjtx.html