기본 데이터 타입 (8개)
특징
- 기본 타입의 크기가 정해져 있음 (CPU나 운영체제에 따라 변하지 않음)
boolean
- 1비트, true or false
char
- 2바이트
- Unicode
byte
- 1바이트 (-128~127)
short
- 2바이트 (-32768~32767)
int
- 4바이트 (-2³¹ ~ 2³¹ -1)
- JDK8부터 양수(0 ~ 2³² -1)로도 사용가능
long
- 8바이트 (-2⁶³ ~ 2⁶³ -1)
float
- 4바이트 (-3.4E38~3.4E38)
double
8바이트 (-1.7E308~1.7E308)
레퍼런스 타입 (1개)
용도
- 배열
- 클래스
- 인터페이스
문자열
- 기본 타입이 아님
- String 클래스로 문자열 표현
문자열 리터럴
- 이중 인용부호로 묶어 표현
- String 객체로 자동 처리
String name = "amy"
문자열 연결
System.out.println("이름 : "+name) // "이름 : amy"으로 출력됨.
변수
- 프로그램 실행 중에 값을 임시 저장하기 위한 공간
- 데이터 타입에서 정한 크기의 메모리 할당
변수 선언
inr radius;
char c1, c2, c3;
변수 선언과 초기화
int radius = 10;
char c1 = 'a', c2 = 'b', c3 = 'c';
double weight = 75.56;
변수 읽기와 저장
radius = 10 * 5;
c1 = 'r';
weight = weight + 5.0;
var 키워드를 사용해 변수 타입 생략
C++의 auto 키워드
- 지역 변수의 선언에만 사용
- 컴파일러가 변수 타입 추론
var price = 200;
var name = "kitae";
var pi = 3.14;
var point = new Point(); //Point타입
var v = new Vector<Integer>(); //Vector<Integer>타입
- 변수 선언문에 반드시 초깃값 지정
var name; //컴파일 오류, 타입 추론 불가능
상수
- final 키워드 사용
- 선언 시 초기값 지정
- 실행 중 값 변경 불가
final double PI = 3.141592;
리터럴과 정수 리터럴
리터럴
- 프로그램에서 직접 표현한 값
정수 리터럴
10진수, 8진수, 16진수, 2진수
int n = 15; //15 -> 10진수 리터럴 15
int m = 015; //015 -> 0으로 시작하면 8진수. 십진수로 13
int k = 0x15; //0x15 -> 0x로 시작하면 16진수. 십진수로 21
int b = 0b0101; //0b0101 -> 0b로 시작하면 2진수. 십진수로 5
int 형으로 컴파일
long타입 리터럴은 숫자 뒤에 L또는 l을 붙임
long g = 24L;
실수 리터럴
- 소수점 형태나 지수 형태로 표현한 실수
12. 12.0 .1234 0.1234 1234E-4
- 실수 타입 리터럴은 double 타입으로 컴파일
double d = 0.1234; double
e = 1234E-4; // 1234E-4 = 1234x10-4이므로 0.1234와 동일
- 숫자 뒤에 f(float)나 d(double)을 명시적으로 붙이기도 함
float f = 0.1234f;
double w = .1234D; // .1234D와 .1234는 동일
※참고
숫자 리터럴의 아무 위치에나 언더스코어(_) 허용 (가독성 높임)
컴파일러는 _를 빼고 처리함.
int price = 20_100;
long cardNumber = 1234____5678_1357_9998L;
long maxLong = 0x7fff_ffff_ffff_ffffL;
허용되지 않는 경우
- 리터럴 끝에 사용x
- 소수점 앞뒤에 사용x
- L(F)앞에 사용x
- 0x 중간이나 끝에 사용x
=> 숫자 사이에만 허용됨
문자 리터럴
- 싱글 쿼터로 문자 표현
'w', 'A', '가', '*', '3', '글', \u0041
- \u 다음에 4자리 16진수(2바이트의 유니코드)
char a = 'A';
char b = '글';
char c = \u0041; // 문자 'A'의 유니코드 값(0041) 사용
char d = \uae00; // 문자 '글'의 유니코드 값(ae00) 사용
- 특수문자 리터럴은 백슬래시(\)로 시작
종류 | 의미 | 종류 | 의미 |
\b | 백스페이스 | \r | 캐리지 리턴 |
\t | 탭 | \" | 이중 인용부호 |
\n | 라인피드 | \' | 단일 인용부호 |
\f | 폼피드 | \\ | 백슬래시 |
논리 리터럴과 boolean 타입
- 논리 리터럴 : true, false (2개)
- boolean 타입 변수에 치환하거나 조건문에 이용
boolean a = true;
boolean b = 10 > 0; // 10>0가 참이므로 b 값은 true
boolean c = 1; // 타입 불일치 오류. C/C++와 달리 자바에서 1,0을 참, 거짓으로 사용 불가
while(true) { // 무한 루프. while(1)로 사용하면 안 됨
...
}
1과 0을 사용할 수 없다는 것에 주의하자.
null 리터럴
- 레퍼런스에 대입해 사용
int n = null;// 기본 타입에 사용 불가
String str = null;
'Java' 카테고리의 다른 글
[Java] 연산자 (0) | 2021.10.17 |
---|---|
[Java] 타입 변환, 입력 스트림, Scanner, 원의 넓이 구하기 (0) | 2021.10.16 |
[Java] 자바 프로그래밍 기초, 식별자, 키워드 (0) | 2021.10.16 |
[Java] 자바 프로그래밍 기초 - 메모장으로 코딩하기 (0) | 2021.10.16 |