빅데이터UI전문가/JAVA

빅데이터UI전문가 DAY05 - 변수선언과 자료형, 연산자, 제어문, 함수, 배열, 객체 등 / 문제풀이, 기초다지기

해요빈 2021. 8. 17. 23:50
1. 변수 선언과 자료형(데이터의 크기)
일거리 제공하기(즉 데이터 제공하는 법 = 변수선언)

2. 연산자

3. 제어문
조건
반복

4. 퇴근 빨리하는 방법(과거 코드 써먹기)
코드의 재사용(함수 == 메서드)

5. 배열, 컬렉션
대량의 데이터를 효율적으로...

6. 객체(현실의 업무를 반영하고 싶다..) == 클래스
1. 개발환경의 이해

 

1 다음 설명 중 틀린 것은?

(1) 자바언어가 지원하는 개발 플랫폼은 Java SE, Java EE, Java ME 의 3가지 분야이다.  
정답: O
Java SE(Standard Edition) 자바 언어의 기본 플랫폼, 독립실행형 응용프로그램
Java EE(Enterprise Edition) 대규모 업무를 처리할 수 있는 엔터프라이즈급의 프로그램 개발 플랫폼, 웹기반의 기술
Java ME(Micro Edition) (기계)하드웨어에 탑재되는 임베디드 프로그램을 개발하기 위한 플랫폼


(2) Java SE(Standard Edition)는 자바 언어의 기본 플랫폼이며, 이 플랫폼으로는 독립실행형 응용프로그램을 개발할 수 있다.
정답: O

(3) Java EE (Enterprise Edition)는 대규모 업무를 처리할 수 있는 엔터프라이즈급의 프로그램 개발 플랫폼이며, 여기에는 주로 웹기반의 기술이 포함되어 있다.
정답: O


(4) Java ME ( Micro Edition)은 피처폰, 스마트폰 등의 하드웨어에 탑재되는 임베디드 프로그램을 개발하기 위한 플랫폼이다
정답: O

(5) 3개의 플랫폼 중, 다른 모든 플랫폼에 앞서 필수적으로 설치가 요구되는 플랫폼은 JavaEE이다.
정답: X / Java SE(Standard Edition)


(6) 자바는 원래 Sun 마이크로시스템즈에서 개발되었으나 현재는 오라클사 Sun을 인수 합병하였다.
정답: O

2 다음 설명 중 틀린 것은?

(1) JavaSE는 자바 언어로 개발할 수 있는 모든 분야의 기본 플랫폼이므로, 어떠한 종류의 프로그램을
     개발하던, 반드시 필수적으로 javaSE가 설치되어 있어야 한다.
= 정답: O

(2) JavaSE 설치 후 프로그래머에게 필요한 컴파일이나 실행 등을 위한 주요 개발도구는 설치 루트
     디렉토리 밑에 bin 디렉토리에 들어 있다.
= 정답: O


(3) JavaSE 설치 후 프로그램 개발을 위해서, 이클립스의 설치는 무조건적인 필수 사항이다.
= 정답: X


(4) 이클립스는 개발의 효율성을 높이기 위한 IDE(통합 개발 환경) 에디터 일 뿐이므로, 이클립스 없이도
     개발은 가능하다.
= 정답: O


3 아래의 프로그램들을 자바 기반으로 개발할 경우 알맞는 자바의 플랫폼을 채워넣으세요

(1) 편의점에서 사용되는 POS를 자바언어로 만들경우 (  SE    )  → 단 임베디드용 하드웨어인 경우 ME, 값싼 Java ME를 사용할 수 있으나, 확장성이 좁음.
(2) Editplus 같은 편집기 프로그램을 자바로 만들 경우 (      SE       )
(3) PC카톡, 네이트온 같은 채팅 프로그램을 자바로 만들 경우 (   SE    )
(4) 쇼핑몰 사이트를 구축하고자 할 경우 (   EE   )
(5) 온라인 게임을 자바로 개발하고자 할 경우 (   SE     ) → 설치: ME
(6) 피처폰용 프로그램을 자바로 개발할 경우 경우 (   ME     )
 

