logo

자바의정석-2장-변수

2023-08-02Updated 2026-03-095 min read·
#java
#자바의정석
#programming
#variables

자바의 정석 교재 2장 변수 파트의 연습문제와 해설, 기본형 데이터 타입과 변수 선언 방법 정리

Summary

자바의 정석 2장 변수(Variables) 파트의 연습문제와 해설이다. 자바의 8가지 기본형(primitive type) 데이터 타입과 특성, 변수 선언 방법, 형변환 규칙 등을 다룬다. 각 문제를 통해 변수의 개념과 자바 언어의 데이터 타입 시스템을 체계적으로 이해할 수 있다.

연습문제

2-1. 기본형(primitive type) 분류

다음 표의 빈칸에 8개의 기본형(primitive type)을 알맞은 자리에 넣으시오.

종류 / 크기1 byte2 byte4 byte8 byte
논리형boolean
문자형char
정수형byteshortintlong
실수형floatdouble

2-2. 적절한 데이터 타입 선택

주민등록번호를 숫자로 저장하고자 한다. 이 값을 저장하기 위해서는 어떤 자료형(data type)을 선택해야 할까? regNo라는 이름의 변수를 선언하고 자신의 주민등록번호로 초기화하는 한 줄의 코드를 적으시오.

String regNo = "012345-6789012";

2-3. 프로그래밍 요소 구분

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

int i = 100;  
long l = 100L;  
final float PI = 3.14f;
  • 리터럴: 100, 100L, 3.14f
  • 변수: i, l
  • 키워드: int, long, final, float
  • 상수: PI

2-4. 기본형(primitive type) 식별

다음 중 기본형(primitive type)이 아닌 것은?

  • a. int
  • b. Byte
  • c. double
  • d. boolean

정답: b. Byte (대문자로 시작하는 Byte는 래퍼 클래스)

자바의 기본형 타입과 특성:

타입할당되는 메모리 크기기본값데이터의 표현 범위
논리형
boolean1 bytefalsetrue, false
정수형
byte1 byte0-128 ~ 127
short2 byte0-32,768 ~ 32,767
int(기본)4 byte0-2,147,483,648 ~ 2,147,483,647
long8 byte0L-9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807
실수형
float4 byte0.0F(3.4 × 10^-38) ~ (3.4 × 10^38)의 근사값
double(기본)8 byte0.0(1.7 × 10^-308) ~ (1.7 × 10^308)의 근사값
문자형
char2 byte (유니코드)'\u0000'0 ~ 65,535

2-5. 연산 결과 예측

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

System.out.println("1" + "2");     // 12  
System.out.println(true + "");     // true  
System.out.println('A' + 'B');     // 131  
System.out.println('1' + 2);       // 51  
System.out.println('1' + '2');     // 99  
System.out.println('J' + "ava");   // Java  
System.out.println(true + null);   // 오류

2-6. 키워드 식별

다음 중 키워드가 아닌 것은? (모두 고르시오)

  • a. if
  • b. True
  • c. NULL
  • d. Class
  • e. System

정답: b. True, c. NULL, d. Class, e. System
(자바 키워드는 모두 소문자이며, true/null은 리터럴이고, System은 클래스)

2-7. 유효한 변수명 식별

다음 중 변수의 이름으로 사용할 수 있는 것은? (모두 고르시오)

  • a. $ystem
  • b. channel#5
  • c. 7eleven
  • d. If
  • e. 자바
  • f. new
  • g. $MAX_NUM
  • h. hello@com

정답: a. $ystem, d. If, e. 자바, g. $MAX_NUM
(변수명은 문자, $, _로 시작해야 하며, 키워드는 사용 불가)

2-8. 참조형 변수와 같은 크기의 기본형

참조형 변수(reference type)와 같은 크기의 기본형(primitive type)은? (모두 고르시오)

  • a. int
  • b. long
  • c. short
  • d. float
  • e. double

정답: a. int, d. float
(참조형 변수는 4바이트 크기를 가짐)

2-9. 형변환 생략 가능 여부

다음 중 형변환을 생략할 수 있는 것은? (모두 고르시오)

byte b = 10;
char ch = 'A';
int i = 100;
long l = 1000L;
  • a. b = (byte)i;
  • b. ch = (char)b;
  • c. short s = (short)ch;
  • d. float f = (float)l;
  • e. i = (int)ch;

정답: d. float f = (float)l;, e. i = (int)ch;
(작은 타입에서 큰 타입으로의 변환은 자동 형변환 가능)

2-10. char 타입의 범위

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

정답: 0 ~ 65535
(char는 2바이트(16비트) 부호 없는 정수로, 2^16 = 65536가지 값을 표현)

2-11. 변수 초기화 오류 식별

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

  • a. byte b = 256;
  • b. char c = '';
  • c. char answer = 'no';
  • d. float f = 3.14;
  • e. double d = 1.4e3f;

정답: a, b, c, d

  • a: byte 범위(-128~127) 초과
  • b: char는 빈 문자('')가 아닌 최소 하나의 문자 필요
  • c: char는 단일 문자만 가능
  • d: float에는 f 접미사 필요 (3.14f)

2-12. main 메서드 선언부 식별

다음 중 main 메서드의 선언부로 알맞은 것은? (모두 고르시오)

  • a. public static void main(String[] args)
  • b. public static void main(String args[])
  • c. public static void main(String[] arv)
  • d. public void static main(String[] args)
  • e. static public void main(String[] args)

정답: a, b, c, e
(d는 접근 제어자(public)와 지정자(static)의 순서가 잘못됨)

2-13. 타입과 기본값 연결

다음 중 타입과 기본값이 잘못 연결된 것은? (모두 고르시오)

  • a. boolean - false
  • b. char - '\u0000'
  • c. float - 0.0
  • d. int - 0
  • e. long - 0
  • f. String - ""

정답: c, e, f

  • c: float의 기본값은 0.0f
  • e: long의 기본값은 0L
  • f: String의 기본값은 null (참조형)
Comments