코드로 배열의 사이즈를 정하고 안정하고의 차이를 항상 궁금했다..
이것은 곧 프로그래밍의 장점에있어 어느 기준에 중점을 두느냐 였다고 생각 하였다.
하지만 기본적으로 성능과 메모리 할당을 이해하고 있다면, 완벽한 오점이었다.
컴퓨터 프로그래밍의 메모리 할당방식에 있어서는 연속적 할당과 비연속적 할당이 있고 이런 메모리는 기본적으로 내부단편화와 외부단편화가 존재한다.
가변적으로 할당가능하다면 제일 좋아 보이겠지만, 이는 성능의 이슈가 따른다.
우리는 상황에 맞게 유연한 코들를 짜기위해서 둘다 알아야할 필요가있다.
내부 단편화 : 할당된 메모리 공간에 공간이 남아있지만 다른프로세스가 이용할수 없는 상태
외부 단편화 : 메모리 공간이 다른프로세스가 들어가기에 충분하지만, 연속적이지않은 공간에 존재하여 실행하지 못하는 상태
리스트의 대표적인 종류 몇가지를 작성하려고 한다.
내부적으로 동적 배열을 사용하며, 인덱스를 통한 읽기가 빠르지만 삽입과 수정이 느린 단점이 있음.
이중 연결 리스트를 사용하는 방법이고 수정과 삭제가 빠르지만, 요소 읽는것이 다소 느림
쓰기 작업이 발생할때에 복사본을 만들어 다중프로그래밍 방식에 유리함
( 읽기는 빠르나 , 쓰기가 느림)
배열이란 것은 List와의 관계에 속한다.
ArrayList 도 하나의 배열로 볼수가 있는데
배열에는 타입과, 객체, 이중배열로 나타낼수가 있다..
List는 연속적이고, 비연속적인 데이터를 저장할수 있고 삽입 수정이 자유롭지만, 배열은 연속적인값에, 지정한 메모리 할당만 하므로 읽기 성능이 유리하다.