[Java] 자바 이론 정리

2024. 8. 25. 20:26·Language/Java
반응형

 

☕ 자바 프로그램 실행

public class HelloJava

  • HelloJava 클래스 생성
  • 파일명과 클래스 이름이 같아야 함
  • {} 블록을 사용해서 클래스의 시작과 끝을 나타냄

public static void main(String[] args)

  • main 메서드
  • 자바는 main(String\[\] args) 메서드를 찾아서 프로그램을 시작
  • {} 블록을 사용해서 메서드의 시작과 끝을 나타냄

System.out.println("hello java");

  • System.out.println(): 값을 콘솔에 출력
  • "hello java": "(쌍따옴표) 사이에 원하는 문자열을 감쌈
  • ;: 세미콜론으로 문장 구분

 

☕ 자바 표준 스펙과 구현

🍪 자바 표준 스펙

  • 자바는 이렇게 만들어야 한다는 설계도이자 문서임
  • 이 표준 스펙을 기반으로 여러 회사에서 실제 작동하는 자바를 만듦
  • 자바 표준 스펙은 자바 커뮤니티 프로세스(JCP)를 통해 관리됨

🍪 다양한 자바 구현

  • 여러 회사에서 자바 표준 스펙에 맞추어 실제 작동하는 자바 프로그램 개발
  • 각각 장단점이 있음
    • ex) Amazon Corretto는 AWS에 최적화되어 있음
  • 각 회사들은 대부분 윈도우, MAC, 리눅스 같이 다양한 OS에서 작동하는 버전의 자바도 함께 제공

cf. 어떤 JDK 버전을 사용해야 할까요?

  • 자바 구현들은 모두 표준 스펙에 맞도록 개발되어 있음
  • 따라서 오라클 Open JDK를 사용하다가 Amazon Corretto 자바로 변경해도 대부분 문제없이 동작함

 

☕ 컴파일과 실행

  1. Hello.java 와 같은 자바 소스 코드를 개발자가 작성함
  2. 자바 컴파일러를 사용해서 소스 코드를 컴파일함
    • 자바가 제공하는 javac라는 프로그램 사용
    • .java → .class 파일이 생성
    • 자바 소스 코드를 바이트코드로 변환하며 자바 가상 머신에서 더 빠르게 실행될 수 있게 최적화하고 문법 오류도 검출
  3. 자바 프로그램 실행
    • 자바가 제공하는 java라는 프로그램 사용
    • 자바 가상 머신(JVM)이 실행되면서 프로그램 작동

 

☕ IDE와 자바

🍪 인텔리제이를 통한 자바 설치 관리

  • 인텔리제이는 내부에 자바를 편리하게 설치하고 관리할 수 있는 기능 제공
  • 이 기능을 사용하면 인텔리제이를 통해 자바를 편리하게 다운로드 받고 실행할 수 있음

🍪 인텔리제이를 통한 자바 컴파일, 실행 과정

컴파일

  • 자바 코드를 컴파일하려면 javac라는 프로그램을 직접 사용해야 하는데, 인텔리제이는 자바 코드를 실행할 때 이 과정을 자동으로 처리해 줌
    • ex) javac Hello.java
  • 인텔리제이 화면에서 프로젝트에 있는 out 폴더에 가보면 컴파일된 .class 파일이 있는 것을 확일할 수 있음

실행

  • 자바를 실행하려면 java라는 프로그램 사용해야 함
    • 이때 컴파일된 .class 파일을 지정해 주면 됨
  • ex) java Hello, 참고로 확장자는 제외

인텔리제이에서 자바 코드를 실행하면 컴파일과 실행을 모두 한 번에 처리

 

☕ 자바와 운영체제 독립성

🍪 일반적인 프로그램

  • 일반적인 프로그램은 다른 운영체제에서 실행할 수 없음
    • ex) 윈도우 프로그램은 MAC이나 리눅스에서 작동 X
  • 왜냐하면 윈도우 프로그램은 윈도우 OS가 사용하는 명령어들로 구성되어 있기 때문임
  • 해당 명령어는 다른 OS와는 호환되지 않음

🍪 자바 프로그램

  • 자바 프로그램은 자바가 설치된 모든 OS에서 실행할 수 있음
  • 자바 개발자는 특정 OS에 맞추어 개발하지 않아도 됨
    • 자바 개발자는 자바에 맞추어 개발하면 됨
    • OS 호환성 문제는 자바가 해결함
    • Hello.class와 같이 컴파일된 자바 파일은 모든 자바 환경에서 실행할 수 있음
  • 윈도우 자바는 윈도우 OS가 사용하는 명령어들로 구성되어 있음
    • MAC이나 리눅스 자바도 마찬가지
    • 개발자는 각 OS에 맞도록 자바를 설치하기만 하면 됨

🍪 자바 개발과 운영 환경

  • 개발할 때 자바와 서버에서 실행할 때 다른 자바를 사용할 수도 있음
  • 개발자는 주로 개발 편의를 위해 윈도우나 MAC OS를 주로 사용하지만, 서버는 주로 리눅스를 사용함
    • AWS를 사용한다면 Amazon Corretto 자바를 AWS 리눅스 서버에 설치하면 됨
  • 자바의 운영체제 독립성 덕분에 각각의 환경에 맞추어 자바를 설치하는 것이 가능함

 

[출처] 김영한의 자바 입문

반응형

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

[Java] 자바 연산자  (1) 2025.01.05
[Java] 자바 변수  (0) 2025.01.04
[Java] 자바 문자열 특정 위치에 문자 삽입하기  (0) 2024.01.25
[Java] 자바 문자를 숫자로 바꾸기 (char to int)  (0) 2024.01.12
'Language/Java' 카테고리의 다른 글
  • [Java] 자바 연산자
  • [Java] 자바 변수
  • [Java] 자바 문자열 특정 위치에 문자 삽입하기
  • [Java] 자바 문자를 숫자로 바꾸기 (char to int)
올콩
올콩
콩 심은 데 콩 난다
  • 올콩
    콩스토리
    올콩
  • 전체
    오늘
    어제
    • 분류 전체보기 (175) N
      • SSAFY (10)
      • Algorithm (95) N
        • 이론 (6)
        • 백준 (BOJ) (88) N
        • 프로그래머스 (1)
      • Trouble Shooting (9)
      • Frontend (6)
      • React (17)
      • Next.js (3)
      • Vue (4)
      • Node.js (2)
      • HTML (9)
      • DevOps (3)
        • Git (3)
      • Language (9)
        • JavaScript (0)
        • Java (9)
      • Embedded (1)
      • CS (5)
        • Network (1)
        • Blockchain (4)
      • 자격증 (2)
  • 블로그 메뉴

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

  • 공지사항

  • 인기 글

  • 태그

    bfs
    오블완
    html5
    SSAFYcial
    SSAFY
    우선순위큐
    티스토리챌린지
    Error
    Next.js
    강의
    재귀
    Java
    힙
    딕셔너리
    알고리즘
    Algorithm
    dfs
    누적합
    싸피
    구현
    파이썬
    브루트포스
    React
    해시
    백준
    블록체인
    vue
    DP
    Heap
    수학
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
올콩
[Java] 자바 이론 정리
상단으로

티스토리툴바