我正在学习Java,在寻找数据时,我经常看到描述程序运行期间内存分配的图片。就像:
结合本文,我可以理解图片。但是我想知道,有什么方法或命令可以让我在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
}
}