计算机IO模型四、java堆内、外内存的一些说明

本文介绍了Java堆内存和直接内存(堆外内存)的概念,包括它们在Java应用中的定义、应用场景、优缺点。堆外内存由于避免了数据在本地堆和Java堆之间的复制,因此在性能上有优势,常用于Netty和Kafka等场景。然而,堆外内存的管理更为复杂,当发生内存溢出时,排查问题会更加困难。
摘要由CSDN通过智能技术生成

1. 定义:

关于java堆内存和直接内存的介绍,我在google上面看了一些文章,比较准确的介绍如下:

 Java Heap Memory

      The Java application runs in the JVM, and the java heap memory is the memory allocated by the JVM for the java application. The JVM is designed to isolate aplications from the machine. Usually talking about Java memory refers to Java heap memory.

      you can use -Xmx, -Xms to modify the java heap memory allocation.

Java Direct Memory

       Java 1.4 introduced Direct memory.The new IO class is based on channels and buffers for IO operations. NIO adds support for direct ByteBuffers, which can directly operate local memory instead of Java Heap Memory, which will have higher performance because it will avioid copying data between the local heap and Java Heap.

2. 堆外内存和堆内存介绍

       如下图所示,Java是C语言写的一段普通的程序,它的级别是linux下面的一个进程,用lsof -p pid命令可以看到进程下的详细信息。用byteBuffer的allocate方法会在jvm虚拟机的堆上分配,

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值