清除ArrayList的两个选项中哪一个更好更快,为什么?
list.clear()
Run Code Online (Sandbox Code Playgroud)
要么
list = new ArrayList<Integer>();
Run Code Online (Sandbox Code Playgroud)
碰巧我必须在随机的时间清除我的ArrayList中的所有条目,我无法知道将来会有多少新条目,可能有0或1000.哪种方法更快更好,为什么?
一个锁总是后跟一个try/finally块,为什么?
ReentrantReadWriteLock readWriteLockBitmap = new ReentrantReadWriteLock();
Lock read = readWriteLockBitmap.readLock();
Lock write = readWriteLockBitmap.writeLock();
int shared = 0;
public void function1(){
read.lock();
try{
//reading shared int
}
finally{
read.unlock();
}
}
public void function 2(){
write.lock();
try{
//modify shared int
}
finally{
write.unlock();
}
}
Run Code Online (Sandbox Code Playgroud)
为什么有这个try/finally块而不是简单地编写代码如下:
ReentrantReadWriteLock readWriteLockBitmap = new ReentrantReadWriteLock();
Lock read = readWriteLockBitmap.readLock();
Lock write = readWriteLockBitmap.writeLock();
int shared = 0;
public void function1(){
read.lock();
//reading shared int
read.unlock();
}
public void function 2(){
write.lock();
//modify shared int …
Run Code Online (Sandbox Code Playgroud)