TIL_230522

지인·2023년 5월 22일
0

TIL

목록 보기
9/38

🐰 Java

C 언어 기능에 여러 기기에서 실행가능하도록 도와주는 공통 실행환경, 그리고 데이터와 메서드를 담는 클래스를 통해 객체를 만들 수 있는 언어

🐾 데이터 타입 : 입/출력 되는 데이터들을 관리할 수 있도록 특정한 분류를 제공한 것

🐾 메서드 : 어떤 프로그램이 하는 행동을 정의

🥕 Java 를 배워야 하는 이유

🐾 Java 는 공통 실행환경이 있어서 여러 기기에서 실행 가능

  • 운영체제 (운영환경) : 기기가 프로그램을 실행시크는 운영환경

  • 앱 (애플리케이션) : 운영체제 위에서 실행되는 프로그램

🐾 Java는 세상과 닮아있는 갭라언어라 코드를 이해하기 쉽고 유지 보수가 쉽다

🐾 Java는 안정성이 높아서 프로그래밍 오류를 방지하고 보안상 안전

🐾 대규모 앱 개발이 가능

🐾 Java를 배우면 다양한 개발 도구와 라이브러리를 사용할 수 있다

🥕 JVM (Java Virtual Machine)

  • "자바 가상 머신" 이라는 뜻
  • 가상 머신이란 가상의 기기를 만들어주는 것을 의미
  • 다시 말해, 여러가지의 기기위에 Java 프로그램을 실행시킬 수 있는 가상의 기기를 만들어주는것을 의미

      🐾 바이트 코드 (Java 프로그램 변환코드)

  • 내가 작성한 코드가 운영체제가 읽을 수 있는 코드 (바이트 코드)로 java 컴파일러가 변환한 코드

  • java 컴파일러(compiler) 란? - 자바를 클래스로 변환해주는 파일, 내가 작성한 java 코드들 (.java 파일) 을 운영체제가 읽을 수 있는 바이트 코드 (.class 파일) 로 변환하는 변환기

    🐾 인터프리터 (Java, .class 코드 해석기)

  • 운영체제가 읽은 바이트 코드를 기기(기계)가 실행할 수 있는 기계어로 번역

    🐾 JIT 컴파일러 (빠른 Java .class 코드 해석기)

  • 인터프리터의 효율을 높여주는 서포터 해석기

    🐾 메모리 영역 (Java 데이터를 저장하는 영역)

  • 운영체제로 부터 JVM이 할당받은 메모리 영역

    🐾 클래스 로더 (Java .class 바이트 코드를 메모리 영역에 담는 운반기)

  • JVM으로 class(바이트 코드)를 불러와서 메모리에 저장함

    🐾 가비지 컬렉터 (Java 쓰레기 청소기)

  • 메모리 영역에서 안쓰는 데이터를 주기적으로 흡수해가는 청소기

    🐾 JVM 프로그램이 동작하는 흐름

  • Runtime : 프로그램이 실행중인 상태

  • Runtime 시스템 : 프로그램이 실행중인 상태를 관리하는 시스템

🥕 JRE (Java Runtime Environment)

  • 자바 실행 환경 이라는 뜻
  • JVM 을 설치하는 방법은 JRE를 설치하는 것
  • JRE(JVM) 만 있다면 Java 프로그램을 실행만 시킬 수 있다
  • JRE 는 .class 파일만 실행 가능

🥕 JDK (Java Development Kit)

  • 자바 개발 키트 라는 뜻
  • JRE(JVM)의 기능을 포함
  • .java 파일들을 .class 파일들로 변환해주는 Java Compiler(javac) 기능이 있다
  • 코드를 디버깅하는 jdb 등의 기능이 있다

     🐾 JDK 디버깅 기능

  • JDK 의 jdb 기능을 통해서 실행중인 프로그램의 코드 실행을 따라다니며 볼 수 있다.
  • 디버깅 = 중단점 일시정지 + 코드 라인단위 수행
profile
열쩡

0개의 댓글