Java
자바 예외 관련 개념 정리
자바 오류 관련 클래스 계층 구조 오류란 프로그램을 실행하는데 발생하는 문제를 뜻합니다. 자바에서 오류를 크게 2가지로 나눕니다. 하나는 Error와 다른 하나는 Exception입니다. 그리고 이 둘 모두의 부모격인 클래스가 Throwable이라는 클래스입니다. 오류들은 계층구조를 이루고 있는데 밑에 그림과 같습니다. Error은 개발자가 손 쓸 수 없는 오류를 뜻합니다. 시스템 레벨에서 발생하기 때문에 개발자가 어떻게 조치할 도리가 없는것이죠. Erorr의 종류로는 쓰레드와 관련된 ThreadDeath나 JVM과 관련된 VirtualMachineError등이 있습니다. Exception은 프로그램의 잘못된 사용 또는 잘못된 코드 작성에 따라 일어나는 에러를 뜻합니다. 따라서 Error와 다르게 개발자..
Inner class에 Static을 붙이는 이유
Inner Class에 Static을 붙여줘야 하는 이유는? Inner Class를 생성할 때 흔히 Static을 붙여주는 이유는 무엇일까요? 예를 들어 다음과 같은 예시가 있다고 가정해봅시다. public class OuterClass { int field = 10; class InnerClass { int inner_field = 20; } } 해당 클래스를 컴파일 후에 만들어지는 .class 파일을 살펴보면 다음과 같습니다. 해당 파일을 인텔리제이로 다시 열어서 디컴파일을 해보면 class OuterClass$InnerClass { int inner_field; OuterClass$InnerClass(OuterClass this$0) { this.this$0 = this$0; this.inner_f..
제너릭이란?
제너릭이란? 제너릭은 메서드나 컬랙션 클래스에 컴파일 시 타입체크를 해주는 기능입니다. 객체의 타입을 컴파일 시에 체크하기 때문에 객체의 타입 안정성을 높이고 형변환은 번거로움을 줄여주는 기능을 합니다. 제너릭의 장점 1. 타입 안정성 제공 2. 타입 체크와 형변환을 생략가능 함으로 코드가 간결해진다. 제너릭 타입은 클래스와 메서드에 선언될 수 있는데, 오늘은 클래스에 선언된 제너릭 타입에 대해 살펴보도록 하겠습니다. 위의 예시에서 클래스 오른쪽에 라고 붙은것을 확인 할 수 있습니다. 또한 인스턴스 변수의 앞에도 T가 붙어 있는 것을 볼 수 있습니다. 위와 같이 GenericExample을 생성할때 안에 원하는 타입을 넣으면 GenericExample 클래스의 T부분이 모두 해당 타입으로 바뀌게 됩니다...
추상클래스와 인터페이스
추상클래스와 인터페이스 자바에서 다형성을 효과적으로 보장해주는 개념이 추상클래스와 인터페이스 입니다. 각각이 지닌 특징이 무엇이고, 두 개념의 차이는 어떠한지에 대해 자세히 살펴보도록 하겠습니다. 추상클래스 추상클래스는 하나 이상의 추상 메서드를 가지는 클래스를 뜻합니다. 여기서 추상 메서드는 선언부만 작성하고 구현부는 작성하지 않은 상태로 남겨둔 메서드를 뜻합니다. 따라서 상속받은 클래스에 따라 구현 내용이 달라질 수도 있는 특징이 있습니다. public abstract class 클래스이름 { public abstract void 메서드이름(); } 예시는 위의 코드와 같습니다. 접근 제어자 뒤에 abstract를 붙여주면 추상클래스 또는 추상 메서드가 됩니다. 여기서 주의할 점이 추상 메서드를 가진..