직접적으로 메모리의 특정 위치에 값을 저장
값으로써 직접 사용이 가능하다. 객체가 아님
4byte의 크기
--2,147,483,648부터 2,147,483,647까지의 정수 표현 가능
다양한 진수별 값 할당 가능
int a = 0;
int b = -1;
int c = 0b1110; // 14(2)
int d = 012; // 10(8) (앞에 0을 써줌으로써 8진수임을 표현)
int e = 10; // 10
int f = 0xA; // 10(16)
long hugeNumber = 100_000_000_000L;참고로 정수형 자료형에선 값에 언더바(_)을 사용하여 가독성을 높힐 수 있음
int justNumber = 1_000_000_000;
short smallNumber = 10_000;
float pi = 3.14f;2byte의 크기
유니코드를 기반으로 문자를 저장
작은 따옴표 사용(’)
char a = '\uC548';
char b = '\uB155';
char c = '\uD558';
char d = '\uC138';
char e = '\uC694';
System.out.printf("%c%c%c%c%c",a,b,c,d,e); // 안녕하세요
기본자료형(원시자료형)을 객체로 다룰 수 있게 하는 클래스
자바에선 객체만이 메서드에 인수로 전달, 컬렉션 클래스와 같은 데이터 구조에 저장
byte → Byte
short → Short
int → Integer
long → Long
float → Float
double → Double
char → Character
boolean → Boolean
int basicInt = 27;
Integer wrapperInt = Integer.valueOf(basicInt);
int unboxedInt = wrapperInt.intValue();
위 처럼 boxing을 위해선 valueOf를 사용하고
unboxing은 intValue를 사용하여 가능
JVM은 메모리를 영역들로 나누어 관리
비트열을 왼쪽으로 지정된 수 만큼 이동(오른쪽 빈 자리는 0으로 채운다) → 결과적으로 2의 제곱수로 곱하는 결과 도출
int a = 7; // 0111
int leftShifted = a << 1; //1110(14)
좌측 Shift와 동일하게 비트열을 오른쪽으로 이동(왼쪽 빈 자리는 원래의 부호 비트로 채움) → 결과적으로 2의 제곱수로 나눗셈하는 결과
int a = 12; // 1100
int rightShifted = a >> 1; //0110(6)
우측 Shift와 흡사하나 왼쪽 빈자리를 0으로 채움 → 부호 비트를 무시
int a = -20; // 1111 1111 1111 1111 1111 1111 1110 1100
int result = a >>> 2; // 0011 1111 1111 1111 1111 1111 1111 1011
| 우선순위 | 연산자 | 비고 |
|---|---|---|
| 1 | ( ) , [ ] | 괄호 / 대괄호 |
| 2 | !, ~, ++, -- | 부정/ 증감연산자 (단항연산자) |
| 3 | *, /, % | 곱셈 / 나눗셈연산자 |
| 4 | +, - | 덧셈 / 뺄셈연산자 |
| 5 | << , >>, >>> | 비트 이동연산자 |
| 6 | <, ≤, > , ≥ | 관계연산자 |
| 7 | ==, != | |
| 8 | & | 비트 논리연산자 |
| 9 | ^ | |
| 10 | ||
| 11 | && | 논리연산자 |
| 12 | ||
| 13 | ? : | 조건연산자 |
| 14 | =, +=, -=, *=, /=, %=, <<=, >>=, &=, ^=, ~= | 대입, 복합대입연산자 |
외울 필욘 없을거 같다.