# 명품 자바 에센셜 연습문제 1장(이론)

- Author: @baealex
- Published: 2018-05-09
- Updated: 2020-02-22
- Source: http://blex.me/@baealex/%EB%AA%85%ED%92%88-%EC%9E%90%EB%B0%94-%EC%97%90%EC%84%BC%EC%85%9C-%EC%97%B0%EC%8A%B5%EB%AC%B8%EC%A0%9C-1%EC%9E%A5%EC%9D%B4%EB%A1%A0
- Tags: 자바에센셜

---

<div class="txc-textbox" style="border-style: solid; border-width: 1px; border-color: rgb(254, 254, 184); background-color: rgb(254, 254, 184); padding: 10px;">
<p>문제와 해답은 직접 작성한 것으로 오타가 있을 수도 있으며 해답역시 틀린 부분이 있을 수 있습니다. 틀린 부분에 대한 지적은 적극 수용하도록 하겠습니다. 문제를 먼저 풀어보시고
        참고용으로만 봐주시길 바랍니다.</p>
</div>

#### 연습문제 1장

1. C언어 소스 파일의 확장자는.c이고 목적 파일의 확장자는.obj이다. 자바 소스 파일의 확장자와 컴파일된 클래스 파일의 확장자는 무엇인가? <span style="color: rgb(255, 0, 0);">소스파일
 확장자: </span> <span style="color: rgb(255, 0, 0);">java, 컴파일된 클래스 파일: </span> <span style="color: rgb(255, 0, 0);">class</span>

2. 자바 언어는 어떤 문제점을 해결하기 위해 개발된 언어인가? 
 <span style="color: rgb(255, 0, 0);">플랫폼 종속적인 문제를 해결하기 위해 개발되었다.</span>

3. 다음은 자바의 특징을 잘 표현하는 글이다. 이를 간단히 줄여 무엇이라고 하는가?

<div class="txc-textbox" style="border-style: solid; border-width: 1px; border-color: rgb(238, 238, 238); background-color: rgb(238, 238, 238); padding: 10px;">
<p>자바는 한 번 작성하면 하드웨어나 운영체제 플랫폼에 상관없이 어디에서나 실행 가능하다.</p>
</div>

<span style="color: rgb(255, 0, 0);">WORA (Write Once Run Anywhere</span> <span style="color: rgb(255, 0, 0);">)</span>

4. 자바 언어에 대한 설명 중 틀린 것은 무엇인가? 
 <span style="color: rgb(255, 0, 0);">④하나의 클래스 파일에는 컴파일된 클래스가 여러 개 저장된다.</span>

5. JDK와 JRE는 어떤 차이가 있는가? JDK에는 JRE가 포함되는가? 자바 응용프로그램을 개발하고자 하는 개발자에게는 이 둘 중 어떤 것이 필요한가? 
 <span style="color: rgb(255, 0, 0);">JDK는 개발자를 위한 툴이고 JRE는 자바 프로그램을 실행시키기 위한 환경을 구성하는 것이다. JDK에는 JRE가 포함되어 있으므로</span> <span style="color: rgb(255, 0, 0);"> </span> <span style="color: rgb(255, 0, 0);">자바 응용프로그램을 개발하는 개발자는 JDK만 설치하면 된다.</span>

6. 자바 가상 기계에 대한 설명으로 틀린 것은? 
 <span style="color: rgb(255, 0, 0);">④자바 가상 기계는 JDK나 JRE에 포함되어 있지 않으며, 따로 설치해야 한다.</span>

7. 자바가 C/C++와 다른 특징이 아닌 것은? 
 <span style="color: rgb(255, 0, 0);">③C/C++는 절차 지향 언어이지만, 자바는 객체 지향 언어이다.</span>

8. 다음 중 자바의 특징으로 잘못 설명된 것은? 
 <span style="color: rgb(255, 0, 0);">②포인터가 없기 때문에 프로그램 작성이 더욱 어렵다.</span>

9. 다음 코드는 하나의 소스 파일에 저장된다.

```java
public class W {
    ...
    class X {
        ...
    }
}
class Y {
    ...
}
class Z {
    ...
}
```

(1) 이 소스 파일은 어떤 이름으로 저장하여야 하는가? <span style="color: rgb(255, 0, 0);">W.java</span>

(2) 이 소스 파일이 컴파일되면 어떤 클래스 파일이 생성되는가? <span style="color: rgb(255, 0, 0);">W.class, W$X.class, Y.class, Z.class</span>

10. 다음 자바 프로그램이 저장되는 소스와 컴파일된 파일의 이름은 무엇인가?

```java
public class Calc {
    public static void main(String [] args) {
        System.out.println("Calc");
    }
}
```

<span style="color: rgb(255, 0, 0);">소스: Calc.java, 컴파일 된 파일: Calc.class</span>
