자바 Generic, Final

갱두·2021년 9월 28일
0

📚 Java

목록 보기
5/9

Generic

제네릭은 자바에서 안정성을 맡고 있다고 할 수 있다.
다양한 타입의 객체들을 다루는 메소드나 컬렉션 클래스에서 사용하는 것으로, 컴파일 과정에서 타입체크를 해주는 기능이다.
객체의 타입을 컴파일 시에 체크하기 때문에
   ✔️ 객체의 타입 안정성을 높이고
   ✔️ 형변환의 번거로움을 줄여줌
   ✔️ 코드도 더 간결해짐

예를 들면,
Collection에 특정 객체만 추가될 수 있도록, 또는 특정한 클래스의 특징을 갖고 있는 경우에만 추가될 수 있도록 하는 것이 제네릭임
💡 장점 💡
collection 내부에서 들어온 값이 내가 원하는 값인지 별도의 로직처리를 구현할 필요가 없이짐
api를 설계하는데 있어서 보다 명확한 의사 전달이 가능

final

final class

다른 클래스에서 상속하지 못한다

final method

다른 메소드에서 오버라이딩하지 못한다.

final variable

변하지 않는 상수값이 되어 새로 할당할 수 없는 변수가 된다

+ 추가적인 파이널들

finally

try-catch 나 try-catch-resource 구문을 사용할 때, 정상적으로 작업을 한 경우와 에러가 발생했을 경우를 포함하여 마무리 해줘야 하는 작업이 존재하는 경우에 해당하는 코드를 작성해주는 코드 블록임

finalize()

keyword ❌ / code block ❌ / 메소드 ⭕️
GC에 의해 호출되는 함수로 절대 호출해서는 안되는 함수이다. Object 클래스에 정의되어 있으며 GC가 발생하는 시점이 불분명하기 때문에 해당 메소드가 실행된다는 보장이 없다.
finalize() 메소드가 오버라이딩 되어 있으면 GC가 이루어질 때 바로 GC되지 않고, GC가 지연되면서 OOME(Out of Memory Exception)이 발생할 수 있다.

출처 : https://github.com/JaeYeopHan/Interview_Question_for_Beginner/tree/master/Java

profile
👩🏻‍💻🔥

0개의 댓글