4 C#과 자바언어를 비교한 설명입니다, 빈칸을 채우시오
 



 
5 자바 언어의 특징 중 틀린 것은?        메모리 -> 실행 / 컴파일러 -> 기계어

(1) 한번 작성된 자바 소스는 어떤 OS 에서건 상관없이 실행되어 지므로, 즉 플랫폼에 독립적인 특징
을 갖는데, 이러한 특징을 잘 표현한 슬로건이 Write Once Run Anywhere 이다.
= 정답: O

(2) (1)에 의하면, 윈도우에서 작성된 자바 코드는 리눅스나 맥 등 전혀 다른 OS 에서 소스의 변경없이
   그대로 실행되어 질 수 있다.
= 정답: O

(3) 위(2)번처럼 플랫폼에 상관없이 자바코드가 실행될 수 있는 이유는 .class 파일에 특수한 기술을
   적용하여 모든 OS가 직접 해석할 수 있도록 만들었기 때문이다.
= 정답: X // Bytecode 해석가능한 것이 -> JVM

(4) JVM은 자바의 바이트 코드를 해석 및 실행하는 전용 프로그램으로서, 자바만을 위한 소규모 OS로도
     불린다. 따라서 해당 OS에 JVM이 설치되어 있다면, 바이트 코드는 OS에 탑재된 JVM에 의해 해석 및
     실행되어 지므로, OS 종류와 상관없이 독립적으로 실행되어 진다.
= 정답: O

(5) .class 파일은 오직 JVM(자바가상머신)만이 해석할 수 있는 바이트 코드라 불리는 특수한 형태의
     바이너리 파일이다
= 정답: O


 변수와 자료형 
1 다음의 빈칸을 채우세요

(1)사람이나 컴퓨터나 연산을 수행할 때는 연산 대상이 되는 데이터를 순간적으로 ( 기억 )할 수 있는 능력이 필요하다.

(2)컴퓨터는 사람의 사고 처리 능력을 모방하여 만든 기계이므로, 사람과 컴퓨터는 연산처리 방식이 상당히
 흡사하다. 특히 사람의 일시적인 기억 능력에 해당하는 컴퓨터의 부품은 (   메모리=RAM   )이고, 연산 등의 판단 능력을 모방한 부품은 (  CPU(=인간의뇌)   )이다.

(3)사람에게 연산을 시킬때는 구두상으로 데이터를 전달하면 알아서 기억하여 결과를 도출해 내지만,
컴퓨터에게 연산을 시킬 경우, 개발자가 특정한 처리를 하지 않는 한, 연산 대상이 되는 데이터를 스스로
기억하지는 못한다. 이때, 컴퓨터로 하여금 데이터를 기억할 수 있도록 개발자가 작성할 수 있는 명령
코드는? (   변수 선언        )
int x=24
int y=36;

