java如何获得JVM可能的总内存,最大内存,以及空闲内存?

public class Demo2 {
    public static void main(String[] args) {
    	DecimalFormat df = new DecimalFormat("0.00") ;
    	//显示JVM总内存
    	long totalMem = Runtime.getRuntime().totalMemory();
    	//显示JVM尝试使用的最大内存
    	long maxMem = Runtime.getRuntime().maxMemory();
    	//空闲内存
    	long freeMem = Runtime.getRuntime().freeMemory();
	}
}
时间: 2024-11-14 12:59:55

java如何获得JVM可能的总内存,最大内存,以及空闲内存?的相关文章

Java虚拟机(JVM)中的内存设置详解

在一些规模稍大的应用中,Java虚拟机(JVM)的内存设置尤为重要,想在项目中取得好的效率,GC(垃圾回收)的设置是第一步. PermGen space:全称是Permanent Generation space.就是说是永久保存的区域,用于存放Class和Meta信息,Class在被Load的时候被放入该区域Heap space:存放Instance. GC(Garbage Collection)应该不会对PermGen space进行清理,所以如果你的APP会LOAD很多CLASS的话,就很

Java获得jvm占用的内存和系统的可用内存信息

1 import java.text.DecimalFormat; 2 3 public class Main { 4 /** 5 * 显示JVM总内存,JVM最大内存和总空闲内存 6 */ 7 public void displayAvailableMemory() { 8 DecimalFormat df = new DecimalFormat(“0.00″) ; 9 10 //显示JVM总内存 11 long totalMem = Runtime.getRuntime().totalMem

深入理解Java虚拟机(jvm性能调优+内存模型+虚拟机原理)视频教程

14套java精品高级架构课,缓存架构,深入Jvm虚拟机,全文检索Elasticsearch,Dubbo分布式Restful 服务,并发原理编程,SpringBoot,SpringCloud,RocketMQ中间件,Mysql分布式集群,服务架构,运 维架构视频教程 14套精品课程介绍: 1.14套精 品是最新整理的课程,都是当下最火的技术,最火的课程,也是全网课程的精品: 2.14套资 源包含:全套完整高清视频.完整源码.配套文档: 3.知识也 是需要投资的,有投入才会有产出(保证投入产出比是

Java基础篇(JVM)——总领

这篇文章由几个问题组成,目的是想厘清JVM的一些基本概念,同时最后引出JVM知识体系的几大块,以后的文章就围绕这几大块展开. 1. 什么是JVM?它有什么作用? JVM是Java虚拟机的简写,Java是先编译后解释型的语言,其最初设计的目的是"一次编写,到处运行",也就是要实现平台的无关性,这个特性正是通过使用JVM实现的. 编译器首先将Java程序编译成字节码.class文件,再由JVM加载,解释成机器指令给不同的系统(从这个意义上说,Java属于解释型语言,因为它并非是直接将代码编

【Java高级】JVM内存区域模型和加载过程

JVM内存区域模型 1.方法区 也称"永久代" ."非堆",  它用于存储虚拟机加载的类信息.常量.静态变量.是各个线程共享的内存区域.默认最小值为16MB,最大值为64MB,可以通过-XX:PermSize 和 -XX:MaxPermSize 参数限制方法区的大小. 运行时常量池:是方法区的一部分,Class文件中除了有类的版本.字段.方法.接口等描述信息外,还有一项信息是常量池,用于存放编译器生成的各种符号引用,这部分内容将在类加载后放到方法区的运行时常量池中.

Java虚拟机:JVM内存分代策略

Java虚拟机根据对象存活的周期不同,把堆内存划分为几块,一般分为新生代.老年代和永久代(对HotSpot虚拟机而言),这就是JVM的内存分代策略. 为什么要分代? 堆内存是虚拟机管理的内存中最大的一块,也是垃圾回收最频繁的一块区域,我们程序所有的对象实例都存放在堆内存中.给堆内存分代是为了提高对象内存分配和垃圾回收的效率.试想一下,如果堆内存没有区域划分,所有的新创建的对象和生命周期很长的对象放在一起,随着程序的执行,堆内存需要频繁进行垃圾收集,而每次回收都要遍历所有的对象,遍历这些对象所花费

Java虚拟机(JVM)内存区域

        Java虚拟机内存区域分为五部分:程序计数器.Java虚拟机栈.本地方法栈.堆.方法区.其中程序计数器.Java虚拟机栈.本地方法栈属于线程私有内存区,其生命周期与线程相同,随线程的产生而产生,随线程的消亡而消亡.这几个区域的内存在方法或线程结束时,自然就跟着回收了.因此这三个区域的内存分配和回收具有确定性,不需要考虑内存回收的问题.而Java堆和方法区属于线程共享内存区,所有线程都可以访问.只有在程序运行期间才能知道创建哪些对象,因此这两个区域的内存分配和回收都是动态的,也是垃

《深入理解Java虚拟机:JVM高级属性与最佳实践》读书笔记(更新中)

第一章:走进Java 概述 Java技术体系 Java发展史 Java虚拟机发展史 1996年 JDK1.0,出现Sun Classic VM HotSpot VM, 它是 Sun JDK 和 OpenJDK 中所带的虚拟机,最初并不是Sun开发 Sun Mobile- Embedded VM/ Meta- Circular VM BEA JRockit/ IBM J9 VM JRockit曾号称世界上最快的java虚拟机,BEA公司发布.J9属于IBM主要扶持的虚拟机 Azul VM/ BEA

Java虚拟机(JVM)体系结构概述及各种性能参数优化总结

转自:http://blog.csdn.net/zhongwen7710/article/details/39213377 第一部分:相关的概念 数据类型 Java虚拟机中,数据类型可以分为两类:基本类型和引用类型.基本类型的变量保存原始值,即:他代表的值就是数值本身:而引用类型的变量保存引用值.“引用值”代表了某个对象的引用,而不是对象本身,对象本身存放在这个引用值所表示的地址的位置. 基本类型包括:byte,short,int,long,char,float,double,Boolean,r