[Java] Java란, 자바의 특징,버전,동작과정

Yewon Jeong·2023년 6월 27일
0

JAVA

목록 보기
1/1

Java의 역사

1995년 자바의 아버지라고 불리는 제임스 고슬링과 그의 동료들에 의해서 시작된 프로젝트다. Java는 원래 가전제품을 제어하기 위한 언어로 고안되었지만 웹의 등장으로 엄청난 성공을 거두면서 주류 언어가 되었다.

Java의 현재

한국에서는 정부나 기업의 시스템 통합 프로젝트가 대부분 자바로 구현되기 때문에 자바는 기업용 시장에서 두각을 나타내고 있다.

시스템 통합이란? System Integration의 약자로 기관이나 기업의 업무 관리를 소프트웨어화하는 것을 의미한다. 예를 들어 병원에 대한 SI라고 한다면 환자의 상태와 의료진의 상태에 따라서 효율적으로 진료가 이루어지게 한다거나, 제조 공정이라고 한다면 생산설비의 상태를 시스템적으로 관리하는 것이 있을 것이다,+기관 홈페이지 만들기

Java의 특징

1. 객체 지향 언어(OOP)

2. 독립적인 플랫폼(이식성이 높다)

  • 어떤 운영체제여도 독립적으로 자바 사용가능.(JVM에 의해 실행되기 때문)
  • 바이트 코드로 변환되어 JVM에서 실행됨.+JIT 컴파일러

3. 자동 메모리 관리

  • 객체 생성시 자동적으로 메모리 영역을 찾아서 할당한다. 또한 사용하지 않는 개체를 제거
  • JVM이 지속적으로 메모리를 감시하면서 더 이상 사용하지 않는 메모리는 해제해줌.(Garbage Collection).만약 개발자가 직접 메모리를 해제하고 싶은 경우, System.gc();로 Garbage Collector를 호출하여 해제할 수 있다.
  • C언어는 개발자가 직접 코드를 작성해야 하지만 자바는 이러한 작업을 자동으로 해주기 때문에 메모리 관리에 신경쓰지 않아도 된다.

4. 멀티 쓰레딩 지원

  • 하나의 프로그램 단위가 동일한 쓰레드를 동시에 수행할 수 있다.
  • 운영체제마다 멀티 쓰레드를 이용하는 API가 다르나 자바의 경우는 자바 API를 사용하기 때문에 쉽게 구현 가능하다.
  • 자바는 운영 체제 지원없이 멀티스레드가 가능하다.

5. 동적이다.

  • 어플리케이션이 실행 될 때 모든 객체가 생성되지 않고, 객체가 필요한 시점에 클래스를 동적 로딩하여 생성한다.
  • 오류가 발생하면 발생한 오류의 클래스만 수정하면 되므로 전체를 수정할 필요가 없다.

Java SE, JDK, JRE

Java SE

Java SE(Java Platform, Standard Edition)는 자바의 표준안이다. 자바라는 언어가 어떠한 문법적인 구성을 가졌는지와 같은 것들을 정의하고 있다. 이것은 구체적인 소프트웨어가 아니고 그 소프트웨어의 설계도라고 할 수 있다. 소프트웨어에서는 설계도라는 표현 대신에 명세서(spec, specification)이라는 말을 사용한다. 이 명세서에 따라서 Java가 만들어지게 된다.

JDK

개발을 할 때 필요한 도구.
JDK(Java Development Kit)는 Java SE의 표준안에 따라서 만들어진 구체적인 소프트웨어다. Java 개발자라면 JDK를 다운받아서 설치해야 한다. 여기에는 Java 프로그램을 실행하면 Java 코드를 컴파일하는 컴파일러와 개발에 필요한 각종 도구 그리고 JRE가 포함되어 있다. 즉 개발자를 위한 자바 버전이다.

JDK의 분류
자바의 개발환경인 JDK에는 3가지가 있다. 이 중에 가장 중요한 JDK는 Java SE다. Java SE는 Java EE나 Java ME의 기반 환경이기도 하므로 무엇을 하든 간에 Java SE를 JDK를 설치해야 한다.
Java SE (Standard Edition)
자바의 핵심으로 일반적으로 자바라고 하면 Java SE를 의미한다.
Java EE (Enterprise Edition)
기업용 시장에서 사용하는 자바 개발환경
Jave Me (Micro Edition)
모바일 개발을 위해서 사용하는 자바 버전

JRE

자바 프로그램을 실행할 때 쓰는 것.
JRE(Java Runtime Environment)는 자바가 실제로 동작하는 데 필요한 JVM, 라이브러리, 각종 파일들이 포함되어 있다. 자바로 만들어진 프로그램을 구동하려고 한다면 이것을 설치한다. 일반인을 위한 자바 버전이라고 할 수 있다.

JVM

JVM(Java Virtual Machine) JVM은 자바가 실제도 구동하는 환경이다. 자바로 만들어진 소프트웨어는 JVM이라는 가상화된 환경에서 구동되고, 하드웨어나 운영체제에 따라서 달라질 수 있는 호환성의 문제는 운영체제 버전에 따라서 만들어진 JVM이 알아서 해결한다. 즉 하나의 자바 프로그램을 만들면 어떤 환경에서도 실행할 수 있는 것이 바로 JVM의 역할이라고 할 수 있다.

실행

운영체제에 따라서 자바를 실행하는 방법이 조금씩 다르다.

컴파일

그런데 코드 자체를 바로 실행할 수는 없다. 자바의 문법은 사람만이 이해할 수 있는 형식으로 되어 있기 때문이다. 이 코드를 컴퓨터가 이해할 수 있는 상태로 변환해주는 과정이 필요한데 이것을 컴파일(compile)이라고 하고, 이 작업을 하는 소프트웨어를 컴파일러(compiler)라고 부른다. 자바의 컴파일러는 javac 라는 이름을 가지고 있다. 만약 helloworld.java라는 코드를 컴파일한다면 아래와 같은 식으로 javac를 실행하면 된다. ->바이트 코드로 변환됨-> . class 파일 생성 -> JVM이 이해할 수 있는 코드

javac Helloworld.java

참고
https://opentutorials.org/course/1223/4551
https://opentutorials.org/course/1223/5245
https://opentutorials.org/course/1223/5559

profile
일단 하는 중

0개의 댓글