카테고리 없음

[Java] 이것이 자바다 확인문제 (2장. 변수와 타입)

wookhyung 2021. 5. 27. 14:18
728x90

1. 자바에서 변수에 대한 설명 중 틀린 것은 무엇입니까?

1) 변수는 하나의 값만 저장할 수 있다.

2) 변수는 선언 시 사용한 타입의 값만 저장할 수 있다.

3) 변수는 변수가 선언된 중괄호( {} ) 안에서만 사용 가능하다.

4) 변수는 초기값이 저장되지 않은 상태에서 읽을 수 있다.

 

답 : 4

 

 

2. 변수 이름으로 사용 가능한 것을 모두 선택하세요.

1. modelName

2. class

3. 6hour

4. $value

5. _age

6. int

 

답: 1, 4, 5

 

명명규칙(p.31)

- 첫 번째 글자는 문자이거나 '$', '_' 이어야 하고 숫자로 시작할 수 없다. (필수)

- 영어 대소문자가 구분된다. (필수)

- 첫 문자는 영어 소문자로 시작하되, 다른 단어가 붙을 경우 첫 문자를 대문자로 한다. (관례)

- 문자 수(길이)의 제한은 없다.

- 자바 예약어는 사용할 수 없다. (필수)

 

 

3. 다음 표의 빈칸에 자바의 기본 타입(Primitive Type) 8개를 적어보세요.

크기/타입 1byte 2byte 4byte 8byte
정수타입 (byte) (short)
(char)
(int) (long)
실수타입     (float) (double)
논리타입 (boolean)      

 

 

4. 다음 코드에서 타입, 변수 이름, 리터럴에 해당하는 것을 적어 보세요.

int age;
age = 10;
double price = 3.14;

타입 : int, double

변수 이름 : age, price

리터럴: 10, 3.14

 

 

5. 자동 타입 변환에 대한 내용이다. 컴파일 에러가 발생하는 것은 무엇입니까?

byte byteValue = 10;
char charValue = 'A';

1) int intValue = byteValue;

2) int intValue = charValue;

3) short shortValue = charValue;

4) double doubleValue = byteValue;

 

답: 3

 

자동 타입 변환(p.49~50)

- 프로그램 실행 도중 자동적으로 타입 변환이 일어나는 것

- 작은 크기를 가지는 타입이 큰 크기를 가지는 타입에 저장될 때 발생

- 큰 크기 타입 = 작은 크기 타입

- byte(1) < short(2) < int(4) < long(8) < float(4) < double(8)

- int(4) < float(4) : 표현할 수 있는 값의 범위가 float이 더 크기 때문에 float이 더 큰 타입

- 예외 - char 타입 : char의 범위가 0~65535이므로 음수가 저장될 수 없음 

        -> 음수가 저장될 수 있는 byte 타입을 char 타입으로 자동 변환 시킬 수 없음

 

 

6. 강제 타입 변환(Casting)에 대한 내용입니다. 컴파일 에러가 발생하는 것은 무엇입니까?

int intValue = 10;
char charValue = 'A';
double doubleValue = 5.7;
String strValue = "A";

1) double var = (double) intValue;

2) byte var = (byte) intValue;

3) int var = (int) doubleValue;

4) char var = (char) strValue;

 

답: 4

 

강제 타입 변환(p.52)

- 강제적으로 큰 데이터 탕비을 작은 데이터 타입으로 쪼개어서 저장하는 것

 

+) String -> char

charAt() 함수 : String 타입의 데이터(문자열)에서 특정 문자를 char 타입으로 변환할 때 사용하는 함수

char var = strValue.charAt(0);

 

7. 변수를 잘못 초기화한 것은 무엇입니까?

1) int var1 = 10;

2) long var = 10000000000L;

3) char var3 = "; //작은 따옴표 두 개가 붙어 있음

4) double var4 = 10;

5) float var5 = 10;

 

답: 3

 

공백 포함 초기화(p.44)

char c = '';  // 컴파일 에러
char c = ' ';

String 변수는 큰 따옴표(") 두 개를 연달아 붙인 빈 문자를 대입해도 괜찮다.

String str = "";

 

 

8. 연산식에서의 타입 변환 내용입니다. 컴파일 에러가 생기는 것은 무엇입니까?

byte byteValue = 10;
float floatValue = 2.5F;
double doubleValue = 2.5;

1) byte result = byteValue + byteValue;

2) int result = 5 + byteValue;

3) float result = 5 + floatValue;

4) double result = 5 + doubleValue;

 

답: 1

 

p. 58

자바는 정수 연산일 경우 int 타입을 기본으로 한다. 그 이유는 피연산자를 4byte 단위로 저장하기 때문이다. 크기가 4byte보다 작은 타입(byte, char, short)은 4byte인 int 타입으로 변환된 후 연산이 수행된다. 따라서 연산의 결과도 int 타입이 된다.

 

+) 연산식에서의 자동 타입 변환

- 연산은 기본적으로 같은 타입의 피연산자 간에만 수행되기 때문에 서라 다른 타입의 피연산자가 있을 경우 두 피연산자 중 크기가 큰 타입으로 자동 변환된 후 연산을 수행한다.