当前位置: 首页 > 面试题库 >

如何在Java中声明易变的数组元素?

赵渊
2023-03-14
问题内容

有没有一种方法可以volatile在Java中声明数组元素?即

volatile int[] a = new int[10];

声明 数组引用 volatile,但是 数组元素 (例如a[1])仍然不是易失的。所以我正在寻找类似的东西

volatile int[] a = new volatile int[10];

但是那样行不通。有可能吗?


问题答案:

使用AtomicIntegerArrayAtomicLongArrayAtomicReferenceArray

所述AtomicIntegerArray类实现一个int数组,其单独的字段可与易失性的语义来访问,经由类的get()set()的方法。调用arr.set(x, y)然后从一个线程将保证另一个线程调用arr.get(x)将读取值y(直到另一个值读取位置X)。

看到:

  • 原子整数数组
  • 原子长数组
  • 原子引用数组
  • java.util.concurrent.atomic软件包摘要


 类似资料:
  • 问题内容: 我想知道如何在bash中声明2D数组,然后初始化为0。 在C中看起来像这样: 以及如何为元素分配值?如在C中: 问题答案: 您可以使用例如哈希来模拟它们,但需要注意前导零和许多其他事情。下一个演示有效,但远非最佳解决方案。 上面的示例创建了一个具有随机数的4x5矩阵,并将其打印后转置,示例结果 原理是:创建一个关联数组,其中索引是类似的字符串。好处: 可以用于任意维度的数组;)像:3维

  • 问题内容: 我想问一个关于Java的问题。我有一个用户定义的对象类,学生,它有2个数据成员,名称和ID。在另一个类中,我必须声明那个object [](例如)。但是,我不知道对象数组的大小。是否可以声明对象数组但不知道大小?谢谢。 问题答案: 用户。添加新元素时,它将自动扩展。以后,您可以根据需要将其转换为数组。 作为另一个选择(不确定您到底想要什么),您可以声明字段,而不必立即对其进行初始化。

  • 问题内容: 如何在Java中声明和初始化数组? 问题答案: 你可以使用数组声明或数组文字(但只有当你立即声明并影响变量时,数组文字才能用于重新分配数组)。 对于原始类型: 例如,对于类,String是相同的: 当你首先声明数组然后对其进行初始化时,第三种初始化方法很有用。

  • 如何在Java中声明和初始化数组?

  • 问题内容: 如何在mysql中声明变量,以便第二个查询可以使用它? 我想写一些像: 问题答案: MySQL中主要有三种类型的变量: 用户定义的变量 (以开头): 您可以访问任何用户定义的变量,而无需对其进行声明或初始化。如果引用的变量尚未初始化,则其值为和字符串类型。 您可以使用或语句来初始化变量: 要么 可以从一组有限的数据类型中为用户变量分配一个值:整数,十进制,浮点数,二进制或非二进制字符串

  • 问题内容: 我有一个Netezza查询,在其中我引用了一系列案例陈述中的几个日期。而不是每次我都想在开始时将一个变量置为一个变量并在整个查询中都使用它时,而不是替换所有这些日期。在SAS中,我会这样做: 问题答案: 不幸的是,Netezza中没有程序SQL扩展,您无法将这样的变量用作SQL语言本身的一部分。纯粹的SQL解决方案将涉及一些麻烦,例如加入CTE并返回该值。但是,NZSQL CLI确实允