last는 멤버 변수입니다. 최종 지역 변수에 할당하는 대신 메서드에서 직접 사용하는 것은 어떨까요?
typecho2017-06-23 09:16:09
코드 살펴보기
으아악last는 일시적이잖아요? 로컬 최종 변수에 할당하면 last를 사용할 때마다 값을 확인할 필요가 없겠죠?
巴扎黑2017-06-23 09:16:09
이유 중 하나는 스레드 안전성을 보장하기 위한 것입니다. 이 방법이 l 변수를 사용하지 않고 마지막 멤버를 직접 참조한다고 가정하면 if(this.last == null)
。如果通过判断之后的瞬间,last 被赋值成了 null,那么下一句 unlinkLast(this.last)
판정이 되어 알 수 없는 결과가 발생하게 됩니다.