JAVA 01 자바의 원리

2021. 8. 3. 19:29·Programming/Java

JDK

자바로 개발할 수 있도록 여러 기능들을 제공하는 패키지(키트)

 

환경변수 설정

환경변수 PATH란? 

환경변수는 운영체제가 참조하는 변수이다. PATH는 실행파일을 찾기 위한 폴더들의 모음이다. 

 

자바의 기본도구

javac.exe: 자바 컴파일러(Java Compiler)

java.exe: 자바 런처(Java Launcher)

 

- 명령 프롬프트는 path에 등록된 경로를 통해 찾는다.
- path에 javac.exe와 java.exe 위치를 등록시킨다.

- 환경 변수에 path를 등록한다.
- 변수이름 : Path
- 변수 값: bin 의 위치

 

자바의 실행 원리

- 운영체제는 자바 가상 머신(JVM)을 우선 실행한다. 자바 프로그램은 JVM 위에서 실행된다. 따라서, 운영체제는 JVM은 인식하지만 자바 프로그램은 인식하지 못한다.
- 자바 프로그램은 JVM에 완전 종속 관계에 있다.
- java.exe(자바 런처)는 JVM을 실행시키고, JVM은 자바 프로그램의 초기 준비부터 실행까지 이어주는 역할을 해준다. 

 

자바의 장점

-다른 운영체제에서도 동작할 수 있다.
이유는? 중간에 JVM이 있기 때문이다. OS에서 오는 차이점을 자바 프로그램이 고려하지 않아도 JVM이 알아서 적절히 처리해주기 때문에 자바 코드를 수정하지 않고 어느 JVM 위에서든 프로그램을 실행시킬 수 있다.

 

자바 컴파일러(javac)와 자바 런처(java)

- 자바 컴파일러의 역할
소스파일을 JVM이 이해할 수 클래스 파일(바이트 코드)로 변환해준다. 
- 자바 런처의 역할
자바 프로그램과 JVM을 처음 구동하는 소프트웨어

 

 

 

'Programming > Java' 카테고리의 다른 글

JAVA 09 정보은닉과 캡슐화  (0) 2021.08.04
JAVA 08 패키지의 이해  (0) 2021.08.04
JAVA 07(2) 생성자와 String 클래스  (0) 2021.08.03
JAVA 07(1) 클래스와 인스턴스  (0) 2021.08.03
인터페이스(interface)  (0) 2021.06.07
'Programming/Java' 카테고리의 다른 글
  • JAVA 08 패키지의 이해
  • JAVA 07(2) 생성자와 String 클래스
  • JAVA 07(1) 클래스와 인스턴스
  • 인터페이스(interface)
사랑우주인
사랑우주인
  • 사랑우주인
    lovelyAlien
    사랑우주인
  • 전체
    오늘
    어제
  • 글쓰기
    관리
    • 분류 전체보기 (209)
      • Programming (4)
        • Spring (28)
        • Java (46)
        • JPA (2)
        • 디자인 패턴 (5)
        • 개발&아키텍처 (0)
      • Network (14)
      • OS (19)
      • Database (1)
      • Kubernetes (0)
      • Kafka (2)
      • Algorithm (49)
        • BaekJoon (1)
        • Programmers (19)
        • Algorithm (5)
        • Socar (2)
        • LeetCode (19)
      • Interview (2)
      • Issues (2)
      • DotJoin (1)
      • Git (4)
      • 독서 (3)
      • 끄적끄적 (1)
      • 외부활동 (26)
        • 항해플러스 (2)
        • JSCODE 네트워크 (19)
        • JSCODE 자바 (5)
      • SQL (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
    • GitHub
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    디자인 패턴
    OS
    algorithm
    socar
    제네릭
    @JsonNaming
    Climbing Stairs
    Thread
    rotting oranges
    운영체제
    fcfs
    runner 기법
    트랜잭션
    준영속 엔티티
    minimum number of arrows to burst balloons
    BFS
    LinkedList
    Oauth2
    추상화 클래스
    Process
    RR
    AuthenticationSuccessHandler
    @JsonProperty
    lower bounded wildcards
    Generic
    pacific atlantic water flow
    wildcards
    JSCode
    Reorder List
    clone graph
  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.1
사랑우주인
JAVA 01 자바의 원리
상단으로

티스토리툴바