Java/study

변수와 자료형 그리고 연산자

Clearing 2022. 6. 7. 18:09
728x90

우리가 데이터를 저장하고 싶을 때에는 변수를 선언하게 되는데

이렇게 변수를 선언할 때에는 3가지 요소가 필요하다

 

1) 공간(메모리 - 랜덤으로 주어짐)

 

2) 자료형

int 정수   4byte  -  0 10 -100
double 실수   8byte  -  3.14  -1.111  0.01
char 문자   1byte  -  'a'  'b'  'c'
String 문자열  -  "abababcd"
boolean 진위형  -  true  false 

 

3) 공간의 이름(주소를 기억하기 어렵기 때문에)

int score = 90;라는 변수를 선언한다고 할 때

int(키워드, 예약어)는 자료형, score(변수명, 식별자)는 변수의 이름, 90은 변수의 값을 나타낸다.

그렇다면 int age;는 잘못된 문장일까?

그렇지는 않다. 변수의 선언시 값은 있어도 되고 없어도 된다.

하지만 값이 정해져 있지 않다면 출력 시 오류가 발생할 수 있기 때문에 우리는

변수 선언 시 값을 정해주며 이를 초기화라고 부른다.

 

변수명, 식별자를 만들 때에는 규칙이 존재하는데 특수기호, 한글, 띄어쓰기 사용이 안되며

숫자의 경우 글자뒤에 붙여야 한다. (숫자가 먼저 나오게 되면 안 된다.)


우리가 알고 있는 + - * / 와 같은 것들을 연산자라고 부르고 있다.

= 의 경우 대입 연산자라고 하며 오른쪽에 있는 값을 왼쪽에 있는 공간에 넣어주기로 약속한다.

 

10 = age; 의 경우 틀린 변수의 선언이 되는데

1) 대입 연산자의 경우 값을 공간에 넣어줘야 하는 방향이 존재하며

2) 식별자 이름 규칙을 지키지 않았기 때문이다.(숫자가 먼저 나옴)

 

int a = 3.14;라고 작성하게 되면 오류가 발생한다. int로 정수형을 선언했지만

3.14의 경우 정수가 아닌 실수이기 때문이다.

 

int a = (int) 3.14; 이와 같은 방법으로 강제로 형 변환을 진행할 수 있는데

이를 명시적 형 변환이라고 한다. 이 경우 3.14가 아닌 3이라는 값이 나오게 되는데

정수로 값이 변환되며 데이터의 손실이 발생된 것으로 가급적 사용하지 않는 것이 좋다.

 

반대로 double b = 5;라는 선언을 하게 되면 5.0이라는 값이 나오게 되는데

이를 자동 형 변환이라고 한다. 이 같은 경우에도 정수에서 실수로 변환되며

데이터가 늘어나 메모리가 낭비되게 된다.

 

int a = 'a'; , char b = 65;라고 출력할 경우에도 자동 형 변환이 이루어지는데

각각 97과 A라는 값으로 출력된다.

이는 아스키코드(A = 65, a =97)라는 값을 통해 출력되기 때문이다.

하지만 이 경우에도 가독성이 떨어지기 때문에 좋은 코드는 아니다.

728x90

'Java > study' 카테고리의 다른 글

제어문(조건문)  (0) 2022.06.08
스캐너와 객체  (0) 2022.06.08
연산자(비교, 논리, 삼항)  (0) 2022.06.08
연산자 우선순위  (0) 2022.06.07
JDK, 이클립스 설치와 시작  (0) 2022.06.07