자바에서 변수에 저장할수 있는 데이터 타입은 정해져있으며, 크게 기본타입과 참조타입 이라는게 있다.
기본 타입(primitive type) 에는 다시 4가지로 나누어진다
①논리타입(boolean) ②문자타입(char) ③정수타입(byte,short,int,long) ④실수 타입(float,double)
참조타입(reference type)
1)논리 타입(boolean)
Yes/No로 두가지 중에 한가지 값만 기억할 수 있는 저장되는 그런 데이터를 저장할때 선택하는
타입이 논리타입으로써 논리타입을 뜻하는 데이터타입 은 boolean 이다.
자바는 대문자 소문자를 구분한다 그래서 boolean(블린) 이라는 단어를 표현할때
올 소문자로 표현을 해야한다
ㆍYes/No로만 값을 가지는 데이터를 표현할 때 사용하는 타입
ㆍ결혼여부,수료여부,ON/OFF 여부 등
boolean isMarride; // boolean하면 1바이트 만큼 메모리 영역이 확보가 되고 그 변수의 이름은
// isMarride(이즈메리드)라는 이름이 부여가 되는것이다 그럼이제 거기에 저장하는데
// boolean데이터는 yes/no 둘중에 한가지 값만 저장할 수 있는데 자바에서는 yse/no가 안되기때문에
// true/false 값만 저장할 수 있다
isMarried = true; // 그래서 isMarried 라는 변수를 찾아서 어떻게 해라? true는 값을 저장해라 라고 정의
2) 문자 타입(char)
문자의 변수타입은 char이라는 단어를 주고 메모리의 공간은 2byte가 확보가된다
여기에 저장할 수 있는거는 한 글자의 값만 저장 한다 내가 char이라고 주면은 그 글자 하나만
저장할게 라고 선언하는 것이다 그래서 자바에서는 글자 하나를 표현할때는 ('') 홑따옴표 표현한다
ㆍ한 글자의 값만 가지는 데이터를 표현할 때 사용하는 타입
ㆍ 성별 정보: F 또는 M
char gender; // char 데이터타입의 메모리는 2바이트 공간이 확보되고 ㅁㅁ안에 변수 이름은 gender
gender='F'; // F라는 문자를 저장하고 있다
String
String greeting = "Good Morning"; // 나는 글자 하나가 아니라 여러개를 저장하고 싶어요!
// 그럼 자바에서는 char이라고 주면 안되고 어떻게 줘야 하냐면 String 라고 줘야한다
// String 란? 여러개의 문자열을 저장한다 라는 뜻이다
// 그래서 String greeting 이라는 단어를 줬고 ("") 겹따옴표를 줘서 문자열 표현하는 방법이고
// greeting 이라는것은 문자열을 저장할게 하고 선언한 변수이기 때문에 문자열 저장이 가능하다
3) 정수 타입(byte,short,int,long)
정수란? 소숫점이 없는 숫자라고 이야기를 하는데 자바 에서는 정수를 표현할 수 있는 값이 4가지가 있다
byte,short,int,long 4가지 타입이 정수를 표현하는 데이터타입 이다.
똑같은 정수를 표현하는데 차이점은 메모리에 만들어지는 크기가 다르다
정수 타입 | 메모리 크기 | 저장할 수 있는 숫자의 범위 |
byte | 1 바이트 | - 128 ~ 127 |
short | 2 바이트 | - 32,768 ~ 32,767 |
int | 4 바이트 | - 2,147,483,648 ~ 2,147,483,647 |
long | 8 바이트 | -226 ~(-226 ㅡ 1) |
각각의 크기가 다르기 때문에 저장할 수 있는 크기 숫자의 범위가 다르다고 생각하면 된다
4) 실수 타입(float,double)
실수란? 소숫점에 있는 숫자를 표현하는것이다 실수를 표현하는 데이터타입은 크게 두가지 float,double 이 있다
차이점은 메모리의 크기가 다르다. 크기가 다르다는건 어떤 의미냐면, 표현할수 있는! 저장할 수 있는! 숫자의 범위가 다르다
정수 타입 | 메모리 크기 |
float | 4 바이트 |
double | 8 바이트 |

5) 참조 타입(reference type)
자바의 데이터 타입 | 내용 |
기본 데이터 타입 | boolean(true,false 값만 가지는거), char( '' 홑따옴표 문자 하나값만 가지는거), byte,short,int,long,(소숫점이 없는 정수표현하는 타입 ) float,double (소숫점을 표현하는 실수타입) |
참조 데이터 타입 | 메모리 주소값 (위의 기본 데이터타입 8가지를 제외한 나머지 타입이 선언되어 있다. 변수가? 그럼 이건 참조 타입이라고 보면 된다. 즉 어떠한 값을 같는게 아니라 메모리 주소값을 값는 변수를 갔다가 참조 타입이라고 이야기를 한다 ) |
참조타입 변수 선언 문법
참조타입의 변수를 선언할때는 변수의 이름을 주는데 앞에는 뭐를 주냐면 가지고 있는 메모리의 주소값에 있는 클래스 라는것! 클래스라는 이름을 데이터타입 에 주면된다
데이터타입 변수 이름;
String name; // name변수는 어떤 타입? 메모리 주소 값!

String name 가 있는데 타입이 나오고 이름이 나왔다 그럼 뭐 한거냐면 변수를 선언한 것이다.
name이라는 변수를 선언 하는데 이안에 저장되는 데이터 타입을 뭘로줄거냐? String이다. string는 아까 기본데이터 타입의 8가지에 속하지 않는다. 그럼이건 뭐다? 참조타입이다. 그럼 name에는 어떤 값이 들어가냐면 String 타입의 메모리주소값이 들어간다 라고 생각하면 된다.
우측을 보면 name이라는 변수가 있고 String 타입의 데이터가 만들어져 있다고 생각을 해보면 그러면
7F793951000(메모리주소값) 이라고 주소가 만들어져 있고 그게 name에 7F793951000라고 저장되어 있다.
여기서는 참조 타입을 메모리의주소값을 가지고 있는 변수를 우리가 참조타입이라고 한다 라고만 생각하면 되겠다
'JAVA' 카테고리의 다른 글
java 데이터 타입 변환 (0) | 2023.02.10 |
---|---|
java 데이터 연산 (0) | 2023.02.10 |
변수 기본 (variable) (0) | 2023.02.09 |
명령행 매개 변수 (0) | 2023.02.05 |
1차원 배열 알파벳 처리 (0) | 2023.02.05 |