일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 분석함수
- 자바의정석 연습문제
- 인프런
- 불친절한SQL프로그래밍
- 계층 쿼리
- 스프링입문
- inflearn
- 시큐어코딩
- Numpy
- 서블릿
- 스프링 부트와 JPA
- 불친절한 SQL 프로그래밍
- 자바의정석
- 스프링MVC
- 자바공부
- 스프링
- java
- JPA
- 제네릭
- REGEXP_SUBSTR
- DispatcherServlet
- 이것이자바다
- Java의정석
- Secure Coding
- 스프링 핵심원리
- Python
- docker
- 김영한
- Spring
- 자바연습문제
- Today
- Total
Continuous Challenge
[Java의 정석_연습문제 풀이] Chapter2 변수 본문
[2-1] 다음 표의 빈칸에 8개의 기본형(primitive type)을 알맞은 자리에 넣으시오.
답:
종류/크기 | 1byte | 2byte | 4byte | 8byte |
논리형 | boolean | |||
문자형 | char | |||
정수형 | byte | short | int | long |
실수형 | float | double |
[2-2] 주민등록번호를 숫자로 저장하고자 한다. 이 값을 저장하기 위해서는 어떤 자료형(data type)을 선택해야 할까? regNo라는 이름의 변수를 선언하고 자신의 주민등록번호로 초기화하는 한 줄의 코드를 적으시오.
답:
long regNo = 9400001234567L;
해설 : 주민등록번호는 13자리의 정수이기 때문에 int형의 범위를 넘어서는 값이다. 그래서 long형을 사용해야 한다. 그리고 리터럴의 접미사 'L'을 잊어서는 안 된다.
[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
해설 : 기본형은 boolean, byte, short, char, int, long, float, double 모두 8개이다. 그 외의 타입은 모두 참조형(reference type)이다.
[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) → 오류
해설 : 문자열과 덧셈 연산을 하면 그 결과는 항상 문자열이 된다. 하지만 문자와 문자의 덧셈 연산의 결과는 int형 정수 값이 된다. 왜냐하면 int형보다 작은 타입(byte, char, short)은 int형으로 변환된 후에 덧셈 연산이 진행되기 때문이다.
'A' + 'B'의 경우, char + char → int + int → int의 과정을 통해 최종 결과는 int형 정수 값이 된다.
[2-6] 다음 중 키워드가 아닌 것은? (모두 고르시오)
a. if
b. True
c. NULL
d. class
e. System
답 : b, c, d, e
해설 : Java에서는 대소문자를 구별하기 때문에 true는 키워드이지만 True는 키워드가 아니다.
다음은 Java에서 사용하는 키워드이다.
[2-7] 다음 중 변수의 이름으로 사용할 수 있는 것은? (모두 고르시오)
a. $ystem
b. channel#5
c. 7eleven
d. If
e. 자바
f. new
e. $MAX_NUM
h. hello@com
답 : a, d, e, g
해설 : 변수의 이름(identifier)은 다음과 같은 규칙이 있다.
1. 대소문자가 구분되며 길이에 제한이 없다.
- True와 true는 서로 다른 것으로 간주된다.
2. 예약어를 사용해서는 안 된다.
3. 숫자로 시작해서는 안 된다.
4. 특수문자는 '_'와 '$'만을 허용한다.
[2-8] 참조형 변수(reference type)와 같은 크기의 기본형(primitive type)은? (모두 고르시오)
a. int
b. long
c. short
d. float
e. double
답: a, d
해설 : 모든 참조형 변수는 4byte
[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
[2-10] char타입의 변수에 저장될 수 있는 정수 값의 범위는? (10진수로 적으시오)
답 : 0~65535
[2-11] 다음 중 변수를 잘못 초기화한 것은? (모두 고르시오)
a. byte b = 256; //byte의 범위(-128~127)를 넘는 값으로 초기화할 수 없음
b. char c = ' '; //char는 반드시 한 개의 문자를 지정해야 함
c. char answer = 'no'; //char에 두 개의 문자를 지정할 수 없음
d. float f = 3.14;
e. double d = 1.4e3f; //double(8byte)에 float(4byte)를 넣는 것이므로 OK
답: a, b, c, d
해설 : 접미사가 있는 자료형은 long, float, double 모두 세 개의 자료형이며, 접미사는 대소문자를 구별하지 않는다. double은 접미사를 생략할 수 있으므로 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
해설 : 배열을 의미하는 기호인 '[]'는 타입 뒤에 붙여도 되고 변수명 뒤에 붙여도 되기 때문에 'String[] args'와 'String args[]'는 같은 뜻이다.
[2-13] 다음 중 타입과 기본값이 잘못 연결된 것은? (모두 고르시오)
a. boolean - false
b. char - '\u0000'
c. float - 0.0 //float는 0.0f가 기본값 0.0은 0.0d에서 접미사 d가 생략된 것.
d. int - 0
e. long - 0 //long은 0L이 기본값
f. String - " " //String은 참조형 타입. 모든 참조형 타입의 기본값은 null
답: c, e, f
'Study > Java의 정석' 카테고리의 다른 글
[Java의 정석_연습문제 풀이] Chapter7 객체지향 프로그래밍2 (1) | 2019.10.18 |
---|---|
[Java의 정석_연습문제 풀이] Chapter6 객체지향 프로그래밍1 (1) | 2019.10.17 |
[Java의 정석_연습문제 풀이] Chapter5 배열 (1) | 2019.10.10 |
[Java의 정석_연습문제 풀이] Chapter4 조건문과 반복문 (0) | 2019.10.08 |
[Java의 정석_연습문제 풀이] Chapter3 연산자 (0) | 2019.10.07 |