相关疑难解决方法(0)

Java中的最终变量操作

任何人都可以告诉我在Java的上下文中以下行的含义:

除非它是不可变的,否则仍然可以操纵最终变量

据我所知,通过声明的任何变量,最后,你不能再改变它,那么他们的意思字不变在上述行?

java variables final

45
推荐指数
2
解决办法
5万
查看次数

我可以使用synchronized到最终字段吗?

考虑下面的代码,我想让它成为一个线程安全类,以便它永远不会得到奇数:

class Test {
  private int value = 0;
  private final Object lock;

  public void add() {
    synchronized (lock) {
      value++;
      value++;
    }
  }

  public int getValue() {
    synchronized (lock) {
      return value;
    }
  } 
}
Run Code Online (Sandbox Code Playgroud)

我现在怀疑锁定领域,这被宣布为最终的,这有关系吗?或者它会打破线程的安全吗?

我认为如果锁定字段没有被声明为final,那么这应该是一个线程安全的类.如果这个结论有误,请指正,谢谢.

java final synchronize

5
推荐指数
1
解决办法
252
查看次数

标签 统计

final ×2

java ×2

synchronize ×1

variables ×1