-
Java | Data Type 자료형JAVA/JAVA 2020. 1. 15. 22:32
Data Type 자료형
컴퓨터에게 어떤 데이터를 얼마만큼의 크기로 저장할 것인가를 지정해주는 것
문자열, 숫자, 논리적인 값 8가지가 있음
↔ JavaScript 에서는 변수 선언시 자료형을 지정하지 않음(TypeScript에서는 함)
정수 자료형
종류 설명 byte 저장공간 크기 1byte, (-127 ~ +128)만 저장 가능
자바의 기본 데이터 전송 단위, ex) 채팅 프로그램 데이터 전송short 저장공간 크기 2byte, (-32768 ~ +32767) 저장 가능 int 저장공간 크기 4byte, (-2147483648 ~ +2147483647) 저장 가능
자바의 기본 연산 단위(+, -, * , / 산술연산)
형변환과 연관long 저장공간 크기 8byte,
데이터를 long형으로 저장하기 위해서는 저장하는 값 뒤에 L or l을 써줘야 함사용례
public class VarTest { public static void main(String[] args) { byte b = 23; //변수 b를 선언하면서 23값을 저장 short c = 12; //byte로도 저장할 수 있는 숫자를 short로 저장하면 메모리 낭비 발생 int sum = b + c; /* b + c = 35이므로 byte에도 충분히 담길 수 있지만, b + c 에서 산술연산자가 사용되고 있고 java의 기본 연산 단위는 int이기 때문에 int 자료형을 사용해야 함 */ long num = 1234567890000L; /* int 저장 범위를 넘어서는 수이기 때문에 long형으로 저장해야함 long형으로 저장하기 위해서 숫자 마지막에 L을 작성 */ } }
※ 산술연산자를 사용할 때에는 꼭 int 자료형 사용 !!
※ 예제에서는 변수의 사용을 생략했는데, 변수를 선언만 하고 사용하지 않으면
이클립스에서 사용되지 않는 변수라는 알림을 표시해줌※ Type mismatch ERROR
변수의 자료형과 맞지 않는 값을 저장했을 때 발생하는 에러
실수 자료형
종류 설명 float 저장공간 크기 4byte
실수를 float형에 저장하기 위해서는 숫자 마지막에 F or f를 작성해야 함
소수점 일곱 번째 자리까지 저장 가능
float f = 5.3 X, float f = 5.3F Odouble 저장공간 크기 8byte
자바의 기본 실수 저장 자료형, double d = 5.3 O※ 정수자료형 / 실수자료형 데이터 저장 공간 크기 비교
byte 1 < short 2 < int 4 < long 8 < float 4 < double 8
float, double은 소수점 이하의 수를 가지기 때문에 long보다 float의 저장 공간이 더 큼※ 5.3이 float에 저장되지 못하는 이유
자바에서 실수는 기본적으로 double형으로 저장되는데
double이 float보다 큰 값을 다루기 때문에 float에 5.3을 바로 저장할 수 없음
→ float f = 5.3F 로 작성해야 함사용례
public class VarTest2 { public static void main(String[] args) { // 실수값 저장 float f = 5.3F; double f2 = 5.3; System.out.println("f값: "+f+", f2값: "+f2); // f값: 5.3, f2값: 5.3 // float, double 차이점 float m_float = 123456.789123F; double m_double = 123456.789123; System.out.println("m_float 값: "+m_float+", m_double 값: "+m_double); // m_float 값: 123456.79, m_double 값: 123456.789123 } }
※ float 자료형에는 소수점 두 번째 자리까지만 저장 가능
BOOLEAN 논리형
true / false 값을 저장할 수 있는 자료형
저장공간 크기 1byte
public class VarTest3 { public static void main(String[] args) { boolean b = true; // 소문자만 입력 boolean c = 2>3; // 관계연산자로 true/false값 저장 가능 System.out.println("b값: "+b+", c값: "+c); // b값: true, c값: false } }
문자 자료형
종류 설명 char 저장공간 크기 2byte
character의 준말, '문자 하나' 저장
' '(작은 따옴표) 사용String 여러 개의 문자로 이루어진 '문자열' 저장
" "(큰 따옴표) 사용
String은 자바의 기본자료형이 아님, 참조형(reference) 또는 클래스형이라고 함
→ 기본 자료형 8가지에 포함되지 않음↔ JavaScript는 ' ', " " 구분 X
ASCII 코드
(American Standard Code for Information Interchange, 미국 정보 교환 표준 부호)
컴퓨터는 문자를 인식할 수 없기 때문에 문자를 숫자로 변환하기 위해 만들어진 코드
- 0 ~ 255로 알파벳, 특수문자 등 가장 기본적인 문자 표현 가능
- A => 65, B => 66 ,,,
- a => 97, b => 98 ,,,
- 16진수 '\u0000'~'\uFFFF' 표기 가능
ex) 10진수 : 45 → 8진수 : 045, 16진수 0x45
※ 문자 인코딩(Encoding) : 문자를 정해진 코드 값으로 변환하는 것
문자 디코딩(Decoding) : 코드 값을 문자로 변환하는 것UNICODE 유니코드
전 세계의 모든 문자를 컴퓨터에서 일관되게 표현하고 다룰 수 있도록 설계된 산업 표준
유니코드 협회(Unicode Consortium)가 제정- 비영어권 사람들이 자기 나라 언어로 개발 가능하도록 설계된 코드
- 한글 및 다른 언어를 사용할 수 있음
- 0 ~ 65535 로 여러가지 언어 표현 가능
문자열 결합 +
문자열과 문자열을 연결할 때 +연산자를 사용하면 두 문자열을 합칠 수 있음
ex) "ab" + "cd" = "abcd"사용례
public class VarTest3 { public static void main(String[] args) { char d = 'A'; char d2 = 65; // 아스키값으로도 문자 표현 가능, char 자료형에 담긴 숫자는 문자의 코드 값을 뜻함 char d3 = '\u0041'; /* 16진수 값을 입력 받아서 문자 저장, '\u0000'~'\uFFFF'로 표기 10진수 : 45, 8진수 : 045, 16진수 0x45 */ System.out.println("d값: "+d+", d2값: "+d2+", d3값: "+d3); // d값: A, d2값: A, d3값: A String s1 = "식별자 자바기초 문법"; String s2 = "변수, 자료형, 연산자"; String s3 = s1 + "" + s2; System.out.println("s3: "+s3); // s3: 식별자 자바기초 문법 변수, 자료형, 연산자 } }
Java에서 변수를 저장할 때는 변수에 담기는 데이터의 자료형을 꼭 지정해주어야 합니다.
10버전부터는 자료형을 구분하지 않는 var도 지원한다고 하지만
자료형을 정확히 지정해주어야 저장공간이 낭비되지 않고여러 사람과 코드를 공유할 때 변수의 가독성을 높일 수 있습니다.
'JAVA > JAVA' 카테고리의 다른 글
Java | Casting 형변환 (0) 2020.01.16 Java | Operator 연산자 (0) 2020.01.16 Java | Variable 변수, Scope, Constant 상수 (0) 2020.01.15 Java | 기본 문법 (0) 2020.01.15 Java | 이클립스 Package 관리 (0) 2020.01.15