CPU는 RAM 메모리와 대화함 / 하드디스크는 대화상대가 안됨
ex 하드디스크에 있는 포토샵은 실행하기까지 시간이 오래걸림 (속도 중요! / 그러나 형변환 시 

2 다음 설명 중 틀린 것은 ?

(1) 메모리의 데이터는 한정되어 있으므로, 개발자는 데이터를 기억시킬때 메모리에 확보 될 용량을
   결정지을 수 있으며 이때 사용되는 기법이 자료형 선언이다.
= 정답: O


(2) 일반적으로 프로그램에서 사용할 수 있는 기본 데이터의 종류에는 크게 문자,숫자,논리값이 있다.
= 정답: O


(3) C 혹은 Java 에서 컴퓨터의 메모리에 3이라는 데이터를 올리기 위해서는  x=3; 이라고 하면 된다.
= 정답: X / int x = 3;


(4) 컴퓨터에게 일을 시키기 위해 데이터를 메모리에 올릴 경우, 이 데이터를 담기 위해 얼마 만큼의
     용량을 확보할지는 프로그래머가 결정하지 못한다.
= 정답: X


3 다음 설명 중 틀린 것은?

(1) 돈의 단위로는 원화,달러 등이 있듯, 컴퓨터 시스템이나 프로그램 언어에서 다루는 데이터에도 단위가존재하는데, 이러한 단위 중 최소단위를 bit, 기본단위를 byte라 한다
= 정답: O   /전산 bit / 8 bit-> 1byte


(2) 컴퓨터에 사용 가능한 데이터의 최소단위는 byte 이다.
= 정답: X / bit


(3) 만일 bit 를 컴퓨터의 기본 단위로 했다면, 1 bit가 0과1 이라는 단 2가지 경우의 수만 표현할 수
    있으므로 용량이므로 , 표현할 수 있는 업무의 범위가 다양하지 못할 것이다.
= 정답: O


(4) 위(3)번과 같은 이유로 데이터 처리의 효율성을 위해 1bit 를 8개 모아놓은 단위를 기본단위로 하였으며 이 기본 단위를 byte 라 한다.
= 정답: O
  기본 자료형의 메모리 용량을 계산해 보세요 



4 자바의 기본 자료형에 대한 설명으로 틀린 것은?

(1) 자바도 다른 언어와 마찬가지로 기본 자료형은 총 3가지이며 여기엔 숫자 ,문자, 논리값이 있다.
= 정답: O / 문자(char), 숫자(정수, 실수), 논리값(Boolean) // 문자는 숫자로 바뀐다 = 같은 종류형, 논리값은 왕따

(2) 메모리에 데이터를 올리려 할때 , 대부분의 프로그래밍 언어가 반드시 지키는 규칙은 아래와 같다.
     변수명 = 데이터 ; 
= 정답: X / 자료형 변수명 = 데이터 ; 


(3) 자바의 기본 자료형 중 소수점을 포함할 수 있는지 여부에 따라 정수형과 실수형으로 분류할 수 있다.
= 정답: O / byte:1 < short:2 < int:4 < long:8(정수) / float:4 < double:8(실수) 
               int 기준으로 미만의 용량크기는 변환될 수 있음

(4) 자료형 선언이 갖는 의미는 메모리에 올려 질 데이터가 차지할 용량의 결정에 있다.
= 정답: O 

(5) 정수형은 크기에 따라  byte < short < int < long 형으로 분류될 수 있고 메모리에서 차지하는 용량의
     크기는 각각 1,2,4,8 byte 씩이다.
= 정답: O 


(6) 실수형은 크기에 따라 float < double 형으로 분류될 수 있고 메모리에서 차지하는 용량의 크기는
     각각 4byte, 8byte 씩이다.
= 정답: O 


5 다음 설명 중 틀린 것을 고르면?

(1) 변수 선언에 의해 데이터가 메모리에 올라가는 시점은 프로그램 소스 파일을 저장할 때이다.
= 정답: X / 실행할 때


(2) 프로그램의 실행이 종료되면 메모리에 올려진 숫자, 문자, 논리 데이터는 모두 소멸된다.
= 정답: O


(3) .java파일을 .class 파일로 컴파일 할때 변수로 선언된 데이터가 메모리에 올라간다
= 정답: X / 컴파일 -> 기계어


(4) 컴파일은 메모리와는 상관없는 과정이며, 단지 원본소스가 기계어로 변환되는 과정이며, 메모리가 아닌  하드디스크와 같은 보조저장 장치에서 발생하는 절차이다.
= 정답: O


6 아래의 코드에 대한 설명 중 맞는 것은? 
int x = 3; (A)  
x=5;       (B)    // 신규로 선언하지 않음 , 기존 x
int x=7;   (C)    // 중복정의


(1) (A)에서 4바이트의 메모리 공간을 확보하고, 그 공간에 3이라는 상수를 담되, x라는 이름으로 가리키고 있다.
= 정답: O


(2) (B)에서 x를 중복정의 했으므로 에러가 발생할 것이다.
= 정답: X


(3) (C)에서 x변수가 가리키는 값이 7로 변경된다.
= 정답: X // 에러발생


(4) (A)에서 3이라는 데이터를 담기 위해 메모리에 확보되는 용량은 4 bit 이다
= 정답: X // 4byte


5 다음 설명 중 틀린 것은?

상수 = 고정된 값

(1) short a = 3; 이라는 소스를 작성할 경우, 3이라는 데이터를 담기 위해 메모리에 확보되는 데이터 용량은 2byte 이다. 
= 정답: O

(2) byte 자료형으로 표현할 수 있는 경우의 수는 2의 8승인 256 가지인데,  sun에서는 이 byte형으로 표현
  할 수 있는 숫자를 -255 부터 0까지로 정했다.
= 정답: X // -127~128


(3) 자료형에 따라 메모리에 차지하는 데이터의 용량이 다르다.
= 정답: O


(4) 선언한 자료형에 의해 알맞는 용량이 메모리에 확보되는 시점은 컴파일 시점이다 
= 정답: X  // 컴파일은 메모리와는 상관없는 과정이며, 단지 원본소스가 기계어로 변환되는 과정이며, 메모리가 아닌  하드디스크와 같은 보조저장 장치에서 발생하는 절차


6 문자 자료형인 char에 대한 설명 중 틀린 것을 모두 고르면?

(1) 자바언어는 한글 등 다국어를 지원하므로 아래와 같이 char형 변수 a에 한글인 ‘가’ 등을 담을 수 있다.
   char a = ‘가’  // 2byte (2의 16승)
= 정답: O // 자바에선 한글이 지원됨


(2) char형이 메모리에서 차지하는 용량은 1byte 이다.
= 정답: X // 2byte (2의 16승)


(3) 아래의 코드는 에러가 날 것이다. 
    char k=true;  
= 정답: X // 논리값이 들어옴..


(4) 아래의 코드는 에러가 날 것이다.
   char c=65;
= 정답: X // 에러나지 않음, 문자형은 최종적으로 숫자로 변환됨
// char k = 'a'; // 컴파일러가 진짜 싫어함!! 아스키코드, 유니코드로 숫자 변환, 문자형은 숫자로 바뀜
                    // 중간 중개자: ANSI
                    // 사실상 문자는 없는 것과 같음, 최종적으로 숫자로 되어짐!

(5) 아래의 코드는 에러가 나지 않을 것이다.
   char y = -10;  //2의 16승가지의 수를 담을 수 있지만, 양수만 담는다... // 매칭이 목적이기 때문에 계산X
= 정답: 


7 컴퓨터는 1과 0만을 이해하므로 , 프로그래밍 언어에서 사용되는 문자,숫자,논리값은 사실상 0과 1으로 변환되어질 대상이 된다. 숫자나 논리값은 0과 1로 변환이 가능하나 문자를  0과 1로 변환하는 것은
불가능 하므로 ,키보드 자판에 존재하는 모든 영문자와 특수문자에 대해 1:1로 대응하는 정수를 미국의 표준협회인 ANSI가 제시했는데, 이 코드 체계를 무엇이라 하는가? 
 (    ASCII 코드     )

8 다음 설명 중 틀린 것은?

(1) ASCII코드는 영미권 문자인 알파벳을 위주로 한 코드체계이므로, 컴퓨터의 메모리에 올려 질 데이터의 개수가 얼마 되지 않아 1byte만으로도 충분하다. 256가지의 영문과 특수문자
= 정답: O 

(2) 한글, 중국어 ,아랍어 등 비영어권 문자를 1byte 용량으로 표현하기엔 부족하므로 ASCII코드보다 넓은 범위의 문자 코드 체계로 확장시킨 코드표를 유니코드라 한다.
= 정답: O

(3) 유니코드는 컴퓨터의 메모리에 올려 질 데이터의 개수가 ASCII보다 훨씬 많으므로 2byte 용량은 되어야
     유니코드에서 정한 모든 문자를 감당할 수 있다.  2의 16승가지~~
= 정답: O

    
(4) 자바언어는 char a=’대’ 와 같이 프로그램 작성시 한글 문자 사용이 가능하므로 유니코드를 지원하는 언어로 볼 수 있으며 , 이 char 형에 의해 메모리에 확보되는 용량은 1byte로 볼 수 있다.
= 정답: X // 2byte


9 문자 자료형인 char에 대한 설명 중 맞는 것은?

(1) char a=’A’ 가 실행될 경우 메모리에 실제 ‘A’라는 문자 자체가 올라간다 
= 정답: X // 변환되어져서 올라감

(2) char형에는 정수만 담을 수 있으므로, 10진수는 담을 수 있으나16진수를 담을 수는 없다.
= 정답: O


(3) char x=65; 를 입력하면 컴파일러는 아스키코드에서 65에 매칭되는 정수를 찾는다.
= 정답: X // 이미 65입력이기에 찾는 일이 없음!


(4) 컴퓨터의 메모리에는 문자 자체가 올라갈 수 없으므로 사실상 자바언에서 사용되는 char형은 숫자
    자료형으로 봐도 무관하다.
= 정답: O // 자바에선 문자가 없다고 생각하자!



10 괄호안을  채우세요.

자바는 유니코드 기반이므로, char 형으로 선언된 데이터는 메모리에 (2)byte 를 차지하게 된다.
따라서 유니코드가 표현할 수 있는 문자의 개수는  2의 (16) 승  가지이므로 현존하는 전세계 문자를
모두 담아낼 수 있다.
11 다음 설명 중 맞는 것은?

public static void main(String[] args){
          int  a=7;        (가)
          int  a=3;        (나) X
          {
             int a=3;      (다) X
          }
          {
             a=5;          (라) 기존 a
          }
          System.out.println(a); (마)
           }
}
(1) (나) 는 중복된 변수 선언으로서 컴파일 에러가 발생한다.
= 정답: O


