`

本文出一个简单读取JVM内存使用情况的例子

 
阅读更多
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JVM memory</title>
</head>
<body>
<%
    double total = (Runtime.getRuntime().totalMemory()) / (1024.0 * 1024);
    double max = (Runtime.getRuntime().maxMemory()) / (1024.0 * 1024);
    double free = (Runtime.getRuntime().freeMemory()) / (1024.0 * 1024);
    out.println("Java 虚拟机试图使用的最大内存量(当前JVM的最大可用内存) maxMemory(): " + max + "MB<br/>");
    out.println("Java 虚拟机中的内存总量(当前JVM占用的内存总数) totalMemory(): " + total + "MB<br/>");
    out.println("Java 虚拟机中的空闲内存量(当前JVM空闲内存) freeMemory(): " + free + "MB<br/>");
    out.println("因为JVM只有在需要内存时才占用物理内存使用,所以freeMemory()的值一般情况下都很小,<br/>" +
    "而JVM实际可用内存并不等于freeMemory(),而应该等于 maxMemory() - totalMemory() + freeMemory()。<br/>");
    out.println("JVM实际可用内存: " + (max - total + free) + "MB<br/>");
%>
</body>
</html>

 

分享到:
评论

相关推荐

    volatile源码分析1

    在深入理解volatile时,我们需要考虑JVM内存模型、处理器缓存以及底层的汇编指令,这有助于我们更好地理解和使用volatile,解决并发编程中的问题。在实际开发中,合理利用volatile可以避免不必要的锁同步,提升程序...

    2015-11-ClassLoaders-Selajev.pdf

    当你有一个简单的Java程序,比如下面这个: ```java public class A { public static void main(String[] args) { B b = new B(); int i = b.inc(0); System.out.println(i); } } ``` 当你编译这段代码并运行...

    JVM核心教程之JVM运行与类加载全过程详解

    以下是一个简单的示例,展示了类加载过程: ```java public class Demo01 { public static void main(String[] args) { A a = new A(); System.out.println(a.width); } } class A { public static int width...

    Java中new的用法.pdf

    如果声明了一个引用但没有使用new为其分配内存,则该引用将包含一个特殊的值null,表示它不指向任何对象。例如: ```java String str2 = null; ``` 在这个例子中,str2是一个String类型的引用变量,它没有初始化为一...

    分布式缓存.docx

    在实现单个JVM内的缓存框架时,我们可以使用ConcurrentHashMap,它是一个线程安全的数据结构,适合在多线程环境下作为基础缓存容器。例如,SpringBoot中的简单MapCache实现就展示了如何通过这个数据结构实现存取删除...

    jni使用详解

    在这个例子中,Java类`HelloWorld`有一个本地方法`sayHello`,C++代码实现了这个方法,并通过`JNIEXPORT`和` JNICALL`宏定义了正确的调用约定。 六、注意事项 1. **内存管理**:本地代码需要负责分配的内存,必须...

    volatile可见性的一些认识和论证

    本文探讨了Java中volatile关键词的使用和可见性问题,我们将结合JVM内存模型和happen-before概念,来讨论volatile的使用场景和例子。 一、happen-before happen-before是一个可见性原则,定义了Java语言中操作的...

    class loader

    - **应用场景**:HotJava浏览器就是一个很好的例子,它可以为每个下载的Applet提供独立的命名空间,这样即使两个Applet使用了相同名称的类也不会发生冲突。 - **优势**:提高了应用程序之间的隔离性,降低了因类名...

    ASM插桩在Android项目中的应用

    ASM是一个底层库,能够生成和解析符合Java虚拟机(JVM)规范的字节码。通过ASM,开发者可以直接操作字节码,实现对方法的插入、删除或修改。这对于创建AOP(面向切面编程)框架、性能监控工具、代码混淆等场景非常...

    Flink安装-简介.docx

    Apache Flink 是一个开源的流处理框架,专为大规模数据处理设计,支持实时处理和批处理。在本文中,我们将详细介绍如何在 Standalone 模式下安装和配置 Flink,以及进行基本的 WordCount 测试。 首先,选择合适的 ...

    java调用第三方dll心得.pdf

    在本文中,我们将探讨如何在Java环境中调用第三方DLL文件,特别是针对J2EE项目中的面部识别考勤终端机数据读取。这个问题涉及到Java本地接口JNI(Java Native Interface)和C/C++编程,以实现与DLL文件的交互。 ...

    3_类加载与字节码技术2

    每个字节码指令对应一个特定的操作,如 `aload_0` 用于加载局部变量表的第一个对象引用,`invokevirtual` 用于调用实例方法等。 3. **编译期处理** 在Java中,javac编译器将源代码转换成字节码,期间可能进行一些...

    Java 存储模型和共享对象详解

    2. `volatile` 关键字:标记一个变量为volatile,禁止指令重排序,并确保每次读取都是从主内存中直接获取最新值,写操作也会立即同步到主内存。 3. `final` 关键字:final变量一旦初始化,其值就不会改变,因此始终...

    java初级知识

    在一个方法中,可以先抛出异常,然后在另一个方法中捕获它。 **9. 常用类** Java标准库提供了许多有用的类,如`String`, `ArrayList`, `HashMap`等。 **10. String方法** `String`类提供了大量方法,如`length()`,...

    java 中volatile和lock原理分析

    下面通过一个简单的例子来对比volatile和锁: ```java public class TestVolatile { private static volatile boolean stop = false; public static void main(String[] args) { stop = true; boolean b = stop...

    【Java高频面试题】–类的初始化过程以及实例的初始化过程

    这涉及到读取类的字节码文件(.class文件)并创建一个对应的Class对象。 2. **验证**:加载后的字节码文件会经过验证,确保其符合Java虚拟机规范,不会破坏系统安全。 3. **准备**:在这个阶段,静态变量被分配...

    值得收藏的2017年Java开发岗位面试题

    4. jdbc连接,forname方式的步骤,怎么声明使用一个事务。 JDBC是Java Database Connectivity的缩写,用于连接数据库。 5. 无框架下配置web.xml的主要配置内容。 Web.xml是Java Web应用程序的配置文件,用于配置...

    解析Android中的Serializable序列化

    以下是一个简单的示例: ```java public void testSerializable() { try { ArrayList&lt;MyData&gt; dataList = new ArrayList(); // 填充dataList File sdCard = Environment.getExternalStorageDirectory(); ...

Global site tag (gtag.js) - Google Analytics