본문 바로가기
그룹스터디

인터페이스, 추상클래스, 다형성

by 민초닷컴 2022. 11. 25.

추상 클래스 vs 인터페이스

추상클래스

  • 추상메서드가 적어도 1개 이상인 클래스
  • 메서드의 선언만 되어 있을 뿐 정의는 되어 있지 않은 것
  • extends

인터페이스

  • 전부가 추상메서드
  • 오로지 메서드의 선언만이 존재
  • 즉, 명세
  • implements

인터페이스 왜 씀?

public interface Scheduler {
	public void getNextCall();
	public void sendCallToAgent();
} 

1. 동료들과의 협업 시 어떤 기능을 하는 멤버 메서드를 만들어 달라는 명시

2. 클라이언트들도 전체 코드를 보기 보다는 인터페이스를 통해 프로그램의 전체적인 흐름을 파악

ex. 리모콘을 쓸 줄은 알아도 리모콘의 동작방법은 모르는 것 처럼…

추가 정리(StringBuffer, StringBuilder)

JAVA에서 문자열을 다루는 대표적인 클래스에는 String, StringBuffer, StringBuilder가 있다. 이 중 String은 불변의 속성을 갖는다.

즉 문자열 추가, 수정, 삭제 등의 연산이 빈번하게 발생하는 알고리즘에 String 클래스를 사용하면 힙 메모리에 많은 임시 가비지가 생성되어 힙메모리 부족으로 성능에 치명적인 영향

 

 ※ 가변성을 지닌 StringBuffer/StringBuilder

StringBuffer

  • 동기화 키워드를 지원하여 멀티 쓰레드 환경에서 안전

StringBuilder

  • 동기화를 지원하지 않기 때문에 단일 쓰레드에서의 성능은 StringBuffer보다 뛰어남

자주 사용하는 메서드

  1. append() : 문자열을 추가하기 위해 사용
  2. length(), capacity() : 문자열 길이나 전체 할당 된 capacity를 구할 때 사용(capacity는 내부의 문자열을 저장하기 위한 버퍼의 총 갯수, 자동 증가)
  3. insert(int index, String “문자열”) : 시작 인덱스를 지정하여 원하는 위치에 삽입
  4. reverse() : 문자열 뒤집기
  5. delete(), deleteCharAt() : 인덱스를 지정하여 문자열의 일부분을 삭제하거나 한 문자만 삭제 할 때 사용
  6. replace() : 문자열의 일부분을 다른 문자열로 치환
  7. toString() : 문자열로 반환

'그룹스터디' 카테고리의 다른 글

JPA Auditing  (0) 2022.12.30
일급 컬렉션(First Class Collection)  (0) 2022.12.23
XML Configuration vs Java Configuration  (0) 2022.12.14
DAO, DTO, VO, Entity  (0) 2022.12.07
디자인 패턴 - Singletone  (0) 2022.11.18