자바29 String 클래스 자바에서 문자열을 다루는 String 클래스는 자주 사용되는 중요한 클래스입니다. 이번 포스트에서는 String 클래스의 기본 개념, 불변성(immutability) 그리고 객체 생성 방식에 대해서 살펴 보겠습니다. 참고로 String 클래스의 비교는 equals입니다. String 클래스의 불변성 String 클래스는 불변 클래스로, 한 번 생성된 String 객체의 상태를 변경할 수 없습니다. 즉, 문자열을 벼경하려고 하면 기존 객체를 수정하는 대신, 변경된 새로운 문자열을 포함하는 새로운 String 객체가 생성됩니다. 이러한 특성은 String 객체가 공유되거나 재사용될 때 유용합니다. String a = "java"; a.concat(" coding"); System.out.println("a .. 2024. 4. 4. 자바에서의 불변 객체 (Immutable Object) 불변 객체란 생성 후 상태(객체가 담고 있는 값)를 변경할 수 없는 객체를 말합니다. 불변 객체는 여러 스레드에 의해 동시에 사용되어도 상태가 변경되지 않으므로 동시성 문제가 발생하지 않습니다. 그런 이유로 불변 객체는 안전하게 재사용될 수 있습니다. 예를 들어, String 객체는 여러 참조에서 공유될 수 있습니다. 불변 객체 생성 클래스를 final로 선언하여 상속을 방지합니다. 모든 필드를 private final로 선언합니다. 외부에서 필드의 값을 변경할 수 있는 setter 메서드를 제공하지 않습니다. 생성자를 통해서만 상태를 설정할 수 있고, 객체 생성 후에는 이 상태를 변경할 수 없습니다. public final class ImmutablePerson { private final String.. 2024. 4. 3. 자바에서 동일성, 동등성 비교하기 자바 프로그래밍을 하다 보면 객체 간의 비교를 해야할 때가 종종 있습니다. 이 때 동일성(Identity), 동등성(Equality)의 개념을 정확히 이해하는 것이 중요합니다. 두 개념은 비슷해 보이지만, 자바에서는 매우 다른 의미를 가집니다. 동일성 (Identity) 동일성 비교란 두 객체의 참조가 실제로 같은 객체를 가르키고 있는지를 확인하는 것입니다. 즉, 두 객체의 메모리 주소가 같은지를 비교하는 것이죠. 자바에서는 "==" 연산자를 사용하여 동일성을 비교합니다. 동등성 ( Equality ) 반면, 동등성 비교는 두 객체가 논리적으로 같은가를 확인하는 것입니다. 이는 두 객체의 내용이 같은지를 보는 것이며, 이를 위해서는 equals() 메서드를 오버라이드 (재정의) 해야 합니다. Object.. 2024. 4. 3. Parallel Stream Java 8에서 도입된 Parallel Stream은 데이터를 병렬로 처리하여 성능을 향상시키는 방법을 제공합니다. 내부적으로 Fork/Join Framework를 사용하여 작업을 여러 스레드에 분산시키고, 이러한 스레드들이 CPU 코어를 활용하여 동시에 작업을 처리할 수 있도록합니다. Parallel Stream을 사용하면 대량의 데이터 처리 작업을 더 쁘리게 수행할 수 있지만 모든 상황에서 서능 향상을 보장하는 것은 아닙니다. Parallel Stream 에서 사용되는 스레드 개수는 대부분의 경우 JVM이 실행되는 CPU 코어 개수와 관련 있습니다. 기본적으로, Parallel Stream은 ForkJoinPool의 기본 인스턴스를 사용하는데, 이는 시스템의 CPU 코어 수에 해당하는 스레드를 가지고.. 2024. 2. 6. 이전 1 2 3 4 ··· 8 다음