(2) (다)의 경우 (가) 와 중복된 선언이기는 하지만 지역변수 영역안에 선언하였으므로, (가)와 충돌하지 않기
     때문에 컴파일 에러는 발생하지 않는다.
= 정답: X


(3) (라)에서 컴파일에러가 발생할 것이다.
= 정답: X


(4) (나),  (다)가 없을 경우 (마)의 출력결과는 7이다.
= 정답: X // 5


12 변수에 대한 설명 중 틀린 것은?

(1) 변수의 첫 문자는 숫자로 시작할 수 없다.
= 정답: O


(2)변수의 첫 문자는 원칙상 특수문자로 시작할 수 없으나 예외적으로 _(언더바) 또는 $는 사용이 가능하다.
= 정답: O // 제이쿼리인 경우 $이용


(3) 예약어는 변수명으로 사용할 수 없다.
= 정답: O


(4)변수명을 대문자로 사용할 경우 에러가 발생한다.
= 정답: X


(5)자바 언어에서 클래스명의 첫 철자는 대문자로 시작함이 관례이다.
= 정답: O


 

형변환
1 아래의 코드에 대한 설명 중 틀린 것을 모두 고르면?
public class VarTest2 {
public static void main(String[] args) {

short s1=3; (가)
short s2=4; (나)


int a1 = 3;(다)
int a2 = 4;(라)


short sum = s1+s2; (마) //자동  int형으로 변환
int result = a1+a2;(바)
}
} 
(1) (가)와 (나) 는 메모리 공간을 2byte씩 차지한다.
= 정답: O


