操作系统堆/JVM堆/数据结构堆各自的功能

       前言 

        逆水行舟,不进则退!!!     


       操作系统堆

             

        操作系统堆是内存空间的一部分,主要用于存储操作系统自身运行所需的数据和信息。这种内存管理方式是由操作系统的内存管理机制来完成的。具体来说,操作系统堆是按需申请、动态分配的。例如,当一个程序需要在运行时请求更多内存空间时,就可以从操作系统堆中申请这部分内存。

       此外,堆内存的分配和释放可以由应用程序通过调用特定的API接口来实现。但需要注意的是,对于内存的分配和回收,虽然在应用程序中可以实现,但其背后的管理工作仍由操作系统来完成。因此,操作系统堆的管理策略与JVM堆有所不同,JVM堆的管理策略由JVM自身的垃圾收集器来执行。

       操作系统堆主要负责存储操作系统自身运行所需的数据和信息,如进程间通信的数据、系统调用的参数和返回值等。这种内存管理方式是由操作系统的内存管理机制来完成的。

       与一般用途的内存不同,堆是按需申请、动态分配的。也就是说,当一个程序需要在运行时请求更多内存空间时,它可以从操作系统堆中申请这部分内存。这种内存的分配并不在程序编译时期完成,而是在程序运行期间通过API接口由应用程序向操作系统进行申请。此外,由于内存中的空闲空间并不是连续的,因此堆被设计为一种向高地址扩展的不连续数据结构。

       值得注意的是,虽然应用程序可以通过调用特定的API接口来控制堆内存的分配和释放,但背后的管理工作仍由操作系统来完成。例如,当应用程序不再需要某部分内存时,它需要通知操作系统进行回收。此外,对于可能存在的内存碎片问题,也需要由操作系统的内存管理机制进行处理。

        

上述部分是查找到的资料

       我的理解:操作系统堆是内存空间的一部分。操作系统堆的主要作用:是用来存储操作系统自身运行所需要的数据和信息。但是当一个程序运行时需要更多的内存空间时,可以从操作系统堆中来申请所需要的内存空间。

    在操作系统堆中,可用来分配的那部分空间的分配策略是:按需申请、动态分配。

    操作系统堆的这种内存管理机制 是由操作系统内存管理机制来完成的。

    当应用程序不再需要某部分内存时,它需要通知操作系统对内存空间进行回收。


       JVM堆

        JVM堆是Java虚拟机中用于存储对象实例的内存区域,它是一块所有线程共享的内存,由垃圾收集器来自动管理。 JVM堆的存在有多个重要原因:首先,它实现了对象实例的动态分配,每当我们在Java中使用new关键字创建一个对象时,都会在堆中为此对象分配内存,提供了一种动态的、运行时才确定的内存分配机制 其次,堆是垃圾收集器的主要管理区域,通过其回收机制,可以有效地处理和回收不再使用的对象,从而降低了内存泄露的风险。 最后,由于堆是所有线程共享的,因此可以在此处存放需要被多个线程访问的数据。

        在Java中,定义一个数组也算是创建一个数组实例,也就是说,数组所占用的存储空间也是在JVM堆上的。

        具体来说,当我们创建一个数组时,系统会为该数组分配一个指向堆内存的引用变量,这个引用变量存储在栈上。而数组中的元素则存储在堆内存中。当我们通过引用变量访问数组元素时,实际上是从栈上获取了该元素的地址,然后通过地址访问堆内存中的数据。

JVM堆:需要注意3个点:

     1,JVM堆是Java虚拟机用于存储对象实例的内存区域,实现了对 对象实例的动态分配,每当我们在Java中使用new关键字创建一个新的对象时,都会在堆中为此对象分配内存。

     2,JVM堆是垃圾收集器的主要管理区域,通过其回收机制,可以有效的处理和回收不在使用的对象,从而降低内存泄露的风险。

                内存泄漏:程序在申请内存后,无法释放已经申请的内存空间。

     3,JVM堆是被所有线程共享的。通过让所有线程共享同一个JVM堆,可以有效地提高系统的并发性能。因为多个线程可以同时访问和操作同一块内存区域,从而减少了线程之间的竞争和同步开销。此外,由于JVM堆是全局的,因此还可以避免线程之间频繁地创建和销毁对象,从而提高程序的运行效率。


       数据结构堆

        数据结构堆就是一个完全二叉树 ,主要应用包括实现优先队列和解决动态问题。详情看个链接 → 数据结构堆


        我是专注学习的章鱼哥~

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值