프로그래밍 공부
참조 자료형 본문
String Class
String Class
- 불변 형태의 문자열임(한번 생성되면 내용 변경 불가능)
- 즉 문자열의 내용의 변경 불가능
- 문자열을 자주 변경할 경우 새로운 객체가 계속 생성됨으로 성능에 영향
- 문자열이 변경되지 않는 경우에 주로 사용
StringBuffer Class
- 객체 생성 후에도 내용 변경이 가능
- 동기화가 되어 있어 여러 스레드가 동시에 접근해도 안전
- 동기화로 인해 성능이 약간 떨어질 수 있음
- 멀티스레드 환경에서 문자열을 안전하게 조작할 때 사용
StringBuilder Class
- 객체 생성 후에도 내용 변경이 가능
- 동기화 되지 않음 → 여러 스레드가 동시에 접근하면 언전하지 않음
- 동기화가 없기 때문에 StringBuffer보다 성능이 좋음
- 단일 스레드 환경에서 문자열을 조작할 떄 유용함
요약
- String: 불변성을 가지며, 주로 문자열이 변경되지 않는 경우에 사용.
- StringBuffer: 가변성을 가지며, 멀티스레드 환경에서 안전하게 문자열을 조작할 때 사용.
- StringBuilder: 가변성을 가지며, 단일 스레드 환경에서 성능을 중요시할 때 사용.
Wrapper Class
- 자바에서는 각각의 기본 타입에 상응하는 클래스가 있음
- 이 클래스를 레퍼 클래스라고 함
- 사용하는 이유
- 추가적인 옵션을 다양하게 지원
- 유틸리티 메서드를 제공
- 기본 값들을 컬렉션에 저장할 수 있음
- 스트링 클래스와 동일하게 래퍼 클래스도 불변성을 가짐
생성
// 생성자를 이용해 생성, 스트링도 가능 "1234"
Integer interger = new Integer(5);
// valueOf 메서드 사용
Integer integer1 = Integer.valueOf(5);
// 예제
Float float1 = new Float(3.14);
Float float2 = new Float(3.14f);
Float float3 = new Float("3.14f");
Character c1 = new Character('A');
Character c2 = new Character(123); // <- error
Boolean b = new Boolean(true);
// TRUE true TrUe등 true 가 주어지면 true고
// 이외의 값은 전부 false
- 생성 방법 선택
- valueOf를 사용하면 이미 동일한 값을 가지고 있는 객차가 존재 할 시에 그 값을 사용함
- 래퍼 클레스는 불변이기 때문에 다른 참조 변수가 동일한 객체를 가르켜도 문제가 없음
Auto Boxing과 몇가지 Constants
Auto Boxing
// 같은 결과임
Integer num = Integer.valueOf(1);
Integer num1 = 7;
Constants
Integer.MAX_VALUE -> 2147483647
Integer.MIN_VALUE -> -2147483648
Integer.SIZE -> 32
Integer.BYTE -> 4
'Programming > JAVA' 카테고리의 다른 글
객체지향 프로그래밍(추상 메서드, 인터페이스 정리) (0) | 2024.10.08 |
---|---|
객체지향 프로그래밍(인터페이스) (0) | 2024.10.08 |
객체지향 프로그래밍(추상 클래스) (0) | 2024.10.08 |
객체지향 프로그래밍(클래스) (0) | 2024.10.08 |
객체지향 프로그래밍에 대해 간단하게 개념 정리 (0) | 2024.10.08 |
Comments