우리가 데이터를 저장하고 싶을 때에는 변수를 선언하게 되는데
이렇게 변수를 선언할 때에는 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)라는 값을 통해 출력되기 때문이다.
하지만 이 경우에도 가독성이 떨어지기 때문에 좋은 코드는 아니다.
'Java > study' 카테고리의 다른 글
제어문(조건문) (0) | 2022.06.08 |
---|---|
스캐너와 객체 (0) | 2022.06.08 |
연산자(비교, 논리, 삼항) (0) | 2022.06.08 |
연산자 우선순위 (0) | 2022.06.07 |
JDK, 이클립스 설치와 시작 (0) | 2022.06.07 |