코틀린
안드로이드 코틀린은 같은 변수를 계속 만들면 재활용할까?
기계공학 주인장
2023. 1. 8. 13:21
반응형
코틀린은 같은 변수를 계속 만들면 재활용할까?
- 함수를 호출할 때 마다 변수를 생성하는 함수를 생성한다
- 함수를 계속 호출하면서 생성되는 변수의 메모리 주소 값을 확인한다
- 주소값을 통해 같은 변수를 만들 때 재활용하는지 새롭게 주소를 할당하는지 확인한다
"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."
테스트용 코드 작성
기본적으로 코틀린은 C와 같이 포인터가 없기 때문에
변수가 저장된 주소값을 얻을 수 없습니다....
하지만, 컬렉션의 경우에는 주소값을 출력할 수 있기 때문에
아래의 예시와 같이 버튼을 클릭할 때마다 변수(리스트)를 생성하도록 한다
binding.freeButton.setOnSingleClickListener {
val testValue = listOf(0, 1, 2)
Timber.d("clicked time: ${Calendar.getInstance()}")
}
테스트 및 디버깅으로 변수 주소 확인
디버깅을 해서 결과를 보면
- 첫 번째 호출 결과
- 두 번째 호출 결과
- 세 번째 호출 결과
함수가 있는 버튼을 클릭할 때 마다 메모리에 새로운 공간을 할당해서 넣는 것을 알 수 있다.
그렇기 때문에 버튼을 여러 번 클릭하는 경우에는 매 번 변수를 함수 안에서 정의해서
호출할 필요가 있는지 확인할 필요가 있다.
반응형