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