JAVA虚拟机是如何使用内存
来源:互联网 发布:php数组遍历 编辑:程序博客网 时间:2024/06/10 01:20
我们知道,JAVA程序本身是不能直接在计算机上运行的,它需要依赖于硬件基础之上的操作系统和JVM(JAVA虚拟机)。JAVA程序启动时JVM都会分配一个初始内存和最大内存给这个应用程序。这个初始内存和最大内存在一定程度上会影响应用程序的性能。
JVM其实就是操作系统上的一个普通程序(进程名叫java,这个程序可以解释执行class文件,系统中当前运行了多少个java程序就会有多少个java进程)。当java进程启动时会首先分配一块堆内存(最小内存),以后每当java程序要求JVM(java进程)分配内存时,JVM就会在预先分配的那块内存上为java程序分配内存,当预先分配的那块内存用完时,JVM会再向操作系统要内存(物理内存),但是JVM不会无限制的向操作系统要内存,当它占用的实际内存达到一个预定值(最大可用内存)时,如果java程序还向JVM要内存,并且JVM无法通过垃圾回收机制回收当前堆中的内存来为java程序服务时,它就会给程序抛出异常:java.lang.OutOfMemoryError。其中内存回收时机并不是在用掉内存达到最大可用内存时才进行,它的运行时机是不确定的。可见JVM的最大可用内存就是java程序能够使用的最大内存。例如:我们把某JAVA程序的JVM最大可用内存设为200M,而我们的物理内存是1G。这种情况下,我们的java程序最多能使用200M内存,虽然我们可能还有800M的内存可用,但是当我们的程序用掉200M后,如果再要内存,JVM不会因为我们还有800M的内存而为我们分配内存,它会抛出java.lang.OutOfMemoryError异常。
阅读全文
0 0
- JAVA虚拟机是如何使用内存
- java虚拟机的内存是如何分布的
- Java虚拟机的内存是如何分布的
- java虚拟机使用内存
- Java是如何管理内存
- Java 虚拟机是如何工作的
- Java虚拟机是如何处理异常的?
- Java虚拟机是如何实现安全性?
- 关于Java虚拟机内存的使用
- java虚拟机使用内存知识总结
- 为什么要去了解虚拟机是怎样使用内存的?
- JAVA是如何管理内存的?
- java 是如何管理内存的
- java是如何管理内存的
- java是如何管理内存的
- Java虚拟机(一)--java程序是如何被运行的
- JAVA内存管理【1.1 java是如何管理内存的】
- 如何增加虚拟机内存
- 原生JS实现AJAX、JSONP及DOM加载完成事件,并提供对应方法
- <C语言>在C语言程序中实现shell命令的效果
- 909422229_springboot详细介绍与事例
- JavaScript基础之标准对象
- 可能是东半球最全的RxJava使用场景小结
- JAVA虚拟机是如何使用内存
- java中两大异常:空指针异常和数组越界异常
- iOS开发中的图形编程
- 有理有据做设计之定义方向策略
- 自然语言分类(machine learning)
- 001 Django学习之WSGI(基于Python2.7)
- 代理模式实例-数据库连接池的实现
- php下添加redis扩展
- 数据结构-单链表查找按序号查找