gpt4 book ai didi

不需要新的 : allocated contiguosly 的对象的 Java 数组

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:50:16 25 4
gpt4 key购买 nike

在 Java 中,您声明一个数组,然后调用 new 来分配空间。因此,具有 4 个命名整数的类比大小为 4 的数组占用更少的空间并且具有更好的局部性。

有没有什么方法可以拥有一个包含 4 个元素的数组,但它的分配方式与命名变量相同 a1, a2, a3, a4

对于了解 C++ 的人来说,这等同于请求 int x[4] 而不是 int *x

class X
{
int x1;
int x2;
int x3;
int x4;
};

[ Class OID ][x1][x2][x3][x4] = 1 ref + 4 int

class Y
{
int y[];
};

y=new int[4];

[ Class OID ][Y] ======> [Array OID][Array Size][y][y][y][y] = 3 ref + size + 4 int

最佳答案

从 Java 6 开始,在理想情况下,对象实际上分配在堆栈上而不是堆上——换句话说,这正是您所要求的。通常,这是针对其引用不离开创建它们的范围的对象尝试的。所以事实上,有时"new"是绝对免费的!尽管 Java 代码看起来冗长且效率低下,但有几层优化编译器可以将您编写的代码转换为效率惊人的机器代码。

关于不需要新的 : allocated contiguosly 的对象的 Java 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19992652/

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