728x90
1. [final 키워드는 변경 불가능하게 한다]
적용 대상 | 효과 |
기본형 변수(Primitive) | 해당 변수 값 변경 불가 |
참조형 변수(Reference) | *참조 변수가 힙 내 다른 객체를 가르키도록 변경 불가 |
메서드 | 해당 메서드 오버라이드 불가 |
클래스 | 해당 클래스 상속 불가 |
*참조 변수가 힙 내 다른 객체를 가르키도록 변경 불가
public class FinalExample { public static void main(String[] args) { final StringBuilder sb = new StringBuilder("Hello"); sb.append(" World"); // 객체의 상태는 변경 가능 (문자열 추가) // sb = new StringBuilder("New Object"); // 오류 발생: 참조 변수는 다른 객체를 가리킬 수 없음 } }
2. [finally 키워드는 try/catch 블록이 종료될 때 항상 실행될 코드 블록을 정의한다]
- finally는 선택적으로 try 혹은 catch 블록 뒤에 정의할 때 사용한다.
- finally 블록은 예외가 발생해도 항상 실행된다. (단, JVM이 try 블록 실행 중 종료되는 경우 제외)
- finally 블록은 종종 뒷마무리 코드를 작성하는 데 사용된다.
- finally 블록은 try와 catch 블록 다음과, 통제권이 이전으로 다시 돌아가기 전 사이에 실행된다.
예시
public class FinallyExample { public static void main(String[] args) { try { int result = 10 / 0; // 예외 발생 (ArithmeticException) } catch (ArithmeticException e) { System.out.println("Catch block: Division by zero error."); } finally { System.out.println("Finally block: This will always be executed."); } } }
3. [finalize() 메서드는 GC가 더이상 참조하지 않는 객체를 메모리에서 삭제할때 호출된다]
- Object 클래스의 finalize()메서드를 오버라이드해서 맞춤별 GC를 정의할 수 있다.
protected void finalize() throws Throwable { // 파일 닫기, 자원 반환 등등 }
728x90
'백앤드 > JAVA' 카테고리의 다른 글
[JAVA] 추상 클래스와 인터페이스의 차이 (1) | 2024.10.18 |
---|---|
[JAVA] Wrapper Class는 기본 자료형을 객체로 변환한다 (0) | 2024.10.18 |
[JAVA] ==는 주소 값, equals는 값 비교 (0) | 2024.10.18 |
[JAVA] 객체지향 프로그래밍 (OOP,Object Oriented Programming) (0) | 2024.10.18 |
[JAVA] String, StringBuilder, StringBuffer 차이 (0) | 2024.10.18 |