본문 바로가기
코틀린

안드로이드 코틀린은 같은 변수를 계속 만들면 재활용할까?

by 기계공학 주인장 2023. 1. 8.
반응형

코틀린은 같은 변수를 계속 만들면 재활용할까?

  1. 함수를 호출할 때 마다 변수를 생성하는 함수를 생성한다
  2. 함수를 계속 호출하면서 생성되는 변수의 메모리 주소 값을 확인한다
  3. 주소값을 통해 같은 변수를 만들 때 재활용하는지 새롭게 주소를 할당하는지 확인한다

"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."


테스트용 코드 작성

기본적으로 코틀린은 C와 같이 포인터가 없기 때문에

 

변수가 저장된 주소값을 얻을 수 없습니다....

 

하지만, 컬렉션의 경우에는 주소값을 출력할 수 있기 때문에 

 

아래의 예시와 같이 버튼을 클릭할 때마다 변수(리스트)를 생성하도록 한다

 

binding.freeButton.setOnSingleClickListener {
    val testValue = listOf(0, 1, 2)

    Timber.d("clicked time: ${Calendar.getInstance()}")
}

테스트 및 디버깅으로 변수 주소 확인

디버깅을 해서 결과를 보면

  • 첫 번째 호출 결과

  • 두 번째 호출 결과

  • 세 번째 호출 결과

함수가 있는 버튼을 클릭할 때 마다 메모리에 새로운 공간을 할당해서 넣는 것을 알 수 있다.

 

그렇기 때문에 버튼을 여러 번 클릭하는 경우에는 매 번 변수를 함수 안에서 정의해서

 

호출할 필요가 있는지 확인할 필요가 있다.

반응형


"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."


댓글