변수
데이터(자료)를 임시로 담을 수 있는 메모리 공간
ex) 선언 후 초기화
int i;
i=5;
ex) 선언과 초기화 동시
int i = 5;
int는 자료형, i는 변수명, = 은 대입 연산자, 10 은 변수값이다
기본 자료형(Primitive Type)
타입 | 메모리 | 기본값 | 범위 | |
논리형 | boolean | 1 byte | false | true, false |
정수형 | byte | 1 byte | 0 | -128 ~ 127 |
short | 2 byte | 0 | -32,768 ~ 32,767 | |
int | 4 byte | 0 | -2,147,483,648 ~ 2,147,483,647 | |
long | 8 byte | 0L | -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 | |
실수형 | float | 4 byte | 0.0F | (3.4 X 10^-38) ~ (3.4 X 10^38) |
double | 8 byte | 0.0 | (1.7 X 10^-308) ~ (1.7 X 10^308) | |
문자형 | char | 2 byte (Unicode) | '\u0000' | '\u0000' ~ 'uFFFF' (16비트 유니코드 문자 데이터) |
객체 자료형(Reference Type)
- 기본 자료형 타입을 제외한 타입을은 모두 객체 자료형(Reference Type)이다
- 값이 저장되어 있는 곳의 주소 값은 힙(Heap)메모리에 저장된다
- 비어있는 객체를 의미하는 Null이 존재한다
- String은 객체 자료형이다
기본 자료형과 객체 자료형
기본 자료형은 데이터가 변수에 직접 저장되고, 객체 자료형은 객체 메모리 주소가 변수에 저장된다.
객체 자료형은 C 계열에서는 포인터라고 하고, Java에서는 레퍼런스라고 부른다.
자동(묵시적) 형 변환은 작은 공간의 메모리(ex: short)에서 큰 공간의 메모리(ex: int)로 이동
명시적 형 변환은 큰 공간의 메모리(ex: int)에서 작은 공간의 메모리(ex: short)로 이동 <---- 데이터가 누실될 수 있다
정수형은 실수형으로 자동 형변환된다
byte b = 2;
int i = b; // OK
int i = 2;
byte b = (byte) i;
int i = 2000;
byte b = (byte) i; <- -48 ( value loss)
long vae = 100;
float fvar = var;
서식 문자
%d - 10진수
%o - 8진수
%x - 16진수
%c - 문자
%s - 문자열
%f - 실수
서식 문자의 정렬 & 소수점 제한
System.out.printf("%5d\n", 123);
System.out.printf("%5d\n", 1234);
System.out.printf("%5d\n", 12345);
System.out.println();
System.out.printf("%f\n", 1.23);
System.out.printf("%.0f\n", 1.23);
System.out.printf("%.1f\n", 1.23);
System.out.printf("%.2f\n", 1.23);
System.out.printf("%.3f\n", 1.23);
// 결과
123
1234
12345
1.230000
1
1.2
1.23
1.230
연산자
단항 연산자: 피연산자가 하나 존재
++x, --x, !x
이항 연산자: 피연산자가 두 개 존재
x=y, x<y, x!=y
삼항 연산자: 피연산자가 세 개 존재
x>y: true ? false
x=2 y=1
x>y: true ? false
Result -> true
비트 연산자: 데이터를 비트(bit) 단위로 환산하여 연산을 수행하며, 다른 연산자보다 연산 속도가 향상된다
&: AND 연산: a와 b가 모두 1이면 1
|: OR 연산: a와 b 중 하나라도 1이면 1
^: XOR 연산: a와 b가 같지 않으면 1
'Study > Java' 카테고리의 다른 글
[Java] 생성자와 소멸자 그리고 this 키워드 (0) | 2020.07.02 |
---|---|
[Java] 메서드, 오버로딩, 오버라이딩 (0) | 2020.07.01 |
[Java] 클래스와 객체의 생성 (0) | 2020.07.01 |
[Java] 배열 & 조건문 & 반복문 (0) | 2020.07.01 |
[Java] Java란?? (0) | 2020.06.29 |
댓글