gpt4 book ai didi

java - 使用 new 重新分配 Java 中的对象

转载 作者:行者123 更新时间:2023-12-01 12:40:27 25 4
gpt4 key购买 nike

这是一个关于 Java 内存分配的菜鸟问题。
我想知道以下重新分配是否“有问题”:

例如。

byte[] b = new byte[10];

..

b = new byte[20]

....

b = new byte[4]

这会删除堆栈并分配新内存吗?我们可以重新调整变量/对象的大小并以这种方式重新调整大小吗?

最佳答案

Will this erase the stack and allocate new memory?



是的,如果旧对象没有任何实时引用,它们将被 GC 处理。

Can we re-size the variable/object and re-dimension it this way?



不,Java 数组不能动态增长。它们的大小总是固定的。

如果是其他对象,则可以更改对象的状态。例如: ArrayList , 您可以在创建列表后更改其大小。

Probably just an additional question. If this is only allocating new memory and the old one taken care of by GC, is it ok to do the following:

MyObject myobject = new MyObject(byte[20])
...
myobject= new MyObject(byte[10]);


是的,这是完全正确的。您正在将新对象重新分配给旧引用 myobject .

关于java - 使用 new 重新分配 Java 中的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23289168/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com