java base 모듈

최수정·2022년 11월 2일
0

이것이 JAVA다

목록 보기
3/10

1. 문자열 클래스

  • Java에서 문자열과 관련된 주요 클래스는 다음과 같다.
    ㄴString : 문자열을 저장하고 조작할 때 사용
    ㄴStringBuilder : 효율적인 문자열 조작 기능이 필요할 때 사용
    ㄴStringTokenizer : 구분자로 연결된 문자열을 분리할 때 사용

1.1. String Class

  • 문자열 리터럴은 자동으로 String 객체로 생성되며 String class의 다양한 생성자를 이용해서 직접 객체를 생성할 수도 있다.
  // 기본 문자셋(UTF-8)으로 byte 배열을 디코딩해서 String 객체로 생성
    String str = new String(byte[] bytes);
  // 특정 문자셋으로 디코딩
    String str = new String(byte [] bytes, String charsetName)
  • 인코딩할때 사용한 문자셋으로 디코딩을 해야만 내용이 올바르게 복원된다.

1.2. stringBuilder

  • String은 내부문자열을 수정할 수 없다. 아래와 같은 코드는 단지 두 문자열이 합쳐진 새로운 String 객체를 만들고 data는 새로 만들어진 객체를 참조하게 된다.

  • 그래서 잦은 문자열 변경 작업을 해야한다면 Sting 보다는 StringBuilder가 효율적이다.

  • StringBuilder는 내부 버퍼에 문자열을 저장해두고 그 안에서 추가/수정/삭제 등의 작업을 하도록 설계되어 있다.

  • 상황에 맞춰 여러 스레드 사이에서 문자열을 수정할 일이 있으면 String Buffer를 사용하고, 단일 스레드에서 문자열 수정은 String Builder를 사용한다

stringBuilder가 제공하는 조작 메소드

  • append(기본값|문자열) - 문자열을 끝에 추가
  • insert(위치,기본값|문자열) - 문자열을 지정 위치에 추가
  • delete(시작 위치, 끝 위치) - 문자열 일부를 삭제
  • replace(시작 위치, 끝 위치, 문자열) - 문자열 일부를 대체
  • toString() - 완성된 문자열을 리턴
    • 리턴타입 String, 나머지는 반환타입이 stringBuilder
    • toString을 제외한 메소드끼리는 메소드 체이닝 패턴을 사용할 수 있다.

2. 포장클래스

개요

  • 포장객체 : 기본타입의 값을 갖는 객체
  • 포장객체를 생성하기 위한 클래스는 java.lang 패키지에 포함되어 있음
    클래스명은 각 기본타입의 이름에서 앞글자만 대문자로 바꾼 이름 사용 Integer와 Character만 이름규칙에서 예외된다.
  • 포장 객체 내부의 값은 변경 불가. 단지 객체로 생성하는데 목적이 있다.

박싱 언박싱

  • 박싱 : 기본타입의 값을 포장객체로 만드는 과정
  • 언박싱 : 포장객체에서 값을 얻어내는 과정
Integer obj = 100;  // boxing
int value = obj;   // unboxing
int value = obj + 50; // 언박싱 후 연산

활용방향

(1) 문자열을 기본타입 값으로 변환

  • 대부분의 포장클래스에는 parse + 기본타입명으로 되어있는 정적 메소드가 있다. 이 메소드는 문자열을 해당 기본 타입값으로 변환한다.

(2) 포장값 비교

  • 포장 객체는 내부 값을 비교하기 위해 == 와 != 연산자 사용 불가 -> 내부값이 아닌 번지수를 비교하는 것임
  • equals() 메소드로 내부 값 비교 가능
Integer obj1= 100;
Integer obj2= 100;

obj1 == obj2        // false
obj1.equals(obj2)  // true

0개의 댓글