☆ 각 문제의 정답은 [더보기] 를 눌러 확인 할 수 있다.
[2-1] 다음 표의 빈 칸에 8개의 기본형(primitive type)을 알맞은 자리에 넣으시오.
종류 크기 | 1byte | 2byte | 4byte | 8byte |
논리형 | ||||
문자형 | ||||
정수형 | ||||
실수형 |
[정답]
종류 크기 | 1byte | 2byte | 4byte | 8byte |
논리형 | boolean | |||
문자형 | char | |||
정수형 | byte | short | int | long |
실수형 | float | double |
[2-2] 다음 중 키워드가 아닌 것은?(모두 고르시오)
- if
- True
- NULL
- Class
- System
[정답] 2,3,4,5
[해설] 2번의 경우 Java에서는 대소문자를 구별하기에 true는 키워드이지만 True는 키워드가 아니다.
아래는 java에서 사용하는 키워드이다.
abstract | default | if | package | this |
assert | do | goto | private | throw |
boolean | double | implements | protected | throws |
break | else | import | public | transient |
byte | enum | instanceof | return | true |
case | extends | int | short | try |
catch | false | interface | static | void |
char | final | long | strictfp | volatile |
class | finally | native | super | while |
const | float | new | switch | |
continue | for | null | synchronized |
[2-3] char 타입의 변수에 저장될 수 있는 정수 값의 범위는?(10진수로 적으시오)
[정답] 0 ~ 65535
[해설] char는 2byte(2*8=16bit)이므로 '2의 16제곱' 개의 값을 표현할 수 있다.
2의 16제곱은 65536개이며, 0 을 포함해야하므로 0~65535(모두 65536개)가 char범위가 된다.
[2-4] 다음중 변수를 잘못 초기화 한 것은? (모두 고르시오)
- byte b = 256;
- char c='';
- char answer = 'no';
- float f = 3.14
- double d = 1.4e3f;
[정답] 1,2,3,4
[해설]
1. byte의 범위(-128 ~ 127)를 넘는 값으로 초기화 할 수 없다.
2. char는 반드시 한 개의 문자를 지정해야한다.
3. char에 두 개의 문자를 저장할 수 없다.
4. 3.14는 3.14d의 생략된 형태이다. 접미사 f 를 붙이거나 형변환이 필요하다.
5. double(8byte)에 float값(4byte)을 넣는 것이므로 가능하다.
=======
접미사가 있는 자료형은 long, float, double 모두 세 개의 자료형이며, 접미사는 대소문자를 구별하지 않는다. double은 접미사를 생략할 수 있으므로 float리터럴에는 반드시 접미사를 붙여야한다.
[2-5] 다음의 문장에서 리터럴 변수 상수 키워드를 적으시오.
int i = 100; long l = 100L; final float PI = 3.14f; |
-리터럴 : -키워드 : -변수 : -상수 : |
[정답]
-리터럴 : 100, 100L, 3.14f
-키워드 : int, long, final, float
-변수 : i, l
-상수 : PI
[2-6] 다음 중 기본형(primitive type) 이 아닌 것은 ?
1. int
2. Byte
3. double
4. boolean
[정답] 2
[해설] 기본형은 boolean, byte, short, char, int, long, float, double 모두 8개이다. 그 외의 타입은 모두 참조형이다.
[2-7] 다음 문장들의 출력결과를 적으세요. 오류가 있는 문장의 경우, 괄호 안에 '오류' 라고 적으시오.
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
오류
[해설] 오류의 이유 = true는 boolean type이고 null 은 null type이라 출력오류가 뜬다.
문자열과 덧셈연산을 하면 그 결과는 항상 문자열이 된다.
문자열 + any type → 문자열 + 문자열 → 문자열 any type + 문자열 → 문자열 + 문자열 → 문자열 |

하지만 문자와 문자의 덧셈연산의 결과는 int 형 정수값이 된다. 왜냐하면 int형보다 작은 타입 (byte, char, short)은 int형으로 변환된 후에 덧셈연산이 진행되기 때문이다.
'A' + 'B'의 경우, char + char → int + int → int의 과정을 통해 최종결과는 int형 정수값이 된다.
'A' + 'B' → 65 + 66 → 131 // 'A' 와 'B'의 문자 아스키코드 값은 각각 65 와 66이다.
'1' + 2 → 49 + 2 → 51 // '1' 의 아스키코드 값은 49이다.
'1' + '2' → 49 + 50 → 99 // '1' 과 '2' 의 아스키코드 값은 49 와 50 이다.
[2-8] 아래는 변수 x , y, z의 값을 서로 바꾸는 예제이다. 결과와 같이 출력되도록 (1)에 알맞은 코드를 넣으시오
public class Exercise2_8 {
public static void main(String[] args) {
int x = 1;
int y = 2;
int z = 3;
/*===============================
(1) 알맞은 코드를 넣어 완성하시오.
===============================*/
System.out.println("x=" +x);
System.out.println("y=" +y);
System.out.println("z=" +z);
}
}
[실행결과] x=2 y=3 z=1 |
[정답]
int tmp = x;
x = y;
y = z;
z = tmp;
'1. JAVA > 자바의 정석' 카테고리의 다른 글
자바의 정석 기초편 Chapter 2 < 변수 > (0) | 2022.04.02 |
---|---|
자바의 정석 기초편 #1 < 왜 자바인가? > (0) | 2022.04.02 |