- wapper 클래스를 통해 데이터 타입의 크기를 알 수 있다
Byte.SIZE // 8
Byte.BYTES // 1
Byte.MAX_VALUE // 127
Byte.MIN_VALUE // -128
- 정수의 디폴트는 int
- 나머지 정수 타입은 리터럴 뒤에 약어를 붙인다
- ex:)
long l = 5000000000000l
- 부동소수의 디폴트는 double
- float은 리터럴 뒤에 약어를 붙인다
- ex:)
float f2 = 34.5f
-
형 변환(Type Casting)
- 크기가 큰 자료형의 데이터는 그보다 작은 자료형 변수에 넣을 수 없다
- ex:)
int i = l(long)
[X]
- 넣으려면 type casting 필요
- ex:)
short s = (short)i
- explicit type casting
- implicit type casting
- float 변수(4)에 double 데이터(8) 배정 불가능
- 부동소수 변수에 정수 데이터 배정 가능
-
8진수, 16진수
- 8진수: 숫자 앞에
0
을 붙임(010)
- 16진수: 숫자 앞에
0X
을 붙임(0xFF)
- 증감 연산자
- 사후 증가
int j = i++
- assign 먼저, 증가 나중
- 배정만 되고 증가는 i에만 적용
- 사전 증가
int j = ++i
- 증가 먼저, assign 나중
- Big Decimal
- 부동소수는 소숫점값을 명확하게 나타내지 않는다
- 정확한 결과를 원한다면 Big Decimal을 사용한다
- 인자는 string
- ex:)
BigDecimal num = new BigDecimal("34.56");
- BigDecimal로 만들어진 변수는 값이 변하지 않는다
- 변경 불가능한 클래스에 값을 한 번 넣으면 바뀌지 않음
- BigDecimal은 BigDeciaml끼리만 연산 가능
- boolean의 리터럴은 true와 false
- 논리적 연산자
- 두 개 이상의 관계 연산자를 사용할 때 필요
ex:) i >= 15 && i <= 25
- XOR(
^
): 두 조건이 상이할 때 true
- 단축 회로 연산자
&&
/ ||
- 조건 하나로부터 결과를 예상 가능하면 뒤 조건의 연산을 진행하지 않는다
- 뒤 조건을 실행하지 않으므로 사전/사후 연산을 진행하지 않는다
&
를 사용하면 결과와 상관 없이 두 조건을 모두 실행하여 사전/사후 연산이 진행된다
- 아스키
- 문자 변수에 정수를 넣으면 그 수에 해당하는 문자가 나온다
- ex:)
char ch = 65; // 'A'
- 증감 연산자를 통해 앞뒤 문자를 구할 수 있다
- 정수(4)와 문자(2)를 더하면 정수가 된다
- 정수가 더 크기 때문
- 출력시에는 문자가 나온다
- 정적 메서드
- 클래스나 객체에서 데이터를 사용하지 않는 메서드
- 인스턴스가 필요하지 않다