如何使用java代码来计算堆栈大小?是否有任何方法可以使用代码来计算堆栈大小?
我不认为有一个标准或方法来计算堆栈大小。如果没有一些复杂的特定于jvm的API,就无法做到这一点。所以,我认为你不应该那样做。
然而,有一种方法可以通过ss
选项调整VM中的最大堆栈大小。请参考:
http://docs.oracle.com/cd/E13150_01/jrockit_jvm/jrockit/jrdocs/refman/optionX.html#wp1024112
如果你正在使用链表来创建堆栈,那么通过下面的代码,你可以获得堆栈中当前元素的数量:
public int getSize() {
if (head == null) {
return 0;
}
int size = 0;
Node tmpNode = head;
while (tmpNode.next != null) {
size++;
tmpNode = tmpNode.next;
}
return size;
}
现在您可以通过将上述函数返回的大小乘以所需因子来获得堆栈占用的大小。例如堆栈只有整数值,那么堆栈占用的内存= 4*size;