[JAVA] 자바란?
JAVA
자바의 역사
1991년 제임스 고슬링과 썬 마이크로 시스템즈 연구원들이 처음 개발하여 가전, 휴대용 장치에 사용되는 소프트웨어 언어로 개발되었다.
자바 실행 코드 생성
소스 코드를 기계어로 직접 컴파일하여 링크하는 C/C++ 의 컴파일러와 달리
자바 컴파일러는 바이트코드인 클래스 파일(.class)을 생성하고, 자바 가상 머신이 파일의 바이트 코드를 읽은 뒤 기계어로 바꾸어 실행한다.
자바는 플랫폼이 아닌 가상머신에 종속적이고, 프로그램 실행의 주체가 JVM(자바 가상 머신)이므로 플랫폼 종속성이 낮은 언어이다.
장점
- 플랫폼에 영향을 받지 않아서 다양한 환경에서 사용할 수 있다.
- 안정성
- 객체 지향 언어라 유지보수가 쉽고 확장성이 좋다
- 픙부한 기능이 제공되는 오픈소스
단점
- 처리 속도가 느리다.
- 하드웨어에 연결하여 제어할 수 없기 때문에, 정밀하게 조정해야 하는 프로그램 개발에는 적합하지 않다.
객체 지향 프로그래밍
Object Oriented Programming(OOP)
프로그래밍에는 두 가지 방식이 있다.
절차지향 프로그래밍과 객체지향 프로그래밍이다.
시간의 흐름 순서로 프로그래밍을 하는 것을 절차지향 프로그래밍이라고 하고,
프로그램의 구현을 객체간의 관계와 협력을 기반으로 프로그램 하는 것을 객체지향 프로그래밍이라고 한다.
절차지향 언어에는 c언어가 있고,
객체 지향 언어에는 Java, c++, c#, python, js, ruby 등의 언어가 있다.
장점
캡슐화
객체지향의 경우, 필요한 속성과 행위를 객체로 묶어 사용할 수 있고, 캡슐화하여 사용할 수 있다.
상속
작성된 클래스를 상속받아 새로운 클래스를 생성하는 방식으로 기존 코드를 재활용해서 사용할 수 있다.
다향성
재정의와 다중정의하여 동일한 작업을 하는 함수들에 같은 이름을 부여할 수 있다.
단점
개발 설계의 복잡성
느린 런타임 속도
용어 정리
JDK
Java Development Kit
자바에서 제공되는 개발용 라이브러리.
JRE
Java Runtime Environment
자바 프로그램이 실행되는 환경
8.0까지 무료로 제공된다.
JVM
Java Virtual Machine
자바 가상 머신으로 프로그램이 실행되는 환경인 JRE가 설치되어 있어야 한다.
API
Application Programming Interface
자바 응용 프로그램 개발에 사용하는 라이브러리
GC
Garbage Collector
프로그램이 동적으로 할당했던 메모리 영역 중에서 필요없게 된 자원을 해제하는 기능이다.
사용하지 않는 객체는 자동적으로 GC에 의해 인식되어 자원을 반납한다.