자바란?

하히호호·2024년 3월 20일
0

자바의 표준 스펙

자바 표준 스펙

  • 자바의 설계도이며 문서이다.
  • 스펙을 기반으로 여러 회사에서 실제 작동하는 자바를 만든다.(오라클 open JDK, Eclipse ..)
  • 자바 표준 스펙은 자바 커뮤니티 프로세스(JCP)를 통해 관리된다.

다양한 자바 구현

  • 여러 회사에서 스펙을 맞춰 식제 작동하는 자바 프로그램을 개발한다.
  • 장단점이 각각 존재한다. 예) Amazon Corretto는 AWS에 최적화 되어있다.
  • 각 회사들은 대부분 다양한 OS에서 작동하는 버전의 자바도 함께 제공한다.

자바 구현들은 모두 표준 스펙을 맞도록 개발되어 있다.

컴파일 실행

자바 프로그램은 컴파일과 실행 단계를 거친다.

  1. java가 컴파일러를 사용해서 소스 코드를 컴파일한다.
    • .java > .class 파일이 생성된다.
    • 자바 소스 코드를 바이트 코드로 변환하며 자바 가상 머신에서 더 빠르게 실행될 수 있게 최적화하고 문법 오류도 검출한다.
  2. 자바프로그램을 실행한다.
    • java라는 프로그램을 사용한다.
    • 자바 가상 머신(JVM)이 실행되면서 프로그램이 작동한다.
      (JVM이 .class파일을 읽어서 실행한다.)

IDE와 자바

인텔리 제이(intellij)를 통한 자바

  • 인텔리제이는 내부에 자바를 편리하게 설치하고 관리할 수 있는 기능을 제공한다.
  • 인텔리제이를 통해 자바를 편리하게 다운로드 받고 실행할 수 있다. (OS를 직접 설치해도 된다.)

intellij를 통한 자바 컴파일, 실행 과정

위의 컴파일 과정들을 intellij에서 자동으로 해준다.

컴파일

자바 코드를 컴파일하려면 javac 프로그램을 직접 사용해야하는데, 인텔리제이가 자바 코드를 실행할 때 이 과정을 자동으로 처리해준다.

소스코드로 보이지만, 파일명을 자세히 보면 .class라는 것을 알 수 있다.
원래 컴파일된 파일은 숫자로 보여 사람이 읽을 수 없게 보인다.
(위의 사진에서 .class파일인데 읽을 수있는것은 인텔리제이가 디컴파일해서 그렇다.)

실행

자바를 실행하려면 java라는 프로그램을 사용해야한다.
이때 컴파일된 .class 파일을 지정해주면 된다. (이때 확장자는 제외되고 실행된다.)

인텔리제이에서는 자바 코드를 실행하면 컴파일과 실행을 모두 한번에 처리한다.
인텔리제이 덕분에 매우 편리하게 자바 프로그램을 개발하고, 학습할 수 있다.

자바와 운영체제 독립성

일반적인 프로그램은 각잔 운영체제에 맞는 명령어들로 구성되어 있기때문에 해당 명령어는 다른 OS와 호환되지 않는다.
Window 프로그램 > Window 운영체제에서만 돌아감

java는 모든 OS에서 실행할 수 있다.
자바 개발자는 특정 OS에 맞춰 개발하지 않아도 된다. 자바 개발자는 자바에만 맞춰 개발하면된다. 컴파일된 자바 파일은 모든 자바 환경에서 실행할 수 있다.

자바 개발과 운영 환경

자바의 운영체제 독립성 덕분에 각각의환경에 맞춰 자바를 설치하는 것이 가능하다.

GC(Garbage Collection)

Java에는 특별한 메모리 관리 기법이 있는데 바로, 가비지 컬렉션(Garbage collection)이다.
C와 C++같은 언어에서는 개발자가 직접 메모리를 할당하고 해제하는 방식을 사용했다.
물론 이 방식이 효율적일 수 있어도 메모리 누수나 해제되지 않은 메모리에 대한 접근 등의 문제를 일으킬 수 있는 위험성도 내포하고 있다.

가비지 컬렉션(Garbage collection)

자동으로 메모리를 관리를 해주는 부분으로 프로그램이 동적으로 할당한 메모리 중 필요없어진 부분을 자동으로 해제하는 프로세스를 말한다.

profile
읽히는 코드를 짜고싶습니다.

0개의 댓글