자바 serial GC를 공부하다가 Young Generation에 있는 Eden이란 영역의 이름이 생뚱맞아 의미를 찾아보았다. serial GC는 크게 Young Generation과 Old Generation 으로 이루어지며 Young Generation은 다시 Eden Space, Survivla Space0, Survival Space1로 이루어진다. 여기서 Eden이란 이름의 의미는 뭘까? 찾아보니 에덴동산의 에덴이였다. 에덴동산이 낙원이라는 뜻을 가지고 있던데, 에덴이란 단어 자체는 기쁨이라고 해석된다고 한다. 모든 객체는 Eden Space에서 처음 생성된다. 이처럼 모든 객체는 낙원인 기쁨이 가득한 곳에서 탄생되게 되고 시간이 지나면서 Survivor Space, Old Generation..
코틀린 공식문서에 있는 Example들을 하나씩 읽어보며 정리하자. 참고: https://play.kotlinlang.org/byExample/overview Collections List 코틀린의 리스트는 변경가능한 리스트(MutableList)와 읽기전용(read-only) 리스트가 있다. 리스트 생성은 아래와 같다. mutableListOf() : 변경가능한 리스트 listOf() : 읽기전용 리스트 원치 않는 수정을 방지하려면 mutableList를 List(read-only)로 변경한다. val systemUsers: MutableList = mutableListOf(1, 2, 3) // 1 val sudoers: List = systemUsers // 2 fun addSystemUser(new..
코틀린 공식문서에 있는 Example들을 하나씩 읽어보며 정리하자. 참고: https://play.kotlinlang.org/byExample/overview Special Classes Data Classes Data Class를 사용하면 값을 저장하는 클래스(Dto, Vo)를 쉽게 만들 수 있다. Data Class는 자동으로 메서드를 구현해 제공하고 override 가능하다. equals() / hashCode() toString() copy() componentN() data class User(val name: String, val id: Int) { // 1 override fun equals(other: Any?) = other is User && other.id == this.id // 2..
코틀린 공식문서에 있는 Example들을 하나씩 읽어보며 정리하자. 참고: https://play.kotlinlang.org/byExample/overview Control Flow When 흔히 사용하는 switch 문 대신에 코틀린에서는 when 문을 제공한다. when 문은 statement 와 expression 으로 사용할 수 있다. When Statement fun main() { cases("Hello") cases(1) cases(0L) cases(MyClass()) cases("hello") } fun cases(obj: Any) { when (obj) { // 1 1 -> println("One") // 2 "Hello" -> println("Greeting") // 3 is Long ..
코틀린 공식문서에 있는 Example들을 하나씩 읽어보며 정리하자. 참고: https://play.kotlinlang.org/byExample/overview Introduction Hello World package org.kotlinlang.play // 1 fun main() { // 2 println("Hello, World!") // 3 } 코틀린 코드는 자바와 같이 보통 패키지 안에 정의된다. 패키지를 지정하는 것은 옵션이다. 지정하지 않으면 디폴트 패키지로 지정된다. 코틀린 애플리케이션의 시작점은 main 함수이다. 코틀린 1.3버전부터 파라미터 없이 main 함수를 선언할 수 있다. 1.3 이전 버전에서는 Array 유형의 매개변수가 있어야한다. println은 표준 출력 함수이고 암시적으..