(2) (다)와 (라)는 메모리 공간을 4byte씩 차지한다.
= 정답: O


(3) 데이터의 크기가 3과 4와 같이 크기가 아주 작다면 int 형보다는 short 형을 사용하는 편이 효율성면에서
    이득이므로, 일반적으로  개발자들은 정수값의 크기를 민감하게 체크해야 한다.
= 정답: X // 프로그램의 언어에서 디폴트값 int -> 최적화되어져있으므로 속도가 가장 빠름, 자동 형변환
                연산 수행 시 int

(4) (마)에서 7의 결과가 담아지므로, 에러는 발생하지 않는다.
= 정답: X // 자동  int형으로 변환


(5) 일반적인 언어의 컴파일러는 정수 자료형의 연산에 대해 32비트를 기본으로 하므로, 개발자가 int 형 이하의자료형 (byte, short)을 사용할 경우, 자동으로 int 형으로 변환되어 연산이 수행되어 진다.
= 정답:


(6) long 형은 int 형보다 자료형이 크므로, 자동으로 int형으로 변환될 경우 데이터의 손실이 우려되므로 
   자동 int형 변환되어 연산을 수행하지 않는다.
= 정답: X // long 자동형변환이 일어나지 않음
long b = 3;
int s = 9;
b+s;
// 자동형변환 일어나지 않음, 속도 < 데이터손실(최우선), 똑같은 연산자이어야 연산이 수행 / 전체 long
int 이하 연산 수행 시 자동형변환
2 다음 설명 중 틀린 것을 모두 고르면?

