상세 컨텐츠

본문 제목

상수와 리터럴 그리고 형 변환

프로그램 언어/JAVA

by 알케이88 2019. 12. 1. 22:56

본문

지금까지 변수를 배웠으니 이제 상수를 배워볼 차례이다. 

이 포스팅에서는 상수와 리터럴 그리고 형 변환에 대해서 공부할 것이다. 

 

상수는 변수와 마찬가지로 데이터를 저장할 수 있는 메모리 공간을 의미한다.

영어로는 constant 라 하며 '변하지 않는 수'이다. 

이는 변수와는 반대로 프로그램이 실행되는 동안(선언과 값을 동시에 했을 시) 값을 변경할 수 없다. 

쉽게 말해 다시 재정의 나 변경이 불가능하며 변환되지 않는 값을 칭한다.

 

프로그램에서 상수를 선언 방법은 변수와 동일하며 단지 앞에 FINAL이라는 키워드를 사용한다.

이 키워드를 사용하면 변수는 상수가 되며 변할 수가 없다.

상수는 반드시 선언과 동시에 초기화를 해야 하며 위에서 계속 말했듯이 상수값을 변경하는 것은 허용되지 않는다.

예를 들어보자

더보기

ex)

     final int MAX_SPEED = 10;   // OK. 상수 선언과 초기화가 동시에 됨

     final int MAX_VALUE;          // ERROR. 상수 선언과 초기화가 동시에 안되어 있음
     MAX_SPEED = 20;              // ERROR. 상수 값은 변할 수가 없다. 

 

*모든 상수의 이름은 대문자로 사용하는 것이 관례이며 여러 단어로 구성시 '_' 로 구분시켜준다.

     

 

리터럴(literal) : 프로그램에서 자바 언어가 처리하는 실제 데이터 즉 숫자, 값 논리 값을 통틀어 칭한다.

                    즉 리터럴은 변수의 값이 변하지 않는 데이터(메모리 위치 안의 값)를 의미한다.

                       ex) 10, 3.14, 'A', true...

                    원래 이 예들은 상수인데 프로그래밍 언어상 구분을 위해서 다른 단어로 불어야 했기에 리터럴

                    이라고 정의를 하였으나 상수와 같은 의미를 가진 다른 이름일 뿐이다
                    각 데이터형 마다 리터럴을 다르게 표현하니 주의하도록 하자.

 

모든 리터럴은 상수 풀에 저장되어 있다. 

 

 * 상수 풀: 힙 영역의 Permanent area(고정 영역)에 생성되어 Java 프로세스의 종료까지 계속 유지되는

              메모리 영역

              기본적으로 JVM에서 관리하며 프로그래머가 작성한 상수에 대해서 최우선 적으로 찾고 없으면

              상수 풀에 추가한 후 그 주소 값을 리턴한다

 

더보기

변수 vs 상수 vs 리터럴

변수(variable) 하나의 값을 저장하기 위한 공간

상수(constant) 값을 한번만 저장할 수 있는 공간
리터럴(literal) 그 자체로 값을 의미하는 것

상수가 필요한 이유

 

 

형 변환

 

서로 다른 자료형의 값이 대입되는 경우 형 변환이 일어난다.

 

형 변환에는 두 가지 유형이 있는데

이는 묵시적 형 변환(implicit type conversion)과 명시적 형 변환(explicit type conversion)이 있다. 

 

묵시적 형 변환은 작은 수에서 큰 수로 이동한다.

즉 다시 말해 덜 정밀한 수에서 더 정밀한 수로 대입이 되는 경우를 뜻한다.

 

명시적 형 변환은 변환되는 자료형을 명시해야 한다. 

이는 자료의 손실이 발생할 수가 있다. 

typecasting을 해 주어야 한다. 

 

형 변환 방향

 

자세한건 다음 페이지에 따로 정리 해 두겠다.

관련글 더보기

댓글 영역