포스트

Kotlin의 변수 다루기


Java의 경우

1
2
3
4
5
long number1 = 10L;                   // 1
final long number2 = 10L;             // 2

Long number3 = 1_000L;                // 3
Person person = new Person("김용준");  // 4
  • Java에서 long과 final long의 차이
    • 변수의 가변, 불변(read-only)


Kotlin의 경우

1
2
3
4
5
6
7
var number1 = 10L // 가변 /  타입 작성 -> var number1: Long = 10L
val number2 = 10L // 불변

var number3: Long? = 1_000L // null값 허용
var person = Person("김용준") // 객체를 인스턴스화 할 때 new를 붙이지 않는다.


  • Kotlin에서 var -> 가변 - ` val -> 불변`
    • var 또는 val을 명시하지 않으면 안된다.
  • 타입은 작성하지 않아도 컴파일러가 추론해 주기 때문에 괜찮지만, 원한다면 : 타입으로 작성해도 된다.
    • 값을 지정하지 않고 변수를 만들 경우는 타입을 꼭 지정해 줘야 한다.
  • val로 작성하면 값을 수정할 수는 없지만, 추가는 가능하다.
    • ex). List에 add는 가능
  • Kotlin은 기본적으로 null을 사용할 수 없기 때문에 null을 사용하려면 : type?를 사용해야 한다.
  • Kotlin은 객체를 인스턴스화 할 때 new를 사용하면 안된다.


  • tip). 모든 변수를 val불변으로 작성하고 필요에 따라 var가변으로 수정
  • tip). Java에서는 long -> primitive type - Long -> reference type
    • Java는 연산 시에는 reference type을 사용하지 않는 것이 좋다.
      • boxingunboxing이 일어나면서 불필요한 객체 생성이 이루어 지기 때문
  • 하지만, Kotlin은 상황에 따라서 primitive typereference type을 알아서 효율적으로 처리
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.