본문 바로가기

JAVA27

Null 처리 Null 개념 Null Null 값을 갖는 변수는 JVM 메모리에서 값이 없으면 해시 코드를 0으로 가져 힙 영역에 데이터를 생성하지 않는다. 모든 멤버 타입은 Null 값을 가질 수 있고 사전에 처리하지 않으면 NPE(Null Pointer Exception)이 발생할 수 있다. Null을 다루는 방법 equals() equals(null 객체)를 통해 객체가 null인지 확인할 수 있다. valueOf() null을 갖는 객체를 toString()을 사용하면 NPE가 발생할 수 있기 때문에 valueOf()를 통해 null을 반환할 수 있도록 한다. Null safe methods StringUtils 메서드가 대표적으로 null을 안전하게 처리할 수 있다. Null 반환 메서드 사용 절제 Colle.. 2023. 5. 12.
Serialization Serialization 개념 직렬화 자바 시스템에서 사용하는 객체나 데이터를 외부의 자바 시스템에서 사용할 수 있도록 바이트 형태로 변환하는 기술 각자의 PC의 운영체제에서는 다른 가상 메모리 주소를 사용하기 때문에 참조 타입의 인스턴스는 전달할 수 없다. 이러한 문제를 해결하기 위해 주소값을 바이트 형태로 변환하여 데이터를 전달할 필요가 존재 직렬화된 데이터는 원시 타입으로 변환되고 파일 저장이나 전송할 때 유의미한 데이터가 된다. 이 과정을 직렬화이다. 역직렬화 직렬화를 통해 변환된 바이트 데이터를 다시 자바 객체나 데이터 형태로 변환하는 기법 직렬화 조건 구현 방식 java.io.serializable 인터페이스를 구현으로 직렬화, 역직렬화가 가능 대상 인터페이스를 구현한 구현체, 원시 타입 데이.. 2023. 5. 9.
Object Class Object Class 개념 Object Class Java의 최상위 클래스 Object Class의 메서드를 오버라이딩하여 사용 가능 주요 메서드 toString() 객체의 해시코드를 출력 클래스풀네임@해시코드 형태의 문자열을 출력 오버라이딩하여 객체 정보를 문자열로 표현할 때 주로 사용 equals() 기본적으로는 == 연산 결과를 반환(동일성을 비교) 오버라이딩하여 다른 주소값을 가지는 객체의 동등성을 비교(객체 내용을 비교) hashCode() JVM이 인스턴스를 생성할 때 메모리 주소를 변환하여 부여한 코드 실제 메모리 값과는 별개 오버라이딩하여 주소값은 다르지만 객체 내용이 동등한 경우 동일성을 가지도록 하기 위해 사용 HashSet이나 HashMap의 경우에는 객체를 저장하기 위해 hashC.. 2023. 5. 8.
Generic Generic 개념 Generic 타입을 일반화 클래스 내부에서 타입을 정하는 것이 아니라 외부에서 직접 지정하여 컴파일 타임에서 검사 특정 타입의 변수형이 지정되지 않고 설정 가능 제너릭 타입(Generic Type) 타입을 파라미터로 갖는 클래스나 인터페이스 클래스나 인터페이스 뒤에 꺽쇠()를 사용하고 그 안에 타입 파라미터를 작성해서 사용 특정 파라미터에 종속되지 않는다. 타입 파라미터 제너릭 타입에 사용하는 매개변수로 정해지지 않은 파라미터 참조 타입은 T(Type), 요소는 E(Element), 키는 K(Key), 값은 V(Value)로 표시 사용 목적 재사용성 증가 여러 타입 파라미터를 사용해 코드를 간결하고 재사용을 높게 해 준다. 동일한 기능을 하는 메서드에서 타입 파라미터를 다르게 하면 .. 2023. 4. 28.