Notice
Recent Posts
Recent Comments
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 | 30 | 31 |
Tags
- 페이스북
- perplexity
- 티스토리
- 애플페이
- ChatGPT
- 토큰탈취
- 이클립스
- 젤프
- 베이직쎈
- Ai
- 랜섬웨어
- 취약점
- 컨택리스
- 토스뱅크
- 예제
- 메플리
- Applepay
- 내방문자찾아주오
- 토큰털이
- 0원메가패스
- zelf
- 윈도우11
- 다음아고라사칭
- wannacry
- 방문자추적기
- 페이스북서명운동
- 2017 티스토리 결산
- 자바
- 2017티스토리결산
- 다음아고라서명운동
Archives
- Today
- Total
EdgeSecu
final에 관하여 본문
좋은 질문이야! 결론부터 말하자면 sessions를 final로 선언해도 add, remove 함수는 전혀 문제없이 작동해.
🔍 왜 그런가?
private final List<Session> sessions = new ArrayList<>();
- 여기서 final은 참조(Reference) 자체가 바뀌지 않는다는 의미야.
- 즉, sessions = new ArrayList<>(); 이런 식으로 다른 리스트를 다시 할당하는 것만 금지되는 거고,
- 그 안에 있는 요소들을 추가하거나 제거하는 것은 가능해.
📌 예시로 쉽게 설명하면:
final List<String> list = new ArrayList<>();
list.add("a"); // ✅ 가능
list.remove("a"); // ✅ 가능
list = new ArrayList<>(); // ❌ 컴파일 에러 (final이므로 재할당 불가)
💡 정리
- final은 **"sessions라는 변수에 다른 List를 할당하지 못하게 하겠다"**는 의미일 뿐이야.
- 리스트의 내용 변경(add/remove) 은 전혀 문제 없어.
- 그래서 SessionManager 클래스에서 add, remove, clear, getAllUsername 모두 제대로 작동함.
'공부 > JAVA' 카테고리의 다른 글
| 함수형 인터페이스와 SAM의 차이 (0) | 2025.05.26 |
|---|---|
| static에 관하여 (0) | 2025.05.17 |
| JAVA-네트워크 자원 정리 (0) | 2025.05.16 |
| JAVA try-with-resources(자동 자원 해제) (0) | 2025.05.13 |
| 방어적 프로그래밍의 중요성: TaskScheduler의 null 체크(MID2-9-문제와 풀이4-문제2) (0) | 2025.03.29 |