
Java에 상수
는 변하지 않는 수를 의미한다.
상수를 자바에서 final
예약어로 선언한다.
상수의 장점은 가독성 측면에 값이 변하지 않는 것을 먼저 선언함으로써 읽음에 있어 가독성을 향상해 준다.
또한 바뀌지 말아야 할 값을 선언 시점에 명시함으로 변경되지 않게 방지해 준다.
추가로 일반적인 변수의 경우 메모리에 값을 매번 로드해야 하지만
상수는 값이 변하지 않아 컴파일러에 따라 미리 값을 최초 1회 로드 후 캐싱해 놓는 등 최적화 기회가 생긴다.
멀티스레드 환경에서 변수는 thread-safe
를 신경 써야 하는 대상이지만, 상수는 값이 변경되지 않는다.
Magic Number?
매직 넘버, 매직 리터럴 이란 소스코드에서 의미를 가진 숫자나 문자를 그대로 표현하는 것을 의미한다.
하지만 이런 코드는 읽기 어렵게 만들 수 있다
왜냐면 이런 의미를 파악하기 위해 해당 클래스와 흐름을 이해하기 위해 많은 시간을 요구하기 때문이다.
매직 넘버의 예시는 원주율(파이)을 생각할 수 있다.
우리가 아는 원주율 값은 3.14159265....이다 보통 3.14로 표기한다
코드에 원주율을 매직넘버로 정의한다면
static final int double PI = 3.141592;
이렇게 선언할 수 있다.
지금처럼 예시는 누가 봐도 저 값이 파이라는 것과 어떤 의미를 가지는지 알 수 있다.
다만 무분별한 매직 넘버는 매직 넘버가 사용되는 곳을 찾아 들어가 어떤 의미로 사용하는 것 인지 찾고 이해해야 하기 때문에
무분별하게 사용하게 되면 코드가 더 지저분해질 수 있다.
또한 매직 넘버는 수정하기 어렵다는 단점이 있다.
❤ 김춘장이의 위키백과 - 나만의 공부 기록 Tistory ❤
gayulz - Overview
개발자가 되고싶은 개발어린이💟. gayulz has 11 repositories available. Follow their code on GitHub.
github.com
'👩🏻💻 𝐋𝐚𝐧𝐠𝐮𝐚𝐠𝐞 > ⠀⠀⠀⠀ Jᴀᴠᴀ' 카테고리의 다른 글
Java7의 날짜계산 : Date, Calendar, SimpleDateFormat(2) (0) | 2024.08.16 |
---|---|
Java7의 날짜계산 : Date, Calendar, SimpleDateFormat(1) (0) | 2024.08.16 |
일급 컬렉션 (First Class Collection) (0) | 2024.04.28 |
2023/11/30🤘 디자인패턴 - State Pattern & SingleTon Pattern (1) | 2023.12.05 |
2023/11/27 ~ 2023/11/29🤘 JAVA GUI Swing (0) | 2023.12.04 |

Java에 상수
는 변하지 않는 수를 의미한다.
상수를 자바에서 final
예약어로 선언한다.
상수의 장점은 가독성 측면에 값이 변하지 않는 것을 먼저 선언함으로써 읽음에 있어 가독성을 향상해 준다.
또한 바뀌지 말아야 할 값을 선언 시점에 명시함으로 변경되지 않게 방지해 준다.
추가로 일반적인 변수의 경우 메모리에 값을 매번 로드해야 하지만
상수는 값이 변하지 않아 컴파일러에 따라 미리 값을 최초 1회 로드 후 캐싱해 놓는 등 최적화 기회가 생긴다.
멀티스레드 환경에서 변수는 thread-safe
를 신경 써야 하는 대상이지만, 상수는 값이 변경되지 않는다.
Magic Number?
매직 넘버, 매직 리터럴 이란 소스코드에서 의미를 가진 숫자나 문자를 그대로 표현하는 것을 의미한다.
하지만 이런 코드는 읽기 어렵게 만들 수 있다
왜냐면 이런 의미를 파악하기 위해 해당 클래스와 흐름을 이해하기 위해 많은 시간을 요구하기 때문이다.
매직 넘버의 예시는 원주율(파이)을 생각할 수 있다.
우리가 아는 원주율 값은 3.14159265....이다 보통 3.14로 표기한다
코드에 원주율을 매직넘버로 정의한다면
static final int double PI = 3.141592;
이렇게 선언할 수 있다.
지금처럼 예시는 누가 봐도 저 값이 파이라는 것과 어떤 의미를 가지는지 알 수 있다.
다만 무분별한 매직 넘버는 매직 넘버가 사용되는 곳을 찾아 들어가 어떤 의미로 사용하는 것 인지 찾고 이해해야 하기 때문에
무분별하게 사용하게 되면 코드가 더 지저분해질 수 있다.
또한 매직 넘버는 수정하기 어렵다는 단점이 있다.
❤ 김춘장이의 위키백과 - 나만의 공부 기록 Tistory ❤
gayulz - Overview
개발자가 되고싶은 개발어린이💟. gayulz has 11 repositories available. Follow their code on GitHub.
github.com
'👩🏻💻 𝐋𝐚𝐧𝐠𝐮𝐚𝐠𝐞 > ⠀⠀⠀⠀ Jᴀᴠᴀ' 카테고리의 다른 글
Java7의 날짜계산 : Date, Calendar, SimpleDateFormat(2) (0) | 2024.08.16 |
---|---|
Java7의 날짜계산 : Date, Calendar, SimpleDateFormat(1) (0) | 2024.08.16 |
일급 컬렉션 (First Class Collection) (0) | 2024.04.28 |
2023/11/30🤘 디자인패턴 - State Pattern & SingleTon Pattern (1) | 2023.12.05 |
2023/11/27 ~ 2023/11/29🤘 JAVA GUI Swing (0) | 2023.12.04 |