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 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를 사용하는 것이 유리하다.
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는 개행문자(엔터)만 경계로 인식하고 입력된 데이터의 형식이 'String으로 고정'되기 때문에 데이터를 따로 가공해주어야 한다.
인터페이스란? 추상 메서드의 집합.
인터페이스의 구현이란? 추상메서드 몸통{} 만들기 ( 미완성 설계도 완성하기 )
추상클래스와 인터페이스의 차이점은? 인터페이스는 iv(인스턴스변수)를 가질 수 없다.