Java

[Java] Java의 정석(기초편) 연습문제 풀이Chapter02

ab0utcom 2026. 1. 7. 18:46

2-1

  1 byte 2 byte 4 byte 8 byte
논리형 boolean      
문자형   char    
정수형 byte short int long
실수형     float double

2-2

다음중 키워드가 아닌 것은?

① if

② True

③ NULL

④ Class

⑤ System

 

Ans) 4번, 5번

왜냐하면 키워드가 아니고 클래스 이름이기 때문


2-3

char 타입의 변수에 저장될 수 있는 값의 범위는? (10진수로)

 

Ans) -32768 ~ +32767

왜냐하면 2byte 타입은 16bit로 표현되는데, 첫번째 부호비트를 제외하면 15bit로 표현되고, 따라서 $- 2^{15} $ ~ $ 2^{15}-1$로 표현되기 때문


2-4

다음 중 변수를 잘못 초기화 한것은? (모두)

① byte b = 256;

② char c = '';

③ char answer  = 'no';

④ float f = 3.14

⑤ double d = 1.4e3f;

 

Ans) 1, 2, 3, 4

1: byte는 1byte(8 bit)자료형이고, 부호 비트 1개를 제외하고 양수는 $2^7 - 1$까지만 저장이 가능하기 때문에 256은 저장이 불가하다.

2. 빈 단일 문자 ''는 허용되지 않음

3. char 형에는 단일 문자만 허용

4. 실수 리터럴은 기본적으로 double형이기에, float로 정의하려면 접미사 f를 붙여야 함. 오타일 수도 있으나, 세미콜론(;)도 빠져있음

5. 1.4e3f는 float형인데, float에서 double로는 자동 형변환이 가능하다. 따라서 옳음


2-5

다음의 문장에서 리터럴, 변수, 상수, 키워드를 적으시오.

int i = 100;
long l = 100L;
final float PI = 3.14f;

 

Ans)

리터럴: 100, 100L, 3.14f

키워드: int, long, final, float

변수: i, L

상수: PI


2-6

다음 중 기본형이 아닌 것은?

① int

② Byte

③ double

④ boolean

 

Ans) Byte

Byte가 아니라 byte임.


2-7

다음 문장들의 출력 결과를 적으세요. 오류가 있는 문장의 경우, 괄호 안에 '오류'라고 적으시오.

① System.out.println("1" + "2")   $\to$ (       12         )

② System.out.println(true + "")   $\to$ (      true         )

③ System.out.println('A' + 'B')    $\to$ (       131         )

④ System.out.println('1' + 2)    $\to$ (       51         )

⑤ System.out.println('1' + '2')  $\to$ (       99         )

⑥ System.out.println('J' + "ava")  $\to$ (       Java         )

⑦ System.out.println(true + null)  $\to$ (       오류        )

 

Ans) 문제가 좀 급발진인데, char형은 Java 내부적으로 유니코드 정수값으로 바뀌어서 저장된다. +연산자가 숫자 연산에 사용되면 char는 자동으로 int로 변환된다.

1: 문자열끼리 합이므로 단순 연결

2: true가 문자열 "true"로 바뀐다

3: 'A'의 유니코드 65와, 'B'의 유니코드 66의 합인 131

4: '1'의 유니코드 49와, 정수 2의 합인 51

5: '1'의 유니코드 49와, '2'의 유니코드 50의 합인 99

6: 하나라도 문자열이 포함되면, +가 숫자 연산이 아니라 문자열 연결 연산이 된다. 'J'가 "J"로 변환되고 연결된다,

7: bool은 null이랑 못더한다


2-8

public class Main {
	public static void main(String[] args) {
		 int x = 1;
		 int y = 2;
		 int z = 3;
		 
		 /*
		 int temp = x;
		 x = y;
		 y = z;
		 z = temp;
		 */
		 
		 System.out.println("x=" + x);
		 System.out.println("y=" + y);
		 System.out.println("z=" + z);
	}
}