1. 키워드란 무엇인가?
· 키워드란? package, public, class, static, void, 등등을 일컫는다. (변수의 이름으로 사용할 수 없음)
(boolean, char, byte, short, int, long, float, double 자료형도 키워드에 포함된다.)
2. 초기화란 무엇인가?
· 초기화란? 해당 변수에 처음으로 값을 할당하는 행위이다.
3. 상수란 무엇이며 변수와의 차이는?
· 상수란? Constant, 단 한 번만 값을 할당할 수 있으며 변경이 불가능하다. (변수 != 상수)
· 중도에 값이 절대 변경되면 안되는 경우 상수를 사용하며 프로그램 도중에는 수정할 수 없다.
· 변수와의 차이점? 상수는 값이 변하지 않지만 변수는 입력할 때마다 값이 변하며,
상수 입력 시 변수(소문자로 표기)와는 다르게 final + 타입 + 변수명(대문자)로 표기해야한다.
ex) 표기방법: final int MAX_SIZE = 100;
· 아래와 같은 경우 오류 발생: 이미 한번 할당된 값이 있기 때문
4. 리터럴(Literals)이란?
· 자료형을 기반으로 표현되는 상수를 의미하며, 무조건 int형으로 인식되기로 약속되어 있다.(32bit)
· 정수형 리터럴: int형, 실수형 리터럴: double형으로 인식 (정밀도 double > float)
※long형 리터럴 표현방법: 정수 + L / l
ex) 아래와 같이 오류가 발생하는 이유?
정수형 리터럴은 자동으로 int(4byte)로 인식하는데 아래의 리터럴(3147483647)은 21억 단위를 넘게되므로
L을 표기해줘야 long 타입으로 인식된다.
※double형 리터럴 표현방법: 실수 + D / d ex) 3.0004999D
※float형 리터럴 표현방법: 실수 + F / f
5. 자동 형변환이란?
※ 자동 형변환이란?
· 두 개의 다른 자료형을 연산하게 되는 경우 자동으로 한 개의 타입을 다른 타입과 동일하게 변환하여 컴파일한다.
(자동 형변환이 일어나는 이유? 연산은 반드시 데이터 타입이 같아야 하기 때문)
· ex1) int형과 long형이 연산되는 경우
· ex2) long형과 double형 연산 시, double형으로 정해지는 이유?
6. 명시적 형변환이란?
※ 명시적 형변환이란?
· 강제적 형변환이라고도 하며, 원칙상으로는 성립되지 않지만 필요한 경우 자료형을 강제적으로 형변환시킨다.
· ex) 아래와 같이 강제형변환을 시켜줘야 오류가 발생하지 않으며, int형으로 변환시켰기 때문에 실수형이 아닌 정수형이 출력
7. 아래와 같이 값이 0.75가 아닌 0이 출력되는 이유를 설명하고 수정하시오.
· a와 b는 int 타입으로 선언되었으므로 double 타입이 아닌 int 타입인 0이 저장된다.
(값을 생각하기 이전에 a와 b가 어떤 자료형인지 먼저 생각해 볼 것!)
· 0.75 값을 출력하기 위해서는
- a 혹은 b를 double타입으로 명시적 형 변환
- int를 double a = 3; 혹은 double b = 4; 로 수정, double과 int가 있다면 double로 자동 형변환 하기 때문
8. 이스퀘이프 시퀀스의 종료를 나열하고 기능을 설명하시오.
· '\b' 백스페이스: 뒤에 있는 문자를 뒤에 붙여주는 기능
· '\t' tab: 문자와 문자 사이를 tab 만큼 띄어주는 기능
· '\\ ' 백슬래시
· '\'' 작은 따옴표: 전산상에서 충돌 방지를 위해 따옴표를 구별해주는 기능
· '\"' 큰 따옴표: 전산상에서 충돌 방지를 위해 따옴표를 구별해주는 기능 (사용법: "/"문자/"" )
· '\n' 개 행 문자: 그 다음 줄로 열어서 컴파일하는 기능
· '\r' 캐리지 리턴: 뒤에 문자를 앞으로 리턴시키고 앞에 문자는 다음 줄로 열어서 컴파일하는 기능
9. 아래가 의도하지 않은 결과를 나타내는 이유를 설명하시오.
· ch와 '\n'를 각 각 메모리에 올려야하는데 타입을 먼저 잡아야 하므로 char 타입으로 메모리에 올리게된다.
· char 형이므로 '\n'는 유니코드 값을 찾아서 ch값과 연산되면서 int형으로 값이 출련된다.
(char 타입은 16bit이므로 32bit에 맞는 int 타입으로 자동 형변환되어 출력)
· "\n"로 수정 시, 개 행이 실행되는 이유?
· 연산 실행 시 데이터 타입을 맞춰야 하는데 "\n" 는 String(4byte)이므로 개 행이 실행된다.
· 또 다른 ex)