Java

[Java] 자바의 개념

압뜔라뚜 2025. 1. 3. 23:50

1. 자바의 등장 

  • 1991년 썬마이크로시스템즈의 엔지니어였던 제임스 고슬링(James Gosling)이 만들기 시작해,
    1995년에 버전 1.0 탄생.
  • 현재 오라클(Oracle)이라는 회사가 인수해서 저작권 소유.
  • 안드로이드 스마트폰의 앱을 만드는 언어가 자바를 기반.
    (2017년 구글에서 코틀린이라는 언어를 안드로이드 공식 언어로 지정 전에는 자바를 공부해야 했음)
  • 자바의 기본 문법은 1972년에 나온 C언어와 1989년에 나온 C++ 언어를 많이 따름. 
    특히, 객체 지향 언어인 C++를 많이 닮음.
  • C, C++ 보다 더 인기 있는 이유는 자바 언어가 추구하는 
    WORA (Write Once, Run Any where) 덕분. (플랫폼에 독립적)

 

WORA : 독립적인 플랫폼

WORA 는 'Write Once, Run Any where'의 약자로 한 번 작성하면 어디에서든 수행될 수 있다는 뜻.

✅ 자바는 호환성이 좋은 언어로, 한 번 컴파일 된 코드는 CPU 환경이 다른 컴퓨터에서도 다시 컴파일하지 않고 수행.

✔️ 자바 코드는 프로그래머가 이해하는 언어로 작성,
     이 문서를 컴퓨터가 이해할 수 있는 컴퓨터 언어로 바꾸는 과정을 컴파일이라 한다.
    → 컴파일 된 코드는(.class)는 다양한 플랫폼의 환경에서 실행가능하다. (JVM역할)

 


 

2. 자바의 특징

1️⃣ 컴파일러 언어이자 인터프리터 언어

  • 자바는 컴파일 과정을 거쳐 컴파일된 `class`가 확장자로 붙는 '바이트 코드(bytecode)가 나옴.
  • JVM(Java Virtual Machine)이 바이트 코드를 수행하는데 이 과정이 인터프리터 과정.
  • 이러한 특징이 자바의 호환성을 높임

 

2️⃣ 객체 지향 언어

  • 자바는 클래스(class)라는 도구를 이용해서 객체지향 개념을 구현.
  • 객체(Object)는 데이터와 그 데이터를 다루는 코드들로 구성. 아래 네가지 중요 개념을 가짐.

① Encapsulation (캡슐화) 

: 객체에 필요한 데이터나 기능(메소드)을 그룹화하여 보호하는 것

 

② Polymorphism (다형성)

: 하나의 코드가 여러 자료형으로 구현되는 것. 똑같은 형태를 가진 코드를 재사용하거나, 조금 수정해서 사용하기 때문에 코드의 절감

 

③ Inheritance (상속)

: 상위 클래스의 기능을 하위 클래스가 사용할 수 있어서, 중복되는 코드의 재사용 가능

 

④ Abstration (추상화)

: 실제 세상을 객체화 하는 것이 아니라 필요한 정보만을 중심으로 간소화 하는 것

ex) 지하철 노선도, 교통 표지판