Language/Java21 [JAVA] StringBuilder와 StringBuffer의 차이점 StringBuilder와 StringBuffer는 둘 다 문자열을 가변적으로 조작하기 위한 클래스로, 기본적으로는 비슷한 기능을 제공하지만 두 클래스 간에 몇 가지 중요한 차이점이 있습니다. 이 차이점은 주로 스레드 안전성과 성능에 관련되어 있습니다. 1. 스레드 안전성(thread-safety) StringBuilder는 스레드 안전하지 않습니다. 동기화를 보장하지 않기 때문에 멀티쓰레드 환경에서 사용할 때 주의가 필요합니다. StringBuffer는 스레드 안전한 클래스입니다. 내부적으로 동기화 메커니즘을 사용하여 여러 스레드에서 안전하게 조작할 수 있도록 합니다. 멀티쓰레드 환경에서 StringBuffer 승. 2. 성능 StringBuilder는 스레드 안전하지 않기 때문에 동기화 관련 오버헤드.. 2023. 8. 25. [Java] StringBuffer란? StringBuffer란? StringBuffer는 문자열을 효율적으로 조작하기 위한 클래스로, 자바에서 가변(mutable)한 문자열을 다룰 때 사용됩니다. String 클래스와 유사하게 문자열을 저장하고 관리할 수 있지만, StringBuffer는 String과 달리 문자열을 변경할 수 있는 특징을 가집니다. 또한, StringBuffer는 스레드 안전(thread-safe)한 클래스로 동기화를 보장하여 멀티쓰레드 환경에서도 안전하게 사용할 수 있습니다. StringBuffer 클래스의 주요 특징 1. 가변성 StringBuffer 객체는 문자열을 변경할 수 있는 가변성을 가집니다. 따라서 문자열을 추가, 수정, 삭제할 때 새로운 객체를 생성하지 않고 내부적으로 조작합니다. 2. 메모리 효율 Stri.. 2023. 8. 25. [Java] StringBuilder란? StringBuilder란? StringBuilder는 문자열을 효율적으로 조작하기 위한 클래스로, 자바에서 문자열을 빠르게 추가, 수정, 삭제할 때 사용됩니다. String 클래스와 유사하지만, String 클래스는 불변(immutable)이기 때문에 문자열을 변경할 때마다 새로운 문자열 객체가 생성되는 반면, StringBuilder는 가변(mutable)하게 문자열을 조작할 수 있습니다. 이로써 문자열 조작 시 메모리 사용과 성능이 향상됩니다. StringBuilder 클래스 주요 특징 1. 가변성 StringBuilder 객체는 문자열을 변경할 수 있는 가변성을 가집니다. 즉, 문자열을 추가하거나 수정하면 새로운 객체를 생성하지 않고 내부적으로 조작합니다. 2. 메모리 효율 StringBuilde.. 2023. 8. 25. [JAVA] 객체 지향 프로그래밍 용어 정리 객체 지향 개념을 처음 배우는 사람 입장에서는 용어들이 낯설게 느껴집니다. 헷갈리기도 하기때문에 표로 정리하여 외워두면 좋습니다. 용어 설명 객체 객체 지향 프로그램의 대상, 생성된 인스턴스 클래스 객체를 프로그래밍하기 위해 코드로 만든 상태 인스턴스 클래스가 메모리에 생성된 상태 멤버 변수 클래스의 속성, 특성 메서드 멤버 변수를 이용하여 클래스의 기능을 구현 참조 변수 메모리에 생성된 인스턴스를 가리키는 변수 참조 값 생성된 인스턴스의 메모리 주소 값 출처: 박은종, 「do it 자바프로그래밍 입문」, 이지스퍼블리싱, 2018 2023. 4. 23. [JAVA] 상황별 반복문 사용 기준(while문, do-while문, for문) 반복문은 while문, do-while문, for문 세가지가 있습니다. 각 반복문은 언제, 어떤 경우에 사용하는 것이 가장 좋을까? 각 상황에 따른 반복문 사용 기준은 아래와 같다. for문 반복 횟수가 정해진 경우 do-while문 수행문을 반드시 한 번 이상 수행해야하는 경우 while문 조건의 참·거짓에 따라 반복문이 수행하는 경우 반복 횟수가 정해진 반복문을 while문으로 구현할 수도 있고 조건이 참·거짓에 따른 반복문을 for문으로 구현할 수도 있다. 하지만 좋은 프로그래밍 습관을 위해서는 상황에 맞는 적절한 문법을 사용하는 것이 중요하다. 출처: 박은종, 「do it 자바프로그래밍 입문」, 이지스퍼블리싱, 2018 2023. 4. 22. [Java] 내부 클래스란? 들어가며 내부 클래스는 자바에서 클래스 내부에 정의된 클래스를 의미합니다. 이를 통해 클래스 내부에서 다른 클래스를 사용하거나 새로운 클래스를 정의할 수 있으며, 코드의 가독성과 모듈성을 향상시킬 수 있습니다. 내부 클래스는 인스턴스 내부 클래스, 정적 내부 클래스, 지역 내부 클래스, 익명 내부 클래스로 구분할 수 있으며, 각각의 특징과 사용 방법이 다릅니다. 내부 클래스는 외부 클래스의 인스턴스 변수와 메소드에 접근할 수 있으며, 상속과 다형성을 지원합니다. 또한, 내부 클래스는 스트림 API와 함께 사용하여 코드의 가독성과 유지 보수성을 향상시킬 수 있습니다. 내부 클래스는 자바에서 매우 유용하게 사용되는 기능 중 하나이며, 이를 활용하여 더 나은 코드를 작성할 수 있습니다. 이번 글에서는 내부 클.. 2023. 4. 2. [Java] 문자열 공백 제거 trim() Method 정의 및 사용법 trim() 메소드 정의 및 사용법 trim() 메소드는 문자열의 양 끝에 있는 공백을 제거하는 데 사용됩니다. 즉, 문자열 앞과 뒤의 모든 공백, 탭, 개행 등을 제거해주는 메소드입니다. 이 때, trim() 메소드는 원본 문자열을 변경하지 않고, 공백이 제거된 새로운 문자열을 반환합니다. 이 메소드는 문자열을 처리할 때 유용하게 사용됩니다. 예를 들어, 사용자로부터 입력받은 문자열에서 양 끝에 있는 공백을 제거하여 문자열의 일관성을 유지할 수 있습니다. 또한, 문자열을 비교할 때 문자열의 양 끝에 공백이 있으면 원치 않는 결과가 나올 수 있기 때문에 trim() 메소드를 사용하여 이를 방지할 수도 있습니다. 예시 코드 String str = " Hello, world! "; String trimmed.. 2023. 3. 27. [Java] 증감연산자, 부호연산자 증감연산자 증가 연산자(++) 피연산자의 값을 1 증가시킨다. 감소 연산자(--) 피연산자의 값을 1 감소시킨다. 증감연산자는 증가 연산자와 감소 연산자를 합쳐서 부르는 말이다. 증가 연산자는 플러스(+)기호 두개 붙혀둔 것이고 감소연산자는 마이너스(-)기호 두개 붙혀둔 것이다. 증감 연산자에는 전위형과 후위형이 있다. 전위형은 앞에 위치한다는 뜻이고 후위형은 뒤에 위치한다는 뜻이다. 위 표에서 피연산자 i 가 있을 때 i 의 앞에 붙으면 전위형, 뒤에 붙으면 후위형이다. 전위형일때는 값이 먼저 증감하고 후위형일때는 값이 나중에 증감한다. "증감 연산자가 독립적으로 사용된 경우, 전위형과 후위형의 차이가 없다." 증감 연산자가 고안된 이유는 식을 간단히 하고 코드의 라인 수를 줄이기 위해 고안되었다. 증.. 2023. 2. 3. [JAVA] 연산자의 우선순위와 결합규칙 연산자의 우선순위 우선순위란 하나의 식(expression)에 연산자가 둘 이상 있을 때, 어떤 연산을 먼저 수행할지를 자동 결정하는 것을 말한다. 기본적으로 연산자들간에 우선순위가 다 결정이 되어 있어서 자동으로 결정이 되고 만약 우리가 원하는 우선순위가 있을 떄는 괄호()를 사용하면 된다. 괄호로 묶어준 식부터 연산된다. 연산자의 우선순위와 결합규칙을 외우면 좋지만 상식적으로 우리가 이미 다 알고 있는 것이다. 연산자의 결합규칙 결합규칙이란 우선순위가 같은 연산자가 있을 때, 어떤 것을 먼저 연산할 것인가를 결정하는 것이다. 기본적으로 결합규칙은 왼쪽에서 오른쪽이다. 예외적으로 단항 연산자와 대입 연산자는 오른쪽에 왼쪽으로 연산이 진행된다. 연산자의 우선순위와 결합법칙은 세가지만 기억하면 된다. 1... 2023. 2. 1. 이전 1 2 3 다음 반응형