(1) int 형 이하의 정수형은 int형으로 자동 형변환되어 연산이 수행되어 진다.
= 정답: O 

(2) (1)과 같은 이유로 byte, short 형은 자바에서 사용되어질 일이 없는 쓸데없는 자료형에 불과하다.
= 정답: X // 메모리 데이터를 보관만 할경우 byte, short 형이 유리

(3) float  x = 3.14;  라고 선언시 3.14는 실수이므로 정상적으로 컴파일 될 것이다.
= 정답: X // float  x = 3.14F; // 개발자가 실수를 메모리에 올리면 디폴트는 double로 인식, 그래서 무조건 뒤에 표시해야함

(4) 자바에서 변수에 실수를 담을 경우 디폴트는 double 형으로 인식된다.
= 정답: O 

3 다음 설명 중 맞는 것은?
public class VarTest1 {
public static void main(String[] args) {
boolean b=true;
int x=3;
short y=9;
char c='K'; // 10진수 숫자로 변환


int r1= b+x;      //(가)
short r2 = y+c;   //(나) 자동형변환 int를 short으로 받아서 X
int r3=x+c;       //(다)
boolean r4=b+c; //(라)
}
}
(1) (가)에서 b는 int 형으로 변환되어 연산이 수행되므로 정상 컴파일 될 것이다.
= 정답: X

(2) (나)에서 x는 정수고 c는 문자이므로 연산수행이 불가능하며 컴파일 에러가 발생할 것이다.
= 정답: X // 형변환때문에

(3) (다)에서 c는 int로 형변환되므로 정상 컴파일 될 것이다.
= 정답: O

(4) (라)에서 c는 boolean 형으로 변환되므로 정상 컴파일 될 것이다.
= 정답: X


4 다음 설명 중 틀린 것은?

(1) 작은 자료형의 데이터가 큰 자료형의 데이터로 변환되는 모습을 promotion 이라고 한다.
= 정답: O
(2) 큰 자료형으로 선언된 데이터가 작은 자료형의 데이터로 변환되는 모습을 demotion 이라 한다.
= 정답: O
(3) boolean 형과 char 형간에는 형변환이 가능하다.
= 정답: X // short형과 char 형간에는 형변환이 가능하다.

