본문 바로가기

공부방/Kotlin

1. 코틀린에서 변수를 다루는 방법

1. var (가변 변수)


var (발) 은 variable의 약자이며 가변 변수를 의미합니다.

가변 변수이기 때문에 새로운 값을 할당할 수 있습니다.

 

class Lec01Main {
	fun main() {
		// 변경 가능 variable
		var number = 10L
	}
}

 

2. val (불변 변수)


val (밸) 이란 valuable의 약자이며, java의 final이 들어가 있는 것과 동일합니다.

val 값에 새로운 값을 할당하려고 하면 오류가 발생합니다.

 

class Lec01Main {
	fun main() {
		// 변경 불가 valuable, java의 final과 동일
		val number2 = 10L
	}
}

 

3. type 지정


type지정은 필수가 아니지만 변수명 뒤에 ":"을 이용하여 타입을 명시해줄 수 있습니다.

 

class Lec01Main {
	fun main() {
		var number: Long = 10L
	}
}

 

4. primitive type, reference type


Java에서 연산을 할때는 reference type을 사용하게 되면 boxing, unboxing 일어나면서 불필요한 객체가 생성되기 때문에 primitive type을 쓰는 것을 권장합니다.

 

그러나 코틀린에서는 primitive type과 reference type을 구분하지 않아도 됩니다

코틀린의 타입은 컴파일 시 자바의 primitive 또는 wrapper 타입으로 자동 변환됩니다!

런타임 시점에 숫자 타입은 가능한 한 가장 효율적인 방식으로 표현이 됩니다.

 

5. 객체 생성


코틀린에서 객체 생성을 할 경우에는 자바와는 달리 new를 사용하지 않습니다.

 

class Lec01Main {
	fun main() {
		// 코틀린에서는 new를 사용하지 않는다.
		val person: Person = Person("장재영")
	}
}

 

6. null 처리


코틀린에서 모든 변수는 null이 들어갈 수 없도록 설정되어 있습니다.

null이 들어갈 수 있는 경우에는 "타입?"와 같이 타입 뒤에 ?를 추가해 줘야 합니다.

 

class Lec01Main {
	fun main() {
		// 기본적으로 모든 변수는 null이 들어갈 수 없도록 설정해놓음
		// null이 들어갈 수 있는 경우에는 "타입?"를 사용해야한다.
		var number4: Long? = 1000L
		number4 = null
	}
}

 

 

intellij에서 코틀린 코드를 자바 코드로 바꿔볼 수 있습니다.

Tools -> Kotlin -> Show kotlin byte code -> 나온 코드를 decompile 하면 Java 코드를 직접 확인할 수 있습니다.

 

 

https://www.devkuma.com/docs/kotlin/datatype/primitive-reference/