이것이 자바다 - Part 01

mj·2023년 1월 9일
0
post-thumbnail

Part 01 자바 시작하기

자바의 특징


모든 운영체제에서 실행 가능

자바로 작성된 프로그램은 운영체제와 상관없이 모두 실행되기 때문에 윈도우에서 개발된 프로그램을 수정 없이 바로 맥 OS 또는 리눅스에서도 실행 할 수 있다는 장점이 있다.


객체 지향 프로그래밍

먼저 객체(부품)을 만들고, 이 객체들을 서로 연결해서 더 큰 프로그램을 완성시키는 기법을 객체 지향 프로그래밍(Object Oriented Programming, OOP) 이라고 한다. 자바는 OOP를 위한 최적의 언어이다.


메모리 자동 정리

자바는 메모리(RAM)를 자동 관리하므로, 개발자는 메모리 관리의 수고스러움을 덜고 핵심 기능 작성에 집중할 수 있다.


무료 라이브러리 풍부

무료로 다운로드해서 사용할 수 있는 오픈 소스 라이브러리가 풍부하기 때문에 프로그램 개발 기간을 단축시켜준다.


자바 가상 머신


자바 프로그램을 개발하고 실행하기 위해서는 먼저 Java SE(standard edition) 의 구현체인 JDK(Java Development Kit)를 설치해야 한다.

JDK를 설치했다면 이제 자바 언어로 작성한 .java 소스 파일을 만들고 컴파일할 수 있다.

바이트 코드 파일

자바 소스코드인 .java 파일은 javac(java compiler) 명령어를 통해서 컴파일 할 수 있는데 컴파일 결과로 .class 확장자를 가지는 바이트코드 파일이 생성된다.

자바 가상 머신

바이트 코드 파일(.class)을 특정 운영체제에 맞는 기계어로 번역하고 실행키시는 명령어는 java 이다. java 명령어는 JDK와 함께 설치된 자바 가상 머신(Java Virtual Machine) 을 구동시켜 바이트 코드 파일을 기계어로 번역하고 실행시킨다.

때문에 JDK는 운영체제 별로 구분하여 설치해야 한다.


자바 개발 순서


위에서 살펴봤듯 자바 소스 코드 작성 및 실행 순서는 아래와 같다.

1. '.java' 소스 파일 작성
2. javac 명령어를 통해 바이트 코드 파일(.class) 생성
3. java 명령어를 통해 바이트 코드 파일(.class) 실행

소스 코드 파일 생성

package ch01.sec06

public class Hello {
	public static void main(String[] args) {
    System.out.println("Hello Java");
    }
}

패키지란?
자바는 소스 파일 및 컴파일된 바이트 코드 파일을 쉽게 관리하기 위해 패키지(package)를 사용한다.
패키지는 마치 파일 시스템의 디렉터리와 비슷하다.

소스 코드 컴파일

$ cd src/ch01/sec06
$ javac -d ./ ./Hello.java

바이트 코드 실행

$ java -cp ./ ch01.sec06.Hello
Hello Java

코드 용어 이해


패키지 선언

다음과 같은 코드를 패키지 선언이라고 하며, 소스 파일이 ch01/sec09 패키지에 있다는 뜻이다.

package ch01.sec09

클래스 선언

public class Hello 를 클래스 선언이라 부르며, Hello 를 클래스명이라고 한다.

클래스 명
1. 숫자로 시작할 수 없다.
2. 공백을 포함해서는 안된다.
3. 소스 파일명과 대소문자가 완전히 일치해야 한다.

클래스 선언 다음에 나오는 중괄호 {} 는 클래스 블록이라고 하며, 클래스의 정의 내용이 작성된다.

public class Hello {
}

메소드 선언

public static void main(String[] args) 메소드 선언이라고 부르며, main()을 메소드명 이라고 한다.

그리고 중괄호{} 를 메소드 블록이라고 한다.
바이트 코드 파일을 실행하면 main() 메소드 블록이 실행된다. 그래서 main() 메소드를 프로그램 실행 진입점이라고 부른다.

메소드 블록 안에 있는 System.out.println() 은 괄호 안에 있는 내용을 Console 뷰에 출력하는 코드이다.

public static void main(String[] args) {
	System.out.println("Hello Java");
}

주석

주석은 프로그램 실행과는 상관없이 코드에 설명을 붙인 것이다.

주석은 컴파일 과정에서 주시되기 때문에 주석을 많이 작성한다고 해서 바이트 코드 파일의 크기가 커지는 것은 아니다.

구분주석 기호설명
행 주석//...//부터 행 끝까지 주석으로 처리한다.
범위 주석/* ... *//*와 */사이에 있는 내용은 모두 주석으로 처리한다.
도큐먼트 주석/** ... *//**와 */사이에 있는 내용은 모두 주석으로 처리한다. javadoc 명령어로 API 도큐먼트를 생성하는 데 사용한다.

주석 기호는 코드 내 어디서든 작성이 가능하지만, 문자열(" ") 내부에서는 주석문이 아니라 문자열 데이터로 인식하기 때문에 주의해야 한다.

실행문과 세미콜론

실행문은 변수 선언, 변수의 저장, 메소드 호출에 해당하는 코드를 말한다.

int x;						//변수 x 선언
x = 1;						//변수 x에 1 값을 저장
int y = 2;					//변수 y를 선언하고 2 값을 저장
int result = x + y;			//변수 result를 선언하고 변수 x와 y를 더한 값을 저장
System.out.println(result);	//콘솔에 변수의 값을 출력하는 println() 메소드 호출

실행문 끝에는 반드시 세미콜론(;)을 붙여야 한다. 그렇지 않으면 컴파일 에러가 발생한다.


문제


  1. 자바 언어의 특징을 잘못 설명한 것은 무엇입니까?
    -> 개발자가 코드로 메모리를 관리해야 한다.

  1. Open JDK와 Oracle JDK를 잘못 설명한 것은 무엇입니까?
    -> Oracle JDK는 개발 소스 공개 의무가 없지만, Open JDK는 있다.

  1. 환경 변수에 대해 잘못 설명한 것은 무엇입니까?
    -> 환경 변수를 수정하면 기존 명령 프롬프트 또는 터미널에서 바로 적용된다.

  1. 자바 가상 머신(JVM)오헤 대해 잘못 설명한 것은 무엇입니까?
    -> JVM은 운영체제에 독립적이다.(운영체제별로 동일한 JVM이 사용된다.)

  1. 자바 프로그램 개발 과정을 순서대로 적어보세요.
  • (3) -> (1) -> (2) -> (4)
    (1) javac.exe 로 바이트코드 파일을 생성
    (2) java.exe로 JVM을 구동
    (3) 자바 소스파일을 작성
    (4) JVM은 main() 메소드를 찾아 메소드 블록을 실행시킨다.

  1. 자바 소스 파일을 작성할 때 잘못된 것은 무엇입니까?
    -> 주석은 문자열 안에도 작성할 수 있다.

  1. 다음과 같이 출력되도록 Example.java를 패키지 ch01.verify에 작성해보세요.
package ch01.verify;

public class Example {
    public static void main(String[] args) {
        System.out.println("개발자가 되기 위한 필수 언어 Java");
    }
}
profile
사는게 쉽지가 않네요

0개의 댓글