(4) 아래처럼 작은 자료형으로 선언된 데이터를 큰 자료형으로 받을 경우 , 데이터의 손실이 발생한다.
= 정답: X //받을 수 있음

    byte b =3;
    short s = b;
     
  큰단위= 작은단위; 가능  
   // 강제 형변환 하고 싶을때, b=(byte)s; // (소괄호) : cast연산자라고 함
5 다음 중 맞는 것을 모두 고르면?

(1) 아래의 문장은 올바르게 컴파일 될 것이다. = 정답: O
    byte b=3;
    int a=7;
    a=b;

(2) 아래의 문장은 올바르게 컴파일 될 것이다.= 정답: X
     short s=7;
     byte b=3;
     b=s;  

(3)아래의 문장은 올바르게 컴파일 될 것이다. = 정답: O
     char a=3;
     int b=5;
     b=a;

(4) 아래의 문장은 올바르게 컴파일 될 것이다. = 정답: O
    int a=5;
    char c=65;
    a=c;
6 아래의 코드에 대한 설명 중 틀린 것은?
    short a = 3; 
    short b = 9; 
    short c  =  a + b; 

(1) 위 코드는 모두 short 형을 사용하여 연산을 수행하였으므로 아무런 문제가 없이 컴파일 될 것이다. = 정답: X
(2) 일반적으로 데이터의 연산 수행 시 피연산자들 간의 데이터형이 같아야 CPU가 연산을 수행한다. = 정답: O
(3) 위(2)번의 원칙에 따르면 위의 코드는 컴파일시 에러가 발생할 것이다. = 정답: O // 자동형변환을 short로 받아서 에러
(4) 위 코드에서 a + b의 덧셈 연산을 수행하기 전에 a와 b 는 먼저 int 형으로 형이 변환되어 진다 = 정답: O

7 아래의 코드에 대한 설명 중 틀린 것은?
    byte a = 8; 
    long b = 2; 
    int c  =  a + b; (가)

(1) 위 코드의 (가) 부분에서 a는 일단 +연산의 수행 전 int 형으로 변경된다. = 정답: O
(2) 위 코드의(가) 부분에서 b도 일단 연산수행 전에 int 형으로 변경된다. = 정답: X
(3) (가) 연산이 수행되고 나면 a+b의 결과값은 long 형이므로 , int c 로 결과를 받을 수 없다. = 정답: O
(4) (가) 부분에서 발생되는 에러를 해결하기 위해서는 c 를 long 형으로 선언하면 컴파일 에러는 발생되지 않는다. = 정답: O
8 다음 중 틀린 것은?

(1) 이미 선언된 자료형을 다른 데이터형으로 강제로 바꾸고자 할 경우 사용되는 형변환을 명시적 형변환이라 하며 이때 cast 연산자를 사용할 수 있다.
= 정답: O

(2) 서로 다른 데이터형 간에는 연산이 불가능하므로 어떤 한쪽의 데이터형태로 자동적으로 형 변환이 이루어지는 것을 자동형변환이라 한다.
= 정답: O

(3) byte, char, short 은 연산시 int형으로 변환되어 연산이 수행되어 지므로 자동 형변환에 해당한다.
= 정답: O
9 다음 중 틀린 것은?

(1) 형변환은 자바의 기본 자료형들끼리 가능하므로 아래의 문장은 올바르게 수행된다. = 정답: X
    boolean k=true; 
    int a=k;

(2) int형 보다 작은 자료형들간의 연산 수행시, int 형으로 자동 형변환 되어 연산이 수행된다. = 정답: O

(3) int형 보다 큰 자료형들간의 연산 수행시엔 , int형으로의 형변환은 발생하지 않는다. = 정답: O 손실때문에

(4) char 형은 사실상 숫자형과 마찬가지이므로 연산 수행시 int 형으로의 변환이 발생하며, 아래 문장은 
   올바르게 수행된다. = 정답: O
   int a=65;
   char c=2;
   c=(char)a;