[Effective Kotlin] : 아이템 45. 불필요한 객체 생성을 피하라

0

객체 생성은 언제나 비용이 들어간다.

다양한 레벨에서 객체 생성을 피할수 있다.

String에서는 동일한 문자열을 처리하는 코드가 있다면, 기존의 문자열을 재사용한다.

    val str1 = "로렘 이즈 파스타"
    val str2 = "로렘 이즈 파스타"

    println(str1 == str2)  //true
    println(str1 === str2) //true

또한 IntegerLong처럼 박스화한 기본 자료형도 작은 경우에는 재사용된다.
(Int는 -128~127 범위를 벗어나는순간 캐쉬되지 않는다)

    val i1 : Int? = 1
    val i2 : Int? = 1

    val i3 : Int? = 1234
    val i4 : Int? = 1234
    
    
    println(i1 == i2) //true
    println(i1 === i2) //true
    
    println(i3 == i4)  //true
    println(i3 === i4) //false

참고로 nullable 타입을 사용하거나 타입 아규먼트를 사용할경우, IntInteger로 변한다.

profile
쉽게 가르칠수 있도록 노력하자

0개의 댓글