유랑하는 나그네의 갱생 기록

だけど素敵な明日を願っている -HANABI, Mr.children-

오블완 2

[Java] 직렬화(Serialization)와 역직렬화(Deserialization)

Java에서 직렬화(Serialization)와 역직렬화(Deserialization)는 객체 데이터를 효율적으로 저장하거나 네트워크를 통해 전송하기 위한 중요한 메커니즘입니다. 직렬화와 역직렬화를 왜 사용해야 하는지, 그 동작 원리와 실질적인 활용 사례를 다루겠습니다. 그리고 직렬화 과정에서 사용하는 transient 키워드와 serialVersionUID의 역할 및 설정 방법까지 알아보겠습니다. Serialization?직렬화(Serialization)란 Java 객체를 바이트 스트림으로 변환하는 과정입니다. 이 과정을 통해 객체를 파일에 저장하거나 네트워크로 전송할 수 있습니다. 다시 말해, 객체의 상태를 영구적으로 저장하거나 전송 가능한 형식으로 변환하는 것입니다. 직렬화의 목적1. 데이터 영속성..

Study/Java 2024.11.17

[Java] charAt과 substring에 long 타입 인덱스를 사용할 수 없는 이유에 관하여

최근 Java로 문자열을 처리하던 도중에 골머리를 앓았습니다. 대체 왜 자바에서는 charAt과 substring 메서드에 long 타입 인덱스를 사용할 수 없는가? 물론 문자열을 여기까지 끌고 온 코드 설계의 문제 이긴 하지만요.  charAt 그리고 substring의 구조일단 charAt 메서드의 구조는 이런 식으로 짜여있습니다. 매개변수 자체가 int형이죠. 범위 역시 0부터 Integer.MAX_VALUE 값입니다. substring 메서드 역시 인덱스의 타입을 int 타입으로 받고 있습니다. 아니 그냥 int 타입을 long으로 바꿔서 메서드를 구현하면 안 되냐고 생각할 수도 있겠습니다만. 자바는 굳이 배열이나 문자열과 같은 데이터 구조에서 인덱스를 int 타입으로 제한합니다. 왜why? 자..

Study/Java 2024.11.10
320x100