일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 익명 객체 @transactional
- kotiln const
- java 팩토리얼 개수
- kotiln functional interface
- 자바 1676
- Java Call By Refernce
- spring mongodb switch
- kotiln const val
- 백준 연결요소 자바
- 백준 2252 줄세우기
- java 1509
- javav 1676
- 안정해시
- 백준 1504 java
- mongodb lookup
- spring mongodb
- 백준 특정한 최단 경로
- 전략 패턴이란
- java 파티
- go
- rabbitmq 싱글톤
- ipfs bean
- spring mongoTemplate switch
- Spring ipfs
- nodejs rabbitmq
- 자바 백준 팩토리얼 개수
- java 백준 1509
- java 1238
- ipfs singletone
- spring mongoTemplate
Archives
- Today
- Total
공부 흔적남기기
Kotiln const val를 사용하는 이유 본문
728x90
반응형
Kafka에 Topic이름을 상수화해서 사용하고 싶어서 다음과 같이사용했다.
companion object{
val ECOMMERCE_ORDER_QTY_TOPIC = "ecommerce.order-topic"
}
@KafkaListener(topics = [KafkaConsumerConfig.ECOMMERCE_ORDER_QTY_TOPIC])
다음과 같이 사용했을 떄 Only 'const val' can be used in constant expressions Error가 떨어졌고
companion object{
const val ECOMMERCE_ORDER_QTY_TOPIC = "ecommerce.catalog-topic"
}
다음과 같이 수정 한 후 잘 동작되었다.
이전에는 그냥 val을 쓰면 상수처럼 동작하는줄 알았지만 const를 붙여야 상수처럼 동작함을 알게되었다.
그럼 const val와 그냥 val의 차의점에대해 알아보자.
둘다 Immutable하다는 공통점이 있지만
val은 런타임 시점에 객체로 생성되어 stack이나 Heap에 생성이 될 것이고
const val은 컴파일 시점에 바이트코드로 직접 치환되어 사용 될 것이다.
따라서 const val을 사용함으로써 메모리와 컴파일의 비용을 낮춰줄 수 있다는 점이 있을 것 같다.
따라서 변하지 않는 불변 값을 사용할 경우 const val를 사용하도록 하자
728x90
반응형