▶문제1
주민번호를 출력하고자한다.
이 값을 저장하기 위해서는 어떤 자료형(data type)을 선택해야 할까?
regNo라는 이름의 변수를 선언하고 자신의 주민등록번호로 초기화 하는 한 줄의 코드를 적으시오.
[정답]
1
2
3
4
5
6
7
|
public class Practice {
public static void main(String[] args) {
int regNo = 9502038593029;
long regNo = 9504030293019L;
}
}
|
cs |
[풀이]
-. int는 4byte로 대략 10억까지의 값만 담을 수 있기에 주민번호같은 큰 수는 long으로 변수를 선언한다.
-. int를 콘솔에 출력시키면 type int is out of range라는 오류가 발생한다.
▶문제2
다음의 문장에서 리터럴, 변수, 상수, 키워드를 구분해서 적으시오.
int i = 100;
long l =100L;
final float PI = 3.14f;
[정답]
-. 리터럴: 100/ 100L/ 3.14f
-. 변수: i/l
-. 상수: Pl
-. 키워드: int/ long/ final float
[풀이]
-. 키워드는 미리 예약해놓은 단어를 뜻한다. 특별한 의미를 가지고 있는 명령어로 if, switch, void, byte, public, package, null....등등 java에서 어떠한 의미가 있는 단어는 모두 키워드이다.
▶문제3
다음 중 기본형(primitive type)이 아닌 것은?
a. int
b. Byte
c. double
d. boolean
[정답]
b. Byte
[풀이]
-. Java는 대소문자 구별을 정확하게 하는 프로그램이다.
-. Byte => byte가 되어야한다.
-. 반드시 첫문자를 대문자로 표기해야하는 경우
a) Class 선언할 때
b) 카멜표기법 사용할 때
▶문제4
다음 문장들의 출력결과를 적으세요.
오류가 있는 문장의 경우, 괄호 안에 ‘오류’라고 적으시오.
[정답]
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
|
public class Practice {
public static void main(String[] args) {
1) System.out.println("1" + "2"); //→ ( 12 )
2) System.out.println(""+ true);// → ( true )
3) int A= 65, B= 66;
System.out.println(A + B);// → ( 131 )
4) int i = 49;
System.out.println(i + 2);// → ( 51 )
5)int k = 49, j = 50;
System.out.println(k + j);// → ( 99 )
6)System.out.println('J' + "ava");// → ( Java )
7)System.out.println(true + null);// → ( 오류 )
} }
|
cs |
[풀이]
-. 1) 문자열 + 문자열
-. 2) "" 사용방법: 변수 초기화 시킬 때, 문자 형변환 할 때
-. 6) Char과 String의 만남으로 문자열 + 문자열
-. 7) null은 값이 없다로 0조차 아니다라는 의미이다. 값자체가 없기에 출력이 불가하다.
만약 true + "4"였다면 true4로 정상출력 가능함
▶문제5
다음 중 키워드가 아닌 것은?(모두 고르시오)
a. if
b. True
c. NULL
d. Class
e. system
[정답]
a,b,c,e
[풀이]
자바는 대소문자를 구분하는 프로그램이다. b는 true, c는 null d는 calss 가 되어야 키워드가 될 수 있으며, e system은 아무런 의미가 없는 단어로 키워드가 아니다.
▶문제6
다음 중 변수의 이름으로 사용할 수 있는 것은?
a. $ystem.
b. channel#5
c. 7eleven
d. if
e. 자바
f. new
g. $MAX_NUM
h. hello@com
[정답]
a, e
[풀이]
b. 사용할 수 없는 특수문자
c. 숫자로 시작 불가능
d. 예약어 사용 불가능
e. 한글사용은 가능하나 권장하지 않음
f. 예약어 사용 불가능
g. 자바 대문자는 카멜표기법을 위해 소문자로 사용한다
h. 사용할 수 없는 특수문자
▶문제7
참조형변수(reference type)과 같은 크기의 기본형(primitive type)은?
a. int
b. long
c. short
d. float
e. double
[정답]
a. d (4byte)
b. e (8byte)
-. 풀이(https://velog.io/@doli0913/%EA%B8%B0%EB%B3%B8%ED%98%95%EA%B3%BC-%EC%B0%B8%EC%A1%B0%ED%98%95)
기본형과 참조형
자바의 값의 종류(데이터의 타입)은 크게 "기본형" 과 "참조형"으로 나눌 수 있다. 참조형은 우리가 작성하는 "클래스" 타입으로, 참조 변수에 저장된다. 참조변수는 4byte 또는 8byte 의 데이터를 저
velog.io
RAM 내부의 논리적 메모리공간은 각 1byte 로 구성되며 양수를 인덱스로 가진다.
참조변수는 "메모리주소"를 저장하는 변수이므로, 참조변수의 크기가 4byte 라는 것은 양수로 2^32.
즉, 약 40억가지의 값을 표현할 수 있는 것인데, 메모리주소로 보았을때에, 약 40억개의 인덱스, 40억 byte 의 메모리공간[4GB]분량의 메모리주소를 저장할 수 있게 된다
-> OS 와 JVM 의 사용 메모리를 제외한 자바 프로그램 사용메모리는 2G도 안된다.
최근에는 64bit(8byte) OS 나 64bit(8byte) JVM 을 사용하므로, 참조변수는 8byte 의 크기를 가지며, 표현할 수 있는 값의 범위는 2^64 이다.
그러므로 참조 변수가 다룰 수 있는 메모리공간은 160경 byte, 1600만 TB 만큼의 메모리공간이다. 하지만 실제로 사용할 수 있는 메모리공간은 TB 정도이다.
▶문제9
다음중 변수를 잘못 초기화 한 것은? (모두 고르시오)
a. byte b = 256;
b. char c = '';
c. char answer = 'no';
d. float f = 3.14
e. double d = 1.4e3;
[정답]
a
[풀이]
a) byte는 2byte로 범위를 넘는 값으론 초기화 불가능
b) char은 공백 포함 한개 이상의 문자를 지정해야한다
c) char 은 문자 하나 'n'만 저장 가능
d) 3.14f 필요
e) double은 실수형으로 문자 e 저장 불가능
▶문제10
다음 중 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)
[정답]
d
[풀이]
void는 반드시 main 앞에 있어야한다.
▶문제11
다음 중 타입과 기본값이 잘못 연결된 것은? (모두 고르시오)
a. boolean - false
b. char - '\u0000'
c. float - 0.0
d. int - 0
e. long - 0
f. String - ""
[정답]
b,c,e
[풀이]
b) 문자 하나만 들어가야함
c) 0.0f
e) longL
출처
'오답노트 > Java' 카테고리의 다른 글
배열 연습문제 (0) | 2022.03.11 |
---|---|
메서드 연습문제 (0) | 2022.03.11 |
연산자 연습문제 (0) | 2022.03.07 |
반복문 false 처리 생각하기_주사위 예제 (0) | 2022.03.01 |
for 조건문 사용 중 System.out.println 위치_3의 배수 총 합 예제 (0) | 2022.03.01 |