[JAVA]자바란?

bbbbbhyun·2025년 1월 2일
0

JAVA

목록 보기
1/5

JAVA란?

자바는 썬 마이크로시스템즈의 제임스 고슬링(James Gosling)과 연구원들이 개발한 객체 지향 프로그래밍 언어로 1995년에 발표되었다. 처음에는 가전제품에 탑재해 동작하는 프로그램을 만들기 위해 탄생했으나 지금은 웹과 모바일 앱 개발에서 가장 많이 사용하는 언어로 성장했다.

JAVA 특징

  • 운영체제에 독립적
    - 자바 가상 머신(JVM)하고만 통신하고 JVM이 자바 응용프로그램으로부터 전달 받은 명령을 해당 운영체제가 이해할 수 있도록 변환하여 전달
    - JVM이 운영체제에 종속적이어서 여러 운영체제에 설치 할 수 있는 서로 다른 버전이 존재
  • 객체 지향 언어
    - 객체 지향언어로 상속, 캡슐화, 다형성을 지원
  • 자동 메모리 관리(Garbage Collection)
    - GC가 자동으로 메모리를 관리해서 참조되지 않은 메모리를 해제해줌
  • 네트워크와 분산처리를 지원
    - 다양한 네트워크 프로그래밍 라이브러리(Java API)를 통해 비교적 짧은 시간에 네트워크 관련 프로그램을 쉽게 개발 가능
  • 멀티 스레드를 지원
    - 멀티 스레드를 지원하면 프로그램 단위가 같은 스레드를 동시에 수행할 수 있다. 자바는 멀티 프로세서 하드웨어를 지원하도록 설계되었으므로 멀티 CPU 시스템에서 효율이 높다.
  • 동적
    - 자바는 동적 로딩을 지원함으로써 프로그램 실행 시 모든 클래스가 로딩되지 않고 필요한 시점에 필요한 클래스만을 로딩

JAVA 단점

  • 실행속도가 상대적으로 느리다.
    - jvm위에서 돌아가기때문에 컴파일 언어에 비해 상대적으로 느릴 수 있다.
  • 메모리 사용량이 많습니다.
    - 가비지 컬렉션이 자동으로 메모리를 관리하는 과정에서 오버헤드가 발생할 수 있다.

JAVA 실행과정

  1. 자바 컴파일러가 소스코드를 바이트코드로 변환시킨다.
    • 바이트 코드란 .java 파일을 JVM이 이해할 수 있도록 하는 Bytecode 로 변환하고 .class 파일을 만드는 것을 의미하는데, .class 파일에 존재하는 데이터
  2. 클래스로더가 바이트코드를 JVM의 runtime data area(메모리 영역)로 올린다.
    • 클래스 로더란 JVM이 바이트코드를 메모리인 Runtime Data Area에 로드하는 역할
  3. Execution engine의 interpreter와 JIT compiler를 통해 코드를 해석한다.
    • interpreter란 소스코드를 빌드시에 암것도 하지 않다가, 런타임시에 한줄 한줄 읽어가며 변환
      JIT compiler 란소스코드를 한꺼번에 컴퓨터가 읽을 수 있는 native machine (기계)어로 변환
profile
BackEnd develope

0개의 댓글

관련 채용 정보