개인적으로 공부한 내용을 정리 중입니다.
단 하나의 값을 저장할 수 있는 메모리상의 공간.
선언되는 변수 타입에 알맞은 크기의 저장공간이 확보된다.
말 그대로 변수에 붙이는 이름이다. 변수는 값을 저장하기 위한 메모리 공간이라고 앞서 설명했듯이
이 메모리 공간에 이름을 붙여주는것을 의미한다.
왜?? 그래야 그 메모리 공간에 값을 저장하고 읽어올 수 있어서.
변수 선언 -> ex) int age
즉, 자료형을 명시하여 메모리공간 확보와 변수이름을 지정한 이 형태를 선언이라고 한다.
변수 초기화 -> 선언된 변수안에 값을 담아주는 것을 의미한다. ex) age = 10;
1)기본 자료형
2)참조 자료형
1)boolean(1byte)
참고 : 1bit만으로 충분하지만 자바에서는 데이터를 다루는 최소단위가 1byte이기 떄문에 boolean의 크기도 1byte다.
2)char (2byte)
3)int (4byte)
정수의 기본타입으로 사용된다.
왜?? cpu가 가장 효율적으로 처리할 수 있는 타입이기 때문이다.
참고 : 효율적인 실행보다 메모리를 절약하려면 byte나 short를 사용하는 것이 바람직하지만
값의 범위가 너무 작아 연산 시에 범위를 넘어 잘못된 결과를 얻기 쉽다.
4)long(8byte)
5)double(8byte)
6)float(4byte)
형변환이란 변수 또는 상수의 타입을 다른 타입으로 변환하는 것을 말한다.
기본적으로 , 형변환 하려는 변수나 리터럴의 앞에 변환하려고 하는 타입을 ()와 함께 붙여주면 된다.
ex) (타입) 피연산자
정수형 변환시
정수형의 경우 byte -> short -> int -> long로 자동 형변환이 가능하다.
ex) short sh = 10 ; int a = sh;
반대의 경우에는 타입을 명시하고 형변환을 해줘야 한다.
ex) int a = 10 ; short sh = (short)a;
단, 변수의 메모리가 작아지는 타입으로 이동하기에 변경되는 자료형에서 표현할 수 있는 값의 범위를 넘어설 경우 데이터의 손실이 발생할 수 있다.
실수형으로 변환시에는 더 자동 변환이 가능하다. 실수형에서 정수형으로 올때는 명시하고 변경해줘야 한다.
이때 실수에서 정수로 넘어오는 경우에는 실수의 소숫점 부분은 사라진다.
char도 내부적으로 정수를 저장하기에 정수형 자료형과 형변환이 가능하다.
1)문자 인코딩
2)문자 디코딩
고로 , 문자를 저장할 떄는 인코딩을 해서 숫자로 저장하고 , 저장된 문자를 읽어올 떄는 디코딩을 해서 숫자를 원래의 문자로 되돌려야 한다.