ArrayList와 LinkedList
ArrayList는 배열을 이용해 리스트를 구현하므로 인덱스를 기반으로 요소에 빠르게 접근이 가능하다. 하지만 요소를 추가하거나 삭제할 때 배열의 크기를 변경해야하기 때문에 시간이 소요된다.
LinkedList는 연결 리스트로 구현되어 삽입과 삭제 연산이 빠르지만 특정 요소에 접근할 때 순차적으로 접근해야해 시간이 소요된다.
추상 클래스와 인터페이스
먼저 추상클래스는 추상메소드를 1개 이상 포함하고 있는 클래스를 말한다. 다중상속이 불가능하다.인터페이스는 추상메소드들로 이루어져있으며 다중상속이 가능하다.둘 다 추상화를 위한 개념이며 추상메소드는 자식 클래스에서 구현을 강제해야한다는 특징이 있다.
추상 클래스는 공통된 메서드와 필드를 '상속받는 하위 클래스'에서 재사용하거나 활용할 수 있도록 설계 돼.
구현된 메서드와 추상 메서드(구현되지 않고 하위 클래스에서 구현해야만 하는 메서드)를 모두 가질 수 있지.
주로 상향식 설계에서 사용되며, 관련 클래스 간 공통된 기능을 모아 캡슐화하고 코드 재사용성을 높이는데 유용해!
그리고 인터페이스는 클래스가 구현해야 할 메서드를 미리 선언만 하고, 실제 구현을 구현하는 클래스에 위임해 ! 다중 구현이 가능하고, 클래스가 특정 행동(메서드)을 반드시 구현하도록 강제하고 싶을 때 !! 하향식 설계에 적합하다고 볼 수 있지!!
즉, 추상 클래스는 "공통된 기능을 캡슐화"하는 데 중점을 두고, 인터페이스는 "행동 규약을 강제"하는 데 초점이 맞춰져 있다고 보면 돼 !!
자바의 가비지 컬렉터
가비지 컬렉터는 동적 할당된 메모리 영역에서 사용하지 않는 메모리를 정리하는 역할을 한다. 자동으로 실행되기 때문에 메모리 관리에 대한 부담을 덜어준다.가비지컬렉터는 참조되지 않는 객체를 불필요하다고 판단하며 이를 제거하는 방법으로 메모리를 관리한다.
'[ STUDY ] > CS' 카테고리의 다른 글
객체 지향 프로그래밍 (0) | 2024.12.19 |
---|---|
[ 알고리즘 ] 최소 신장 트리, 최단 거리 알고리즘 (0) | 2024.11.17 |
[ 알고리즘 ] 정렬 알고리즘 (0) | 2024.11.17 |
[ 자료구조 ] 선형 자료구조 & 비선형 자료구조 (1) | 2024.11.17 |
[ 데이터베이스 ] 조인 (1) | 2024.11.16 |