1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
|
Instances of boxed primitive types may be cached by the standard library
`valueOf` method. This method is used for autoboxing. This means that using a
boxed primitive as a lock can result in unintentionally sharing a lock with
another piece of code.
Consider using an explicit lock `Object` instead of locking on a boxed
primitive. That is, prefer this:
```java
private final Object lock = new Object();
void doSomething() {
synchronized (lock) {
// ...
}
}
```
instead of this:
```java
private final Integer lock = 42;
void doSomething() {
synchronized (lock) {
// ...
}
}
```
|