자바 학습

마동찬·2023년 4월 5일
0

Stringbuffer

StringBuffer sb = new StringBuffer();  // StringBuffer 객체 sb 생성
sb.append("hello");
sb.append(" ");
sb.append("jump to java");
String result = sb.toString();
System.out.println(result);  // "hello jump to java" 출력

StringBuilder

StringBuilder sb = new StringBuilder();
sb.append("hello");
sb.append(" ");
sb.append("jump to java");
String result = sb.toString();
System.out.println(result);

StringBuffer는 멀티 스레드 환경에서 안전하다는 장점이 있고 StringBuilder는 StringBuffer보다 성능이 우수한 장점이 있다. 따라서 동기화를 고려할 필요가 없는 상황에서는 StringBuffer 보다는 StringBuilder를 사용하는 것이 유리하다.

  • StringBuilder의 사용법과 주요메서드
  • .append(): 문자열을 추가한다. (sb.append("bbb"), sb.append(4))
  • .insert(int offset, String str): offset 위치에 str을 추가한다. (sb.insert(2, "ccc"))
  • .replace(): 첫번째와 두번째 파라미터로 받는 숫자 인덱스에 위치한 문자열을 대체한다. (.replace(3, 6, "ye"))
  • .substring(int start, (int end)): 인덱싱. 파라미터가 하나라면 해당 인덱스부터 끝까지, 두개라면 시작점과 끝점-1 까지 인덱싱 (sb.substring(5), sb.substring(3, 7))
  • .deleteCharAt(int index): 인덱스에 위치한 문자 하나를 삭제한다. (sb.deleteCharAt(3))
  • .delete(int start, int end): start 부터 end-1 까지의 문자를 삭제한다. (sb.delete(3, sb.length()))
  • .toString(): String으로 변환한다. (sb.toString())
  • .reverse(): 해당 문자 전체를 뒤집는다. (sb.reverse())
  • .setCharAt(int index, String s): index 위치의 문자를 s로 변경
  • .setLength(int len): 문자열 길이 조정, 현재 문자열보다 길게 조정하면 공백으로 채워짐, 현재 문자열보다 짧게 조정하면 나머지 문자는 삭제
  • .trimToSize(): 문자열이 저장된 char[] 배열 사이즈를 현재 문자열 길이와 동일하게 조정, String 클래스의 trim()이 앞 뒤 공백을 제거하는 것과 같이 공백 사이즈를 제공하는 것, 배열의 남는 사이즈는 공백이므로, 문자열 뒷부분의 공백을 모두 제거해준다고 보면 됨

insert

StringBuffer sb = new StringBuffer();
sb.append("jump to java");
sb.insert(0, "hello ");
System.out.println(sb.toString());

substring

StringBuffer sb = new StringBuffer();
sb.append("Hello jump to java");
System.out.println(sb.substring(0, 4));
//Hell 출력

BufferReader와 Scanner의 차이

  • Scanner
    입력 받을 때 정수, 소수, 문자 데이터도 구분지어 읽어들일 수 있다.
    BufferReader 보다 속도 면에서 불리하다는 큰 단점이 존재한다.
  • BufferReader

( 한번 삽질하러 가기보단 여러번모아서 한번에 보내는게 좋다고 이해했다)

BufferReader는 개행문자(엔터)만 경계로 인식하고 입력된 데이터의 형식이 'String으로 고정'되기 때문에 데이터를 따로 가공해주어야 한다.


인터페이스

  1. 인터페이스란? 추상 메서드의 집합.

  2. 인터페이스의 구현이란? 추상메서드 몸통{} 만들기 ( 미완성 설계도 완성하기 )

  3. 추상클래스와 인터페이스의 차이점은? 인터페이스는 iv(인스턴스변수)를 가질 수 없다.

profile
새내기개발자 성장기록

0개의 댓글