2장

1. 변수, 상수, 리터럴 그리고 키워드

  • 변수(variable): 하나의 값을 저장하기 위한 공간

  • 상수(constant): 값을 한 번만 저장할 수 있는 공간

  • 리터럴(literal): 그 자체로 값을 의미

  • 키워드(keyword): 자바에서 정한 예약어

1.1. 변수, 리터럴 그리고 키워드의 타입

변수의 타입

숫자

int(기본형) long

정수(integer)를 저장하기 위한 타입

float double

실수(floating-point number)를 저장하기 위한 타입 (float은 오차없이 7자리, double은 15자리)

문자

char

문자(character)를 저장하기 위한 타입

string

여러 문자(문자열, string)을 저장하기 위한 타입

리터럴의 타입

종류

리터럴

접미사

논리형

false, true

없음

정수형

123, 0b0101, 077, 0xFF, 100L

L

실수형

3.14, 3.0e8, 1.4f, 0x1.0p-1

f, d

문자형

'A', '1', '\n'

없음

문자열

"ABC", "123", "A", "true"

없음

키워드의 타입

분류

키워드

기본 자료형

boolean, byte, char, short, int, long, float, double

접근 지정자

private, protected, public

클래스 관련

class, abstract, interface, extends, implements

객체 관련

new, instanceof, this, super, null

메서드 관련

void, return

제어문

if, else, switch, case, default, for, do, while, break, continue

논리 값

true, false

예외 처리

try, catch, finally, throw, throws

기타

transient, volatile, package, import, synchronized, native, final, static, strictftp

사용되지 않음

goto, const

1.2. 예제

/*
변수의 선언 및 저장
*/
// 키워드: int, x: 정수형 변수, 100: 정수 리터럴
int x = 100;

// 키워드: double, pi: 실수형 변수, 3.14: 실수 리터럴
double pi = 3.14;

// 키워드: char, ch: 문자형 변수, 'a': 문자 리터럴
char ch = 'a'; // 1개 문자 저장

// str: 문자열형 변수, "abc": 문자열 리터럴
String str = "abc" // 여러 문자(0~n개) 저장, 빈 문자열 허용

/*
상수의 선언 및 저장
*/
// 키워드: final/int, MAX_SPEED: 정수형 상수, 10: 정수 리터럴
final int MAX_SPEED = 10;

// 값이 저장된 상수에 다시 값을 할당하면 에러
MAX_VALUE = 20;

2. 기본형과 참조형

  • 기본형(Primitive type): 논리형(boolean), 문자형(char), 정수형(byte, short, int, long), 실수형(float, double) 8개 타입

  • 참조형(Relative type): 기본형을 제외한 나머지 타입으로 객체의 주소 저장.

2.1. 기본형의 크기

1 byte
2 byte
4 byte
8 byte

논리형

boolean

문자형

char

정수형

btye

short

int

long

실수형

float

double

2.2. 기본형이 저장 가능한 값의 범위

MathJax.Hub.Config({ tex2jax: {inlineMath: [['$','$'], ['\\(','\\)']]} });

자료형
저장 가능한 값의 범위
크기

bit

btye

boolean

false, true

8

1

char

'₩u0000' ~ '₩uffff' ($2^{16}-1$, 0 ~ 65535)

16

2

byte

-128 ~ 127 ($2^7$ ~ $2^7-1$)

8

1

short

-32,768 ~ 32,767 ($-2^{15}$ ~ $2^{15}-1$)

16

2

int

-2,147,483,648 ~ 2,147,483,647 ($-2^{31}$ ~ $2^{31}$, 약 $\pm$ 20억)

32

4

long

-9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 ($-2^{63}$~$2^{63}-1$)

64

8

float

-3.4E38 ~ 3.4E38 ($-3.4x10^{38}$ ~ $3.4x10^{38}$)

32

4

double

-1.8E308 ~ 1.8E308($-1.8x10^{308}$ ~ $1.8x10^{308}$)

64

8

3. 오버플로우

  • 오버플로우: 연산 과정에서 특정 타입이 표현할 수 있는 값의 범위를 넘어서는 경우

MathJax.Hub.Config({ tex2jax: {inlineMath: [['$','$'], ['\\(','\\)']]} });

개수
부호
char(부호X)
2진수(16bit)
short(부호O)
부호

65536개 ($2^{16}$개)

0 (1개)

최소값 → 0

0000 0000 0000 0000

0

0 (1개)

양수 ($2^{16}-1$개, 65535개)

0000 0000 0000 0001

1

양수 ($2^{15}-1$개, 32767개)

...

...

...

32766

0111 1111 1111 1110

32766

32767

0111 1111 1111 1111

32767 ← 최대값

32768

1000 0000 0000 0000

-32768 ← 최소값

양수 ($2^{15}$개, 32768개)

32769

1000 0000 0000 0001

-32767

...

...

...

65534

1111 1111 1111 1110

-2

최대값 → 65535

1111 1111 1111 1111

-1

4. 문자열 결합, 타입 변환 그리고 화면 입출력

4.1. 문자열 결합

// int = int + int
System.out.println(1 + 2); // 3 출력

// int = int + char
System.out.println('1' + 2); // 51 출력

// int = char + char
System.out.println('A' + 'B'); // 131 출력
System.out.println('1' + '2'); // 99 출력

// String = boolean/char/String + String
System.out.println(true + ""); // true 출력
System.out.println('J' + "ava"); // Java 출력
System.out.println("1" + "2"); // 13 출력

// error = boolean + null
System.out.println(true + null); // 에러

4.2. 타입 변환

숫자 문자
숫자에 '0'을 더한다.
(char)(3 + '0') → '3'

문자 숫자

문자에서 '0'을 뺀다.

'3' - '0' → 3

숫자 문자열

숫자에 빈 문자열("")을 더한다.

3 + "" → "3"

문자열 숫자

Integer.parseInt() 또는 Double.parseDouble()을 사용한다.

Integer.parseInt("3") → 3 Double.parseDouble("3.14") → 3.14

문자열 문자

charAt(0)을 사용한다.

"3".charAt(0) → '3'

문자 문자열

빈 문자열("")을 더한다.

'3' + "3" → "3"

4.3. 화면 입출력

입력
한 줄씩 사용자에게 입력 받음

출력

괄호 안의 내용을 출력 줄바꿈 없음

괄호 안의 내용을 출력 줄바꿈

괄호 안의 내용을 지정된 형식에 따라 출력

%d

10진(decimal) 정수 형식으로 출력

%x

16진(hexa-decimal)정수 형식으로 출력

%f

부동 소수점(floatiing-point) 형식으로 출력

%c

문자(character)로 출력

%s

문자열(string)로 출력

참고 자료

  • 자바의 정석 - 도우출판

Last updated