Java将数组参数分配给构造函数中的成员时会发生什么?

JDS

MyClass和会员一起上课float[] myArray我使用以下方法构造:

public MyClass(float[] initArray) {
    myArray = initArray;
}

我想知道在后台发生了什么:JVM是否将指针设置为相同?我是否有将myArray变量丢失给垃圾收集器的风险

最好执行以下操作:

public MyClass(float[] initArray) {
    int len = initArray.length;
    myArray = new float[len];
    System.arraycopy(initArray, 0, myArray, 0, len);
    initArray = null;
}

我问是因为我是在内存紧张的嵌入式环境上编程的,所以我不想丢失变量(例如第一个示例)或浪费额外的空间(例如通过设置initArray为null,我希望GC来处理它)然后还给我那个RAM)。

  • 编辑-在第一种方法中,如果initArray在其他函数中创建了局部变量会怎样?谢谢。
петер.петров

JVM是否将指针设置为相同?
->是的,在Java中,它们更好地称为引用。

我有失去myArray变量给垃圾收集器的风险吗?
->否,除非您丢失对MyClass对象的引用。

最好执行以下操作?
->最好-不。这取决于您的需要,
在这里创建一个实际的副本,都可以。
设置那里initArray = null;没有用的顺便说一句,
因为initArray没有通过引用传递。在Java中,
所有内容均按值传递,甚至是引用
initArray此处是引用)

在第一种方法中,如果initArray是
在其他函数中创建局部变量,会发生什么情况

->
在您将对本地变量的引用保存到MyClass对象中时,可以考虑一下它,当函数完成
执行时,您不会丢失它(我想这是您所关心的)。简而言之,
只要MyClass对象(保存它的对象)存在,它就会存在。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类常见问题

在Python中将一个变量的值分配给另一个变量时会发生什么?

来自分类常见问题

为什么是Java构造函数呢?变量没有分配给数组?

来自分类Dev

在C ++中使用参数将类构造函数分配给新的构造函数

来自分类Dev

在c ++中将字符串值分配给整数变量时会发生什么?

来自分类Dev

将构造函数分配给变量。-为什么使用Firefox控制台此代码不起作用

来自分类Dev

Python,将函数分配给变量,更改可选参数的值

来自分类Dev

将参数分配给gradle中的变量

来自分类Dev

熊猫:为什么列的dtype在分配给数据框时会发生变化

来自分类Dev

将列表分配给构造函数

来自分类Dev

将类方法结果分配给构造函数参数

来自分类Dev

当我在函数中重新分配可变默认参数时会发生什么?

来自分类Dev

将2d数组指针参数分配给本地数组指针变量

来自分类Dev

如何绑定参数,将函数分配给类原型

来自分类Dev

将函数用作参数时会发生什么情况?

来自分类Dev

C ++-将参数分配给函数标题中的局部变量

来自分类Dev

在C中构造(将值分配给struct数组)

来自分类Dev

将函数参数分配给列名

来自分类Dev

为什么将参数分配给回调?

来自分类Dev

将files.txt中的行数分配给数组length-java

来自分类Dev

将构造函数分配给变量。-使用Firefox控制台,为什么此代码不起作用

来自分类Dev

将参数函数分配给类成员

来自分类Dev

将函数分配给函数指针

来自分类Dev

C ++ Arduino:将函数分配给函数指针

来自分类Dev

如何使用Typescript将值分配给构造函数中的数组?

来自分类Dev

如果我将一个右值分配给一个类的指针成员会发生什么?

来自分类Dev

将 lambda 函数分配给静态成员变量 (c++)

来自分类Dev

如何将函数分配给函数指针

来自分类Dev

当我们将 2 个值分配给同一个变量时会发生什么?

来自分类Dev

将协议参数分配给对象成员

Related 相关文章

  1. 1

    在Python中将一个变量的值分配给另一个变量时会发生什么?

  2. 2

    为什么是Java构造函数呢?变量没有分配给数组?

  3. 3

    在C ++中使用参数将类构造函数分配给新的构造函数

  4. 4

    在c ++中将字符串值分配给整数变量时会发生什么?

  5. 5

    将构造函数分配给变量。-为什么使用Firefox控制台此代码不起作用

  6. 6

    Python,将函数分配给变量,更改可选参数的值

  7. 7

    将参数分配给gradle中的变量

  8. 8

    熊猫:为什么列的dtype在分配给数据框时会发生变化

  9. 9

    将列表分配给构造函数

  10. 10

    将类方法结果分配给构造函数参数

  11. 11

    当我在函数中重新分配可变默认参数时会发生什么?

  12. 12

    将2d数组指针参数分配给本地数组指针变量

  13. 13

    如何绑定参数,将函数分配给类原型

  14. 14

    将函数用作参数时会发生什么情况?

  15. 15

    C ++-将参数分配给函数标题中的局部变量

  16. 16

    在C中构造(将值分配给struct数组)

  17. 17

    将函数参数分配给列名

  18. 18

    为什么将参数分配给回调?

  19. 19

    将files.txt中的行数分配给数组length-java

  20. 20

    将构造函数分配给变量。-使用Firefox控制台,为什么此代码不起作用

  21. 21

    将参数函数分配给类成员

  22. 22

    将函数分配给函数指针

  23. 23

    C ++ Arduino:将函数分配给函数指针

  24. 24

    如何使用Typescript将值分配给构造函数中的数组?

  25. 25

    如果我将一个右值分配给一个类的指针成员会发生什么?

  26. 26

    将 lambda 函数分配给静态成员变量 (c++)

  27. 27

    如何将函数分配给函数指针

  28. 28

    当我们将 2 个值分配给同一个变量时会发生什么?

  29. 29

    将协议参数分配给对象成员

热门标签

归档