[Java] Hello, 자바

nopecho·2021년 12월 14일
0

JAVA?


프로그램 언어 중 하나인 자바언어에 대해서 기초적인 내용을 알아보자

자바가 뭐죠?


자바는 JVM에서 실행 되는 객체 지향 프로그래밍 언어다.
🤔 프로그래밍 언어가 뭐고 JVM은 뭔가 또 객체 지향은?? 하나하나 천천히 알아보자

1. 프로그래밍 언어


프로그램을 작성하는 언어는 크게 고급 언어저급 언어로 나뉠 수 있다.

  • 저급언어 : 컴퓨터가 이해하기 쉬운 이진법(0,1)으로 이루어진 언어 기계어,어셈블리어 등이 있다.

  • 고급언어 : 사람이 이해하기 쉽고, 복잡한 작업이나 알고리즘 등을 표현하기 위해 고안된 언어

프로그래밍을 할땐 고급언어로 작성 된 소스코드를 컴퓨터가 이해할 수 있도록 변환하는 컴파일과정이 반드시 필요하다.

자바 컴파일 과정
사용자🤔 → 소스코드작성💻 → 자바 컴파일러🚩 → 바이트코드로 변환📜 → JVM이 파일을 읽고 프로그램 실행📟

2. JVM? JRE? JDK?


먼저 JVM이란 Java Virtual Machine의 약자로 직역하면 자바 가상 기계다.
자바가 등장한 배경을 보면 애초에 각기 다른 플랫폼에서 동일한 환경으로 개발을 하기위해 고안된 언어이다.
여기서 다른 플랫폼이란 운영체제(Window, Mac, Linux 등)을 말한다.

그래서 동일한 환경의 개발을 가능케하는게 JVM,자바 가상 머신이다.
각기 다른 운영체제에서 컴파일된 코드는 어떤 JVM에서도 동작시킬 수 있다. 그러나 각각의 운영체제의 JVM은 다르다.
즉, JVM자체는 운영체제에 종속적이다.


그렇다면 JRE는 뭘까?
JRE는 Java Runtime Environment의 약자로 자바 실행 환경이다.
말 그대로 JVM이 프로그램을 동작시킬 때(런타임 시) 필요한 라이브러리와 기타 파일등을 가지고 있다.


마지막으로 JDKJava Development Kit, 자바 개발 도구다.
JDK는 JRE + 개발을 위해 필요한 도구들을 포함한다.

JVM < JRE < JDK

이처럼 자바는 하나의 언어라기 보다 언어, 컴파일러, 자바 가상 기계등 실행 환경을 모두 갖춘 하나의 플랫폼으로 이해하면 좋다.

3. 객체 지향 프로그램 (OOP)


자바는 대표적인 객체 지향 프로그램이다. 계속해서 객체 지향, 객체 지향 하는데 간단하게 알아보자

객체(Object)?

객체 지향에서 객체가 뭘까?
객체는 세상에 존재하는 모든 것이다. 주변에 있는 책, 스마트폰, 마스크 등 모든것이 객체다.
프로그래밍 관점에서 객체란 데이터의 분산을 막기 위해 데이터기능하나로 묶은 단위다.

객체 지향?

각각의 객체가 데이터(상태)기능(행위)를 가지고 있다.
그 객체가 다른 객체와 메세지를 주고받고, 데이터를 처리해서 하나의 프로그램을 완성해가는것을 객체 지향 이라 한다.

객체 지향의 특징

크게 객체 지향의 특징은 다음과 같다.

  • 상속 : 상위 클래스를 상속받은 하위 클래스는 상위 클래스의 특징을 모두 가지고 있다.
  • 캡슐화 : 객체의 데이터와 코드의 형태를 외부에서 알 수 없게하고 데이터의 구조과 역활, 기능을 하나의 캡슐 형태로 만드는 것
  • 다형성 : 사실 다형성이 객체 지향 프로그램의 가장 핵심이라고 할 수 있다. 하나의 객체가 여러가지 상태와 행위로 재구성 될 수있다.
  • 추상화 : 객체의 공통적인 속성과 기능을 추출하여 정의 하는 것, 공통적인 특성은 추상화를 통해 불필요한 특성을 제거할 수 있다.

0개의 댓글