在Java程序运行期间如何检查内存状况

时间:2018-11-19 03:29:09

标签: java oop jvm jdb

我正在学习Java,在寻找数据时,我经常看到描述程序运行期间内存分配的图片。就像:

描述多态性 enter image description here

描述继承 enter image description here

结合本文,我可以理解图片。但是我想知道,有什么方法或命令可以让我在java程序运行时查看jvm中的内存分配状态?

我尝试使用jdb调试程序,但没有给出jvm中的内存分配状态。

以下是我的测试代码,我只需要一个简单的示例,在此代码运行时,使用一些命令或方法查看jvm的内存分配。

项目目录结构

.
├── src
│   └── com
│       ├── Index.java
│       └── libs
│           ├── Cat.java
│           ├── Dog.java
│           └── ext
│               └── Animal.java

Animal.java

package com.libs.ext;

public class Animal {

    public void eat() {
        System.out.println("Animal is eating");
    }
}

Dog.java

package com.libs;

import com.libs.ext.Animal;

public class Dog extends Animal {
    public void eat() {
        System.out.println("Dog is eating");
    }
}

Cat.java

package com.libs;

import com.libs.ext.Animal;

public class Cat extends Animal {
    public void jump() {
        System.out.println("Cat is jumping");
    }
    public void eat() {
        System.out.println("Cat is eating");
    }
}

Index.java

package com;

import com.libs.Cat;
import com.libs.Dog;
import com.libs.ext.Animal;

public class Index {

    public static void doEat(Animal animal) {
        animal.eat();
    }

    public static void main(String[] args) {
        Dog d = new Dog();
        Cat c = new Cat();

        Index.doEat(d); //Dog is eating
        Index.doEat(c); //Cat is eating

        c.jump(); //Cat is jumping
    }
}

0 个答案:

没有答案