[Java] Java란?

김세림·2024년 4월 22일

Java

목록 보기
1/24
post-thumbnail

Java란 무엇인가?


개발언어의 역사

  1. A언어(A Programming Language)
    • 입출력, 문맥기능만 구현이 가능한 언어

  1. B언어(Bell사에서 개발)
    • A언어 기능 + 데이터타입, 연산기능, 메서드

여기서 잠깐 메서드란?

클래스(Class)의 내부에 존재하는 영역으로, 특정 기능을 하는 코드를 묶어서 나타내는 것이다. 즉, 특정 기능을 수행하기 위한 코드들의 집합체
쉽게 말해, 어떤 행동을 하는지 정의한 것

  1. C언어(알파벳 B 다음인 알파벳 C를 땀)
    • B언어 기능 + 자료형 데이터타입, 자료구조

  1. Java(커피처럼 어디서나 동작가능한, 자바커피에서 이름을 땀)
    • C언어 기능 + 공통실행환경(JVM), 클래스, 객체
    • 객체지향언어

Java를 왜 사용하는가?

가장 많이 쓰이는 개발 언어 중 하나이기 때문!

많이 쓰는 이유

  1. 공통실행환경이 있어 어느 기기에서나 사용 가능
  2. 코드이해가 쉽고, 유지 보수도 쉽다.
  3. 안정성이 높아 보안상 안전하다.
    -> 그렇기에 대규모 앱 개발이 가능하다.
  4. 다양한 개발도구, 라이브러리 사용이 가능

JVM, JRE, JDK?

1. JVM

  • Java Virtual Machine(자바가상머신)
  • 여러가지 기기위에 Java 프로그램을 실행시킬 수 잇는 가상의 기기를 만들어주는 것

2. JRE

  • Java Runtime Environment(자바실행환경)
  • class를 실행시킬 수 있다.

3. JDK

  • Java Development Kit (자바개발키트)
  • 컴파일러 역할
  • JRE 기능 포함
  • 디버깅이 가능하다.(JDB - Java Debugger)

-> 이렇게 해서 프로그램이 동작하는 흐름은 다음과 같다.

인터프리터와 컴파일러를 통해 기계어로 변환하고 runtime 시스템은 구동이 되는 시스템이라고 보면 될 것 같다.


용어 정리

1. 인터프리터

Java .class 코드 해석기
바이트코드를 기기가 실행할 수 있도록 기계어로 번역

2. JIT 컴파일러

빠른 Java .class 코드 해석기
인터프리터의 효율을 높여주는 서포터 해석기


-> 인터프리터와 컴파일러는 세트!

3. 클래스 로더(load +er🛻)

Java .class 바이트 코드를 메모리 영역에 담는 운반기
JVM으로 바이트 코드를 불러와 메모리에 저장

4. 바이트 코드

내가 작성한 코드가 운영체제가 읽을 수 있는 코드로 Java 컴파일러가 변환한 코드!

5. 메모리 영역(memo📝 + ry)

Java 데이터를 저장하는 영역
JVM으로 바이트 코드를 불러와 메모리에 저장

6. 가비지 컬렉터(쓰레기 모이는🧹)

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

0개의 댓글