• 프로그래밍이란

    • 컴퓨터(CPU)에게 실행할 작업을 지시하기 위해 컴퓨터 프로그램을 작성하는 과정 또는 활동을 의미
  • java의 탄생

    • 1991년 썬 마이크로시스템즈(Sun Microsystems)사의 제임스 고슬링팀에 의해 탄생
    • 1996년에 발표된 1.0.2 버전부터 자바(Java)라는 이름을 사용
    • 1998년부터 인기 급상승
  • java의 인기

    • 자바는 전 세계에서 가장 많이 사용하는 프로그래밍 언어 중 하나
    • 국내 압도적 1위(특히 대기업, 공공기관, 은행 등)
  • java의 장단점

    • 장점

      • 자바는 운영체제와는 독립적으로 실행

      Untitled

      • JVM을 사용하여 운영체제별 호환되어, 개발자는 한 번만 프로그램을 작성함으로서 운영체제별로 실행가능 → 개발자의 편의 향상
      • 자바에 관한 수많은 레퍼런스 자료 → 특히 국내 자료 다수
      • 가비지 컬렉터(garbage collector)를 이용하여 사용하지 않는 메모리를 자동으로 회수
        • 개발자가 따로 메모리를 관리하지 않아도 되는 편의
        • C언어와의 차이
          • C언어는 메모리 공간 사용 후 사용해제를 잊지 않고 해줘야 메모리 부족이 발생하지 않음
    • 단점

      • C 언어에 비해 실행 속도가 느린편 → 다만, 파이썬 등 인터프리터 언어보단 훨씬 빠른 속도
      • 자바는 다른 언어에 비해 작성해야 하는 코드의 길이가 상대적으로 긴 편
  • 컴파일 언어 VS 인터프리터 언어

    Untitled

  • java는 혼합된 언어

    Untitled

    • 즉, 소스코드 → 컴파일 → 인터프리팅의 과정

      Untitled

    • 구체적인 java의 실행과정

      • 자바 컴파일러(Java compiler)

        • 자바 컴파일러는 자바를 설치하면 javac.exe라는 실행 파일 형태로 설치
        • 자바 소스 코드를 자바 바이트 코드로 변환
        • 자바 바이트 코드(Java bytecode)
          • 자바 가상 머신이 이해할 수 있는 언어로 변환된 자바 소스 코드
          • 자바 바이트 코드의 확장자는 .class
      • 자바 가상 머신(JVM)

        • 자바 바이트 코드를 실행시키기 위한 가상의 기계
        • 자바로 작성된 모든 프로그램은 자바 가상 머신에서만 실행
        • java.exe 파일을 통해 JVM이 실행
          • java MyClass(클래스명)와 같은 방식으로 class파일 실행
        • 구성요소
          • 자바 인터프리터(interpreter)
            • 자바 바이트 코드를 읽고 해석
          • JIT 컴파일러
            • 최종적인 기계어로의 번역 담당
      • 복잡한 과정이지만, 결국 javac 프로그램을 통해 class파일을 만들고, java 프로그램을 통해 프로그램 실행

        • 그러나, java 설치 후 인텔리제이, vscode 등 편집툴을 사용하면, 위 과정을 실행버튼을 통해 한꺼번에 편리하게 처리
      • 컴파일 환경과 런타임 환경 도식

        Untitled