본문 바로가기

스터디9

[Java 자바] 정적 초기화 블록, 인스턴스 초기화 블록 초기화 블록은 자바 초기 버전부터 있던 기능으로, 객체 지향 초기화 매커니즘에서 중요한 역할을 한다.초기화 블록은 클래스의 초기화를 담당하고, 종류에 따라 쓰임새가 다르다.정적(static) 초기화 블록정적 초기화 블록의 코드는 해당 클레스에 처음 접근할 때 딱 한번 실행된다.주로 초기화 로직이 필요한 정적 변수를 초기화하는 데 사용된다. ex) 파일 불러오기당연히 정적 초기화 블록에서는 정적 멤버가 아닌 멤버에 접근할 수 없다.코드 예시public class StaticInit { private String hello = "hello"; public String getHello() { return hello; } public static String STATIC_INI.. 2024. 9. 20.
[Java 자바] equals()와 hashCode() 메서드 1 계기SpringBoot에서 lombok의 @Data 어노테이션이 붙어있으면 equals로 오버라이드 하지 않아도 객체가 논리적으로 동일한지 비교해준다. 근데 @Data에 보면 EqualsAndHashCode가 붙어 있다. equals는 아는데 hashCode는 뭔지 궁금해서 찾아보게 되었다.2 자바에서 객체 동등성 비교자바에서 객체의 동등성을 비교할 때는 일반적으로 equals() 메서드를 활용한다.equals는 Object 클래스에 정의되어 있는 메서드로, 따로 오버라이드 하지 않으면 '=='연산자와 동일하게 객체의 메모리 주소값을 비교한다.3 equals와 hashCode3.1 equalsequals는 따로 override하지 않으면 객체의 메모리 주소를 비교한다.이는 Object 클래스에 정의되.. 2024. 9. 10.
[Java 자바] 제네릭(generic)이란? 제네릭(generic)이란데이터 타입(data type)을 일반화 하는 것으로, 클래스나 메소드에서 사용할 내부 데이터 타입을 컴파일 시에 미리 지정하는 방법이다. 제네릭이 있기 전(JDK 1.5 이전)에는 인수를 Object 타입으로 사용했다.이를 사용하기 위해 원래 타입으로 바꿔야 했고, 컴파일 시에 오류가 있는지 알지 못했다.하지만 제네릭의 도입으로 컴파일 시에 미리 타입이 정해져서 오류를 줄이고, 번거로운 작업을 안 할 수 있게 됐다. 제네릭을 활용해 클래스와 메소드를 정의할 수 있다.이때 타입명 대신 쓰이는 문자를 타입 변수(type variable)이라고 하고, 원시 타입이 아닌 참조형 타입만을 의미한다.(그래서 원시 타입을 쓰고 싶을 때는 래퍼(wrapper) 클래스를 사용해야 한다.)일반적.. 2024. 3. 19.