在java中什么管理内存_在Java中加载类时如何管理内存?

Will JVM allocate 10 different memory spaces for 10 instances at object creation time (I mean at the time I call the constructor i.e. new MyClass();

它可能会做,但是通过逃逸分析,它可以将它们放在堆栈上或完全消除它们.

or it will load the class definition once in memory and each instance while calling each of those 10 methods,at run time,JVM will allocate the memory?

如果您有一个ClassLoader,您将获得该类的一个实例,但是如果每个实例都有自己的ClassLoader,您将在每个ClassLoader中获得该类的副本.注意:每个ClassLoader可以具有相同名称的不同版本的类.

To clear some misunderstanding,my question is when creating an object,I know that all data members are allocated in heap memory,

它在PermGen(Java< 7)或MetaSpace(Java 8)中存储在堆中的类和方法信息(包括字节代码) 实际的实例在名义上被添加到堆中,但不一定是.

I’m not sure whether the methods which hasn’t been yet called are allocated differently in memory for each object or not?

JVM经历了许多优化阶段,当您调用方法时,它可能会优化它,内联它甚至消除它.您可以通过在命令行上添加-XX:PrintCompilation来查看正在编译(甚至重新优化)的方法.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值