1. DataType
- 정수 자료형
- byte
- short
- 2byte ⇒ -215 ~ (215 - 1) / -32,768 ~ 32,767
- int
- 4byte ⇒ -231 ~ (231 - 1) / -2,147,483,648 ~ 2,147,483,647
- long
- 8byte ⇒ -263 ~ (263 - 1) / -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807
- 숫자값이 int 자료형의 최대값인 2147483647보다 큰 경우 8764827384923849L과 같이 값 뒤에 L접미사를 붙여줘야함, 접미사를 누락하면 Compiler 에러가 남!
- Type Bit
- char ⇒ 16bit[Unicode - String Data] “\u0000 ~ \uFFFF”
- boolean ⇒ 8bit[True/False]
- byte ⇒ 8bit[부호를 가진 8bit 정수] “-128 ~ 127”
- short ⇒ 16bit[부호를 가진 16비트 정수] “-32,768 ~ 32,767”
- int ⇒ 32bit[부호를 가진 32비트 정수] “-2,147,483,638~2,147,483,647”
- long ⇒ 64bit[부호를 가진 64비트 정수] “-9223372036854775808~9223372036854775807”
- float ⇒ 32bit[부호를 가진 32비트 부동 소수점] “-3.402932347e+38~3.40292347e+38”
- double ⇒ 64bit[부호를 가진 64비트 부동 소수점] “-179769313486231570e+308~1.79769313486231570e+08”
- StringType ⇒ char
- BooleanType ⇒ boolean
- 정수Type ⇒ byte, short, int, long
- 부동 소수점Type ⇒ float, double
- ReferenceType[참조형]
- 기본형 8종류를 제외한 모든 DataType임
- 기본적으로 java.lang.Object를 상속받음
- 참조 type의 variable은 Data를 그대로 save하지 않고 data를 save하는 memory의 Address만 Save함!
- 참조형의 Variable은 Data를 다른 영역에 Save하고 그 Address만을 이용함
- ClassType
- 기본형과 다르게 Object를 참조하는 형태임
- StringType
- 기본형처럼 사용은 기본형처럼 사용됨
- immutable(불변)객체임
- 값을 변경해주는 Method들이 존재하지만, 해당 Method를 통해 Data를 변경하면 새로운 String Class 객체를 만들어냄
- String 비교는 ==연산자를 사용하지만, String Object간 비교는 equals method를 사용함
- InterfaceType
- Interface를 만들면 새로운 참조 자료형을 만드는 것과 동일함
- Interface도 자료형이기 때문에 자료형으로써 자신을 구현한 Object의 Address를 가질 수 있음!
- Interface에 정의된 Method만 사용가능함!
- ArrayType
- 기본형으로도 만들 수 있고 참조형으로도 만들 수 있음
- []를 선언함으로 배열을 지정 할 수 있음
- Array Variable 또한 Array의 Address를 가지고 있는 것이기 때문에 Class형의 Feature과 동일함
- 같은 Object의 Address를 참조하게 되면 동일한 Array를 가리킴
- [][] 다중배열로도 사용이 가능함!
- EnumType[열거형]
- 복수의 정수를 한꺼번에 다루기 위한 DataType임
- 정의한 열거형에는 형명.상수의 형식으로 엑세스 할 수 있음!
- EnumMethod
- 암묵적으로 EnumClass(java.lang package)를 상속한 Class의 일종임
- String name() : 열거 상수의 이름을 반환
- int ordinal() : 열거 상수의 순서를 반환(0 시작임)
- toString() : 열거 상수의 이름을 반환
- E[] values() : 열거형에 포함되는 모든 열거 정수를 반환
-
정수 overflow, Underflow