Total52 Annotation Annotation(어노테이션) 어노테이션은 클래스나 메소드 등의 선언시 @를 사용하는 것을 말합니다. 소스코드에 추가해서 사용할 수 있는 메타 데이터의 일종으로 컴파일 과정과 실행 과정에서 코드를 어떻게 처리해야하는지를 알려주기 위한 추가 정보입니다. 어노테이션을 사용하는 목적은 아래와 같습니다. 컴파일러에게 코드 작성 문법 에러를 체크하도록 정보 제공 소프트웨어 개발 환경이 빌드나 배포시 코드를 자동으로 생성할 수 있도록 정보 제공 실행시(런타임시)에 특정 기능을 실행하도록 정보를 제공 어노테이션 종류 Java에서는 사용하기 위해 정해져 있는 어노테이션과 어노테이션을 선언하기 위한 메타 어노테이션이 있습니다. 이미 정의되어 있는 어노테이션은 아래와 같습니다. @Override 선언한 메소드가 오버라이.. 2022. 11. 29. Generic Generic이란? Java의 generic은 형변환시 발생할 수 있는 문제를 사전에 없애기 위해 만들어졌습니다. 파라미터 타입이나 리턴 타입을 클래스 내부에서 지정하는 것이 아닌 외부에서 사용자에 의해 지정됩니다. 타입을 파라미터화해서 컴파일 시 구체적인 타입이 결정되어 컴파일시에 미리 타입을 강하게 체크해 런타입에러를 사전에 방지해줍니다. 즉, 타입을 미리 지정하는 것이 아닌 필요에 의해 지정할 수 있도록 합니다. public class ClassName {...} public interface InterfaceName {...} 위와 같이 클래스 또는 인터페이스 이름 뒤에 부호를 붙여 사용하며, 이 를 제너릭 타입이라고 하며 사이에 타입 파라미터가 위치합니다. Generic 타입 선언시 클래스 또는.. 2022. 11. 29. Hash Collision Hash Collision(해시 충돌)이란? 동일하지 않은 어떤 객체 X와 Y가 있을 때, X.hashCode() != Y.hashCode()가 같지 않다면, 이때 사용하는 해시 함수는 완전한 해시 함수(perfect hash functions)라고 합니다. Integer, Long, Double 같은 Number 객체는 객체가 나타내는 값 자체를 해시 값으로 사용할 수 있기 때문에 완전한 해시 함수를 대상으로 삼을 수 있지만, String이나 POJO(plain old java object)에 대해 완전한 해시 함수를 제작하는 것은 사실상 불가능해 해시 충돌이 일어날 수 있습니다. 또한 Java의 hashcode() 함수는 리턴값을 int로 반환하기 때문에 2^32개의 객체를 다르게 저장할 수 있지만 .. 2022. 11. 28. 익명클래스 vs 람다식 익명클래스 익명클래스는 코드 내부에 이름이 존재하지 않는 클래스를 만드는 것으로, 클래스 정의와 동시에 객체를 생성할 수 있습니다.인터페이스와 클래스 모두 익명클래스로 객체를 만들 수 있습니다. 클래스 생성 시 별도의 Java 파일을 통해 생성되지 않으며, 컴파일 시 $.class 파일로 생성됩니다. class 파일 생성 규칙: (익명 클래스가 정의된 클래스 파일명)${익명클래스정의된순번).class 프로그램 내에서 한번만 객체로 만드는데 사용되는 클래스의 경우, 클래스를 정의하고 객체를 생성하는 것이 비효율적으로 이런 경우 익명클래스를 사용합니다. 또한 익명클래스로 클래스 정의와 구현을 동시에 하여 코드 길이를 줄일 수 있습니다. 사용예제 아래와 같은 방식으로 익명클래스를 이용해 Interface, 클.. 2022. 11. 28. 이전 1 2 3 4 5 ··· 13 다음