01_자바(Java)언어의 특징과 JDK 및 개발환경 설치

Jiyoon.lee·2023년 11월 17일
0

Java_inflearn

목록 보기
1/25
post-thumbnail

*Java 프로그래밍을 공부하는 이유

  • 기업에서 백엔드(Back-end) 서버 프로그래밍 시 가장 많이 사용하는 언어

1. 자바 언어의 특징

1) 객체지향 언어 중 하나
2) 자바 언어는 느리지만, 버전업 되면서 다른 언어들의 장점들을 흡수하고 있다. (8버전 이후부터는 모던 자바)

  • 기업에서는 8, 11버전을 가장 많이 사용
  • 람다(Lambda) : 함수형 프로그래밍
  • Stream API : 람다 표현식과 메서드 참조 등의 기능과 결합해서 매우 복잡하고 어려운 데이터 처리 작업을 쉽게 조회하고 필터링하고 변환하고 처리할 수 있도록 한다.
  • 병렬 프로그래밍 : 여러 개의 CPU 코어에서 작업을 배분해서 동시에 작업을 수행한다.

2. 자바 프로그램 작성과 실행

  • JDK(Java Development Kit)라는 프로그램을 다운로드하고 설치해야 한다.
  • 여러 종류의 JDK가 존재 (openJDK, Oracle JDK, Azul Julu JDK, Amazon Corretto OpenJDK, Adoptium Temurin 등)
  • JDK들 간에는 호환이 된다.

3. Visual Studio Code 설치

4. Git 설치

5. Terminal에서 VSCode를 실행할 수 있도록 설정

6. JDK 11 설치

  • 초보자가 공부할 때는 JDK 8도 충분함 서비스 업체들의 경우 11 이상을 사용하는 경우가 많음
  • LTS가 붙은 버전을 설치하는 것 권장 (JDK8 LTS가 JDK11 LTS보다 유지보수 기간이 더 긺)

*자바 개발자는 리눅스 공부를 해야함, 리눅스 운영체제로 동작하는 서버에 접속을 해서 명령을 수행하는 경우가 많기 때문

7. 자바 프로그램 작성과 실행

1) 터미널에서 특정 디렉토리로 이동한다. (소스가 저장될 디렉토리)

2) code Hello.java를 실행한 후 아래와 같이 저장한다.

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

*code는 좀 더 고도화된 메모장

3) 터미널에서 java Hello.java 실행
-> "Hello!" 결과 확인

*Public class 다음 단어는 파일명과 반드시 같아야 함

4) 터미널에서 아래 명령 실행 (소스 코드 컴파일해서 클래스 파일을 생성하는 것)

javac Hello.java

-> Hello.class 파일 생성

5) 다음 명령으로 파일이 생성되었는지 확인한다.

ls -la

6) JVM(자바 가상 머신)으로 Hello.class를 실행한다. java 명령이 JVM을 의미한다. (이때 확장자는 입력하지 않음)

java Hello

-> "Hello!" 결과 확인

8. 컴파일이란?

  • 인간이 이해할 수 있는 언어로 작성된 소스 코드(고수준 언어 : C, C++, Java 등)를 CPU가 이해할 수 있는 언어(저수준 언어 : 기계어)로 변역(변환)하는 작업을 말한다.
  • 컴퓨터는 0, 1로 이루어진 기계어만 이해할 수 있기 때문에 우리가 작성한 소스 코드를 컴퓨터가 이해할 수 있게 0, 1로 이루어진 기계어로 번역하는 컴파일 과정이 필요한 것.
  • 소스 코드는 컴파일을 통해 기계어로 이루어진 실행 파일이 된다. 이 파일을 실행하면 실행 파일 내용이 운영체제의 Loader를 통해 메모리에 적재되어 프로그램이 동작한다.

9. JVM(자바 가상 머신)이란?

  • 자바를 실행하기 위한 가상 기계(컴퓨터)
  • Java는 OS에 종속적이지 않다는 특징을 가지고 있는데, OS에 종속받지 않고 실행되기 위해선 OS 위에서 Java를 실행시킬 무언가가 필요하다. 그게 바로 JVM이다.
  • 즉, JVM은 OS에 종속받지 않고 CPU가 Java를 인식, 실행할 수 있게 하는 가상 컴퓨터

10.

Java 소스코드(.java)는 JVM을 거쳐서 OS에 도달하기 때문에 OS가 인식할 수 있는 기계어로 바로 컴파일 되는게 아니라 JVM이 인식할 수 있는 Java bytecode(.class)로 변환된다.

Java compiler가 .java 파일을 .class라는 Java bytecode로 변환한다.
→ 변환된 bytecode는 기계어가 아니기 때문에 OS에서 바로 실행되지 않는데, 이때 JVM이 OS가 bytecode를 이해할 수 있도록 해석해준다.

따라서, bytecode는 JVM 위에서 OS 상관없이 실행될 수 있는 것. OS에 종속적이지 않고, Java 파일 하나만 만들면 어느 디바이스든 JVM 위에서 실행할 수 있다.

0개의 댓글