본문 바로가기
JAVA

Java란 어떤 언어일까?

by HTT 2023. 2. 23.

Java

 


Java는 썬 마이크로시스템즈의 제임스 고슬링(James Gosling)과 다른 연구원들이 개발한 객체 지향적 프로그래밍 언어이다. 기본 자료형을 제외한 모든 요소들이 객체로 표현되고, 객체 지향 개념의 특징인 캡슐화, 상속, 다형성이 잘 적용된 언어이다.

Java의 가장 큰 특징은 플랫폼에 독립적인 언어라는 점이다. 소스 코드를 기계어로 직접 컴파일하여 링크하는 C/C++의 컴파일러와 달리 자바 컴파일러는 바이트코드인 클래스 파일(.class)을 생성하고, 이 파일의 바이트코드를 읽은 뒤 기계어로 바꾸어 실행하는 것은 JVM(자바 가상 머신)이다.

  • 장점
    • JVM(자바가상머신) 위에서 동작하기 때문에 운영체제에 독립적이다.
    • GabageCollector를 통한 자동적인 메모리 관리가 가능하다.
  • 단점
    • JVM 위에서 동작하기 때문에 실행 속도가 상대적으로 느리다.
    • 다중 상속이나 타입에 엄격하며, 제약이 많다.

 

JVM(자바 가상 머신)이란?

JVM은 스택 기반으로 동작하며, Java Byte Code를 OS에 맞게 해석 해주는 역할을 하고 가비지컬렉션을 통해 자동적인 메모리 관리를 해줍니다.

 

 

Java의 컴파일과정

 

 

.java파일 생성 → Build → java compiler의 javac의 명령어를 통해 바이트코드(.class)를 생성 → Class Loader를 통해 JVM 메모리 내로 로드 → 실행엔진을 통해 컴퓨터가 읽을 수 있는 기계어로 해석된다(각 운영체제에 맞는 기계어).

 

 

객체 지향 언어(Object Oriented Program)란?

우리가 실생활에서 쓰는 모든 것을 객체라 하며, 객체 지향 프로그래밍은 프로그램 구현에 필요한 객체를 파악하고 상태와 행위를 가진 객체를 만들고 각각의 객체들의 역할이 무엇인지를 정의하여 객체들 간의 상호작용을 통해 프로그램을 만드는 것을 말한다.
즉, 기능이 아닌 객체가 중심이며 "누가 어떤 일을 할 것인가?"가 핵심이다.
특징으로는 캡슐화, 상속, 다형성, 추상화 등이 있고, 모듈 재사용으로 확장 및 유지보수가 용이하다.

 

 

 

 

 

자바 용어 정리

https://programinglab.tistory.com/89

 

참고 및 출처

https://namu.wiki/w/Java

https://dev-coco.tistory.com/153

댓글