상수 와 변수 의 차이

김동규·2022년 10월 26일
0

JAVA

목록 보기
11/38

변수

  • 데이터(data)를 저장하기 위해 프로그램에 의해 이름을 할당받은 메모리 공간

변수가 나왔으니 초기화에 관하여 짚고 넘어가 보자.

int num

만약 위와 같이 int num 이라는 소스코드가 포함된 실행파일을 실행하면 프로그램(프로세서)는 메모리공간에 num 이라는 이름의 공간을 만들어 주는데, 이전에 누가 사용했는지, num 이라는 변수공간안에 뭐가 들어있는지 아무도 알지 못한다. 왜냐하면 그전에는 사용하지 않던 공간을 사용하는 것이므로 관리가 되지 않고 있던 메모리 공간이기 때문이다.
우리는 이러한 메모리공간을 활용하기 위해서는 null값을 제거하고 새로운 값을 넣게 되는데 이를 초기화라고 한다.

🤔그렇다면 사용하지 않는 메모리를 애초에 초기화 하면 되는것이아닌가?

이에 대한대답은 언제 그 메모리가 이용될지 모르는데 비효율적으로 먼저 정리를 해놓는다면 성능은 저하될수밖에 없을것이다.
어떻게보면 가게를 하는 사장님과도 공통점이 있을것이다. 항상 청소를 하는 가게는 손님들이 보기에는 아주 깔끔하고 좋아보일수있어도 언제 올지도 모르는 가게를 청소하기보다 손님이 왔을때 그 즉시 자리를 치우는 사장님이 훨씬 움직임이 적고 효율적으로 일한다고 생각할수있는 느낌이다.

상수

  • 변수의 반댓말로 항상 상(常)자를 사용하여 변하지 않고 고정된 값을 담는 변수

    ⚠️상수는 숫자만 넣어야 한다고 오해하는 사람들이 많은데,앞서 말했듯이, 상수는 변하지 않는 변수를 뜻하는 것이다.즉 상수에 넣는 데이터는 숫자가 올 수 도 있지만,클래스나 구조체 같이 기본형에서 파생된 객체나 유도형같은 데이터를 넣을 수 있다. 

🤔 그렇다면 상수(Constant)와 리터럴(Literal)의 차이는?

상수(Constant)와 리터럴(Literal) 둘 다, 변하지 않는 값(데이터)을 의미한다. 
상수는 변하지 않는 변수라고 할수있다.
리터럴은 데이터 그 자체를 뜻 한다.

예를 들어보자

final int num = 1  

위코드에서 상수 => num 리터럴 => 1이라는 값 그자체 라고 생각하면된다.

profile
HigasiHosi

0개의 댓글