1995년 Sun Microsystems에서 처음 릴리즈된 프로그래밍 언어 및 컴퓨팅 플랫폼-소프트웨어가 구동 가능한 하드웨어 아키텍쳐나 소프트웨어 프레임워크의 종류-이다.
이식성
이 높은 언어
서로 다른 실행 환경을 가진 시스템 간에 프로그램을 옮겨 실행할 수 있는 것을 말한다.
ex) 윈도우에서 실행하는 프로그램을 리눅스 또는 유닉스에서 실행할 수 있는 것.
자바는 자바 실행 환경(JRE: Java Runtime Environment
)이 설치되어 있는 모든 운영체제에서 실행 가능하다.
객체 지향 언어
프로그램을 개발하는 기법으로 부품에 해당하는 객체들을 먼저 만들고, 이것들을 하나씩 조립 및 연결해서 전체 프로그램을 완성하는 기법을 객체 지향 프로그래밍(OOP: Object Oriented Programming
)이라고 한다. 이때 사용되는 언어가 객체 지향 언어이다. 객체 지향 프로그래밍은 추후에 자세히 공부하도록 한다.
함수적 스타일 코딩 지원
함수형 프로그래밍
이란 자료 처리를 수학적 함수의 계산으로 취급하고 상태와 가변 데이터를 멀리하는 프로그래밍 패러다임의 하나이다. 대용량 데이터의 병렬 처리 그리고 이벤트 지향 프로그래밍에 적합하다. 자바는 함수적 프로그래밍을 위해 람다식
을 JAVA 8
부터 지원한다. 람다식을 사용하면 컬렉션
의 요소를 필터링
, 매핑
, 집계
처리하는데 쉬워지고, 코드가 간결해진다.
메모리
를 자동으로 관리
C++
은 메모리에 생성된 객체를 제거하기 위해 개발자가 직접 코드를 작성한다. 자바는 개발자가 직접 메모리에 접근할 수 없도록 설계되었고, 자바가 직접 메모리를 관리한다. 객체 생성 시 자동적으로 메모리 영역을 찾아서 할당하고, 사용이 완료되면 Garbage Collector
를 실행시켜 자동으로 사용하지 않는 객체를 제거시켜준다.
다양한 애플리케이션 개발 가능
윈도우, 리눅스, 유닉스, 맥 등 다양한 운영체제에서 실행되는 프로그램을 개발할 수 있다.
멀티 스레드(Muti-Thread)
를 쉽게 구현
하나의 프로그램이 동시에 여러 가지 작업을 처리해야 할 경우와 대용량 작업을 빨리 처리하기 위해 서브 작업으로 분리하여 병렬 처리
하려면 멀티 스레드 프로그래밍
이 필요하다. 자바는 스레드 생성 및 제어와 관련된 라이브러리 API를 제공
하고 있기 때문에 운영체제에 상관없이 멀티 스레드를 쉽게 구현할 수 있다.
동적 로딩(Dynamic Loading)
을 지원
애플리케이션이 실행될 때 모든 객체가 생성되지 않고, 객체가 필요한 시점
에 클래스를 동적 로딩
해서 객체를 생성한다. 유지보수가 발생하더라도 해당 클래스만 수정하면 되므로 전체 애플리케이션을 다시 컴파일할 필요가 없어 유지보수를 쉽고 빠르게 진행할 수 있다.
오픈소스 라이브러리
가 풍부
자바는 오픈소스 언어이므로, 자바에서 사용하는 라이브러리 또한 오픈소스가 많다. 검증된 오픈소스 라이브러리를 사용하면 개발 기간을 단축하면서 안정성이 높은 애플리케이션을 쉽게 개발할 수 있다.
완전한 기계어가 아닌 중간 단계의 바이트 코드인 자바 프로그램을 해석하고 실행할 수 있는 가상의 운영체제가 필요한데, 이 역할을 JVM
이 한다.
운영체제별로 프로그램을 실행하고 관리하는 방법이 다르기 때문에 운영체제와 자바 프로그램을 중계하는 JVM
을 두어 여러 운영체제에서 동일한 실행 결과가 나오도록 한다.
바이트 코드는 모든 JVM
에서 똑같은 실행 결과를 보장하지만, JVM
은 운영체제에 종속적이기 때문에 JVM
은 각 운영체제에 맞게 설치되어야 한다.
JDK
: JVM, 라이브러리 API, 컴파일러 등 개발 도구
JRE
: JVM, 라이브러리 API
💡 JDK 버전 때문에 다시 설치했습니다. Oracle JDK 19.0.1 버전을 설치하고 싶으시면 이 포스팅 그대로 진행하시면 되고 다른 버전을 설치하고 싶으시면 아래 [Open JDK 설치] 링크로 이동하시면 됩니다!
Oracle 홈페이지 접속 -> JDK 파일 다운로드
링크
본인 운영체제에 맞는 파일을 다운받는다.
순서대로 설치를 진행한다.
설치 완료 화면
터미널에 java -version
를 입력하면 제대로 설치가 되었는지 확인할 수 있다.
이 포스팅은
신용권, ⌜이것이 자바다-신용권의 Java 프로그래밍 정복⌟, 한빛미디어(주), 2015, 1,224
책을 참고했습니다.