목표 시작 값과 끝나는 값이 있는 범위를 다루는 방법을 이해한다. Range와 Progression의 차이를 이해하고, 상황에 맞게 쓸 수 있도록 한다. *Range와 Progression에 대한 자료가 많이 없어 직접 소스코드를 분석해서 자료를 만들었습니다. 부족한 부분이 있을 수 있으니 수정해야 할 부분은 댓글로 남겨주시면 감사하겠습니다. 개요 이 장에서 Progression Class와 Range Class를 묶어 놓은 것은 Range는 Progression의 특수한 형태이기 때문이다. 둘 다 범위를 다룬다는 것은 같지만, Progression은 start와 end를 정해놓고 구간을 1이상의 정수로 바꿀 수 있는 반면 range는 구간이 1로 고정되어 있다. Progression 이란 Progres..
분류 전체보기
개요 Kotlin의 Collection은 두가지 타입의 Interface를 제공한다. 한 가지는 변경 불가능(Immutable)한 Interface 이며 다른 하나는 변경 가능(Mutable)한 Interface이다. 더욱 자세히 들어가면 Immutable Interface와 Mutable Interface는 아래 [그림1]과 같은 상속 구조를 가진다. Immutable Interface에서는 값을 변경할 수 있는 함수를 제공하지 않으며, Immutable Interface를 확장하는 Mutable Interface에서 값을 변경하는 메서드를 제공한다. 필요성 Kotlin에서 이렇게 Immutable Interface와 Mutable Interface를 나눈 것은 코드 레벨에서 명확성과 안정성을 제공하기..
목표 각 Memory Area가 어떤 역할을 하는지 이해한다. JVM의 메모리 구조 JVM은 Runtime에 Data를 올려놓는 공간인 Runtime Data Area를 가지고 있다. 이 공간은 총 5가지로 나뉘는데, 뒤의 PC Register과 Native Method Stack 영역은 Low Level의 Operation을 하기 위한 메모리 공간 이므로 이 장에서는 앞의 세가지 'Method Area(Static Area)', 'Heap Area', 'Stack Area'만 다룬다. Method Area(Static Area) - 정적 영역 Heap Area - 힙 영역 Stack Area - 스택 영역 Method Area(Static Area) 개요 Method Area는 우리가 보통 정적(Sta..