다들 기억하시나요?? 지난 시간에 우리는 변수가 무엇인지 배웠습니다! 프로그래밍을 하면서 사용하는 변수는 그 변수에 해당하는 "자료형" 이 필요합니다. 자료형이 어떤 것인지 사전적 의미부터 확인하고 가겠습니다!
자료형(資料形) 또는 데이터 타입(영어: data type)은 컴퓨터 과학과 프로그래밍 언어에서 실수치, 정수, 불린 자료형 따위의 여러 종류의 데이터를 식별하는 분류로서, 더 나아가 해당 자료형에 대한 가능한 값, 해당 자료형에서 수행을 마칠 수 있는 명령들, 데이터의 의미, 해당 자료형의 값을 저장하는 방식을 결정한다.
< 자료형 : 출처 위키백과 https://ko.wikipedia.org/wiki/%EC%9E%90%EB%A3%8C%ED%98%95 >
"자료형"은 컴퓨터 과학과 프로그래밍 언어에서 실수치, 정수, 불린 자료형 따위의 여러 종류의 데이터를 식별하는 분류라고 합니다. 조금 쉽게 그림으로 보면 다음과 같이 분류할 수 있겠습니다!
변수는 자신이 어떤 type인지 지정하는 "그릇"인 "자료형"을 지정해야 사용할 수 있습니다! 잠깐 저번시간의 코드를 보겠습니다.
// VarConst.java
public class VarConst{
public static void main(String[] args){
int x = 1; // x는 정수 1, 처음 선언 시 정수자료형(int)를 명시
int y = 3; // x는 정수 3, 처음 선언 시 정수자료형(int)를 명시
String name = "REDUCTO"; // name은 문자열, 처음 선언 시 문자열자료형(String)을 명시
//x="abc" // ERROR! x는 정수형이기 때문에 문자열 저장불가
System.out.println(x);
x = y;
System.out.println(y);
System.out.println(x);
System.out.println(name);
}
}
이 프로그램에서 사용하는 변수는 x / y // name입니다. 각각은 정수형 / 정수형 / 문자열형 자료형으로 선언(변수를 어떻게 코드에서 사용하겠다고 코드에 명시하는 것을 선언이라고 합니다.)되었습니다. 따라서 이 코드에서 다시 문자열로 선언하지 않는 이상 x="abc"같이 정수가 아닌 값을 대입(변수에 값을 변경하는것을 대입이라고 합니다.)하는것은 오류입니다.
그러면 JAVA의 자료형은 어떤 것들이 있을까요? JAVA자료형 분류는 아래의 그림과 같습니다!
기본형(Primitive Type)의 자료형은 논리 / 정수 / 실수 / 문자(1글자)를 나타내는 자료형입니다. 기본형의 특징은 다음과 같은 것들이 있습니다.
- 소문자로 시작(boolean / int / char / float / double / long)
- OS에 따라 자료형의 길이(표현범위)가 다르지 않음
- null값을 가질 수 없음
기본형 자료의 세부적인 정보는 다음과 같습니다!
자료형 | 크기 | 표현범위 | 사용 |
byte | 8bits | -2^7 ~ 2^7-1 | 정수 |
short | 16bits | -2^15 ~ 2^15-1 | 정수 |
int | 32bits | -2^31 ~ 2^31-1 | 정수 |
long | 64bits | -2^63 ~ 2^63-1 | 정수 |
float | 32bits | -3.4*10^38 ~ 3.4*10^38 | 실수 |
double | 64bits | -1.7*10*308 ~ 1.7*10^308 | 실수 |
char | 16bits | 0 ~ 2^16-1 | 문자 |
boolean | 1bit | true / false | 논리 |
참조형(Reference Type)은 기본형을 제외한 자료형입니다. 우리가 코드에서 사용한 String 등 기본형이 아닌 자료형을 모두 참 조형이라고 부릅니다.(char는 한 글자만을 저장하기에 "name"이라는 [문자열]을 저장하기 위해 String을 사용했습니다.) JAVA를 JAVA 답게 만드는 개념이며 지금 당장은 이해가 어렵더라도 아래와 같은 특징이 있습니다.
- 대문자로 시작(String / Hashmap등)
- java.lang.Object를 상속받아 생성된 자료형
- null을 가질 수 있음
이번 시간에는 자료형에 대해서 알아보겠습니다! 모르는 단어가 나와 막막하게 느껴져도 오히려 배울게 많아졌다는 기대감으로 같이 끝까지 읽어주시면 좋겠습니다! 다음 시간에는 연산에 대해서 알아보도록 하겠습니다!
'JAVA' 카테고리의 다른 글
[JAVA와 친해지기] 흐름제어문 (0) | 2021.08.19 |
---|---|
[JAVA와 친해지기] 연산자 (4) | 2021.08.18 |
JAVA 예약어 종류 (0) | 2021.08.14 |
[JAVA와 친해지기] JAVA프로그래밍과 변수 (2) | 2021.08.14 |
[JAVA와 친해지기] JAVA동작원리와 Hello world! (0) | 2021.08.01 |