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

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

string 2

[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

[Java] String 객체 생성법 탐구 (with String Pool)

String? Java의 String 클래스, 많이 사용하는 클래스 중 하나죠? 이번 글에서는 String을 String Pool과 함께 살펴보려고 합니다.String 객체 생성법 String 클래스는 문자열을 표현하는 데 사용됩니다. String 객체는 불변(immutable)이며, 한번 생성된 문자열은 변경할 수 없습니다. String 객체의 생성은 두 가지 방식, 문자열 리터럴(literal) 방식과 new 키워드 방식으로 나뉩니다.String str1 = "Hello, World!";String str2 = new String("Hello, World!");뭐가 더 효율적일까요? 문자열 리터럴 방식이 더 효율적이고 일반적으로 사용됩니다. 무슨 이유에서 일까요? 첫번째 방법이 더 효율적인 이유는 S..

Study/Java 2024.09.08
320x100