Skip to the content.

- 자바 언어 기초(com.eomcs.lang)

- Gradle 빌드 도구 설치

- 이클립스로 프로젝트 임포트

- 학습 목표 달성 확인 목록

- [] 자바 소스 파일과 class {} 블록, 컴파일러의 관계를 이해하는가?

자바 컴파일러는 클래스 블록 단위로 컴파일을 수행한다.

클래스 블록 단위로 .class로 생성되며 클래스 파일의 이름은 클래스 블록의 이름과 같다.

- [] 공개 클래스와 디폴트 클래스, 소스 파일명의 관계를 이해하는가?

public 클래스의 경우 공개된 클래스인데 이 접근 제한자는 클래스 파일의 이름과 같아야하며

다른 패키지의 클래스가 사용할 수 있게 공개한다.

default 클래스의 경우 비공개된 클래스이며 이 접근 제한자는 클래스 파일의 이름과 같지 않아도 된다.

그렇지만 다른 패키지의 클래스가 사용할수 없다.

- [] 자바 패키지의 목적을 이해하는가?

먼저 패키지는 클래스들의 모음집이다.패키지를 통해 편리하게 프로젝트를 관리할수 있고

다른 라이브러리로부터 또 다른 라이브러리들끼리 구분이 가능할 수 있다.

(서로 같은 이름의 자바파일이더라도 패키지가 다르다면 문제없다)

- [] 패키지에 소속된 클래스를 정의할 수 있는가?

디렉토리 구성

패키지 선언

저기서 파란색 폴더는 소스 폴더를 나타내며 그 이하의 패키지를 선언해준다.

- [] 패키지에 소속된 클래스와 무소속 클래스를 컴파일하면 어떻게 되는지 알고 있는가?

src/main/java/Hello.java ------무소속 클래스
             /a/Hello.java --------소속 클래스(a부터 패키지가 된다 package a;)
             
================= 클래스를 컴파일 ==================

bin/Hello.class에 클래스파일 생성 -----무소속 클래스 파일
bin/a/Hello.class에 클래스파일 생성 -------소속 클래스 파일

- [] 패키지에 소속된 클래스를 JVM으로 실행할 수 있는가?

상위의 경우를 예들 들면

java -cp bin a.Hello

- [] 일반 주석과 javadoc 주석, 애노테이션의 용도를 이해하는가?

주석이란 컴파일할때 컴파일러가 읽을수 없도록 하는 기능이다.

-일반주석 
// 이렇게 하면 해당 줄만 주석처리가 된다.

-여러줄 주석
/*
이렇게하면
이 공간안에 있는 문자는
주석처리가 된다.
*/

-javadoc
/**
javadoc을 실행하면
해당 칸에 있는
문자들은 HTML 문서화가 된다.
주로 API 문서를 자동 생성할 때 사용한다.
클래스나 메서드,변수 선언에 붙일 수 있다.
*/

)
/**
 * 클래스에 대한 설명
 * @author eomjinyoung
 *
 */
public class Exam0200 {
  /**
   * 변수에 대한 설명
   * 변수 선언 앞에 설명을 붙여 놓으면 나중에 HTML 문서를 만들 때 추출할 수 있다.
   */
  public static String message = "Hello, world!";
  
  /**
   * 메서드에 대한 설명
   * 메서드에 대한 설명을 여기에 붙여 놓으면 나중에 HTML 문서를 만들 때 추출할 수 있다.
   * @param args 애플리테이션 아규먼트 값을 보관한 배열
   */
  public static void main(String[] args) {
    System.out.println(message);
  }
}

- [] javadoc 프로그램을 사용하여 API 문서를 생성할 수 있는가?

javadoc화 하는 코드
       -encoding [소스 파일의 문자집합]
       -charset [생성될 HTML 파일의 문자집합]
       -d [생성된 파일을 놓아둘 디렉토리] 
       -sourcepath [자바 소스 경로] [자바 패키지]
) $ javadoc -encoding UTF-8 -charset UTF-8 -d javadoc -sourcepath src/main/java com.eomcs.basic.ex02

- [] 메모리와 비트, 2진수의 관계를 이해하는가?

메모리에서 비트(bit)는 데이터 저장 최소단위이다.컴퓨터는 0과1만 인식할 수 있다.

그래서 컴퓨터는 2진수로 동작한다.전기가 들어오면 1 아니면 0으로 인식하게 된다.

- [] 비트 크기에 따라 저장할 수 있는 수의 범위를 계산할 수 있는가?

1비트는 0과1 - 2가지

2비트는 00 11 10 01 - 4가지

3비트는 000 001 010 011 100 101 110 111 - 8가지

.

.

.

8비트는 00000000

.

.

.

               1111111 - 2^8= 256

- [] 메모리에 정수 값을 저장할 때 음수를 어떻게 저장하는지 알고 있는가?

2진수는 0과 1외에 표현이 불가능하다

그래서 맨 앞의 비트에 음수와 양수를 표현한다.

양수 1이면 0 000 0001

음수 1일때 2의 보수를 취하면 1 111 1111이 된다

- [] 2의 보수가 무엇인지 아는가? 2의 보수를 사용하여 양수를 음수로 바꿀 수 있는가?

2의 보스는 1의 보수에 1을 더한값과 같다.

- [] 자바 언어에서 정수 리터럴을 4바이트와 8바이트로 구분하여 표현할 수 있는가?

4바이트 정수는 접미사를 붙이지 않고 그냥 숫자를 표현하면 4바이트 크기의 메모리에 저장되는 정수를 표현한다.

표현가능 범위:-2147483648 ~ 2147483647

8바이트 정수는 4바이트 메모리를 벗어나는 정수 값을 표현할 때 사용한다.

숫자 뒤에 l/L을 붙이지만 1과 헷갈릴수 있어 대문자로 표기한다.

표현 가능 범위:-2147483649L ~ 2147483648L 

- [] Gradle 빌드 도구를 설치하고 실행할 수 있는가?

맥의 경우엔 brew를 이용하면 매우 간편하다.

터미널에

brew install gradle

입력해준다.

- [] build.gradle 설정 파일을 작성하고, 플러그인 추가/라이브러리 등록 을 할 수 있는가?

먼저 build.gradle파일을 생성하여 사진과 같이 코드를 작성한다.

- [] Gradle을 이용하여 이클립스 설정 파일을 생성할 수 있는가?

터미널에 들어가서

gradle eclipse

입력해준다.

그러면 .settings/, .classpath, .project 등이 생성된다.

- [] 이클립스에서 프로젝트를 임포트 할 수 있는가?

file-import-general-exisiting projects into workspace-browser를 눌러 해당 프로젝트를 추가해준다

- [] .gitignore 파일의 용도를 알고 있는가?

깃저장소에 모든 소스파일들을 push하지 않고 필터링을 할수 있게 해주는 파일이다.

예외를 해준다는 의미로 보면 된다.