연습문제 2-1 다음 표의 빈칸에 8개의 기본형(primitive type)을 알맞은 자리에 넣으시오.

 

▼ 나의 풀이

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

 

 

 

연습문제 2-2 주민등록번호를 숫자로 저장하고자 한다. 

이 값을 저장하기 위해서는 어떤 자료형(data type)을 선택해야 할까? 

regNo라는 이름의 변수를 선언하고 자신의 주민등록번호로 초기화하는 한 줄의 코드를 적으시오.

 

▼ 나의 풀이

반드시 숫자여야 한다면, long regNo = 861225-2123455L; (long의 접미사 L을 잊지말자)

00년생을 저장하려면, String regNo = 001225-2123455;

 

 

 

연습문제 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)이 아닌 것은?
a. int
b. Byte
c. double
d. boolean

 

▼ 나의 풀이

b. Byte (Java는 대소문자를 구분하기 때문에 기본형이려면 byte)

 

 

 

연습문제 2-5 다음 문장들의 출력 결과를 적으세요. 오류가 있는 문장의 경우, 괄호 안에 ‘오
류’라고 적으시오.
System.out.println(“1” + “2”) → ( )
System.out.println(true + “”) → ( )
System.out.println(‘A' + 'B') → ( )
System.out.println('1' + 2) → ( )
System.out.println('1' + '2') → ( )
System.out.println('J' + “ava”) → ( )
System.out.println(true + null) → ( )

 

▼ 나의 풀이

12, true, 131, 51, 99, Java, 오류

 

 

 

연습문제 2-6 다음 중 키워드가 아닌 것은? (모두 고르시오)
a. if
b. True
c. NULL
d. Class
e. System

 

▼ 나의 풀이
b, c, d, e (Class와 System는 클래스일 뿐 키워드(예약어)는 아님)

 

 


연습문제 2-7 다음 중 변수의 이름으로 사용할 수 있는 것은? (모두 고르시오)
a. $ystem
b. channel#5
c. 7eleven
d. If
e. 자바
f. new
g. $MAX_NUM
h. hello@com

 

▼ 나의 풀이

a, d, e, g

 

 

 

연습문제 2-8 참조형 변수(reference type)와 같은 크기의 기본형(primitive type)은? (모두 고르시오)
a. int
b. long
c. short
d. float
e. double

 

▼ 나의 풀이

a, d

 

 


연습문제 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, e

a. int는 4byte, byte는 1byte이므로 반드시 형변환 필요
b. byte는 1byte, char는 2byte이지만 범위가 달라서 형변환 필요
c. char, short은 2byte이지만 범위가 달라서 형변환 필요
d. float는 4byte, long은 8byte이지만 실수 자료형의 범위가 커서 생략 가능
e. char은 2 byte, int은 4byte이므로 생략 가능

 



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

 

▼ 나의 풀이
char 타입 : 2 byte = 16 bit
표현 가능 개수 : 2^16 = 65,536개

값의 범위 : 0 ~ 65,535

 

 

 

연습문제 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

- byte 저장 가능한 값의 범위 : -2⁷~2⁷-1 또는 -128~127

- char 타입은 빈문자로 초기화할 수 없다. 공백(스페이스)은 가능하다.

- double의 리터럴은 접미사를 생략할 수 있으므로 long과 float의 리터럴은 접미사를 생략할 수 없다.

 

 

 

연습문제 2-12 다음 중 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

 

 


연습문제 2-13 다음 중 타입과 기본값이 잘못 연결된 것은? (모두 고르시오)
a. boolean - false
b. char - '\u0000'
c. float - 0.0
d. int - 0
e. long - 0
f. String - ""

 

▼ 나의 풀이

c. float - 0.0f
e. long - 0L
f. String - null

 

 

 

★ 암기 부족한 부분

- char + char → int + int → int

- 암기해야 할 유니코드 값 : '0' = 48, 'A' =  65, 'a' = 98 , '가' = 44032

- 식별자 명명 규칙 : 숫자로 시작 불가, 특수기호 $와 _만 사용 가능

- 참조형 변수는 4 byte

- double의 리터럴은 접미사를 생략할 수 있으므로 long과 float의 리터럴은 접미사를 생략할 수 없다.
- char 타입은 빈문자로 초기화 불가능 

- String 타입은 빈 문자열로 초기화 가능

- 데이터 타입별 기본값

 boolean - false
 char - '\u0000'
 byte - 0
 short - 0
 int - 0
 long - 0L
 float - 0.0f
 double - 0.0d 또는 0.0
 String - null