자바(JAVA)란?
자바는 썬 마이크로시스템즈에서 개발하였고 1996년 1월에 공식적으로 발표한 객체지향 프로그래밍언어이다.
자바의 가장 중요한 특징은 운영체제에 따라 독립적이다.
자바는 자바가상머신(JVM: Java Virtual Machine)을 사용하여 운영체제와 독립적으로 동작을 할 수 있다.
실행환경(JRE) + 개발도구(JDK) + 라이브러리(API)를 통해 쉽고 빠르게 애플리케이션 개발이 가능하다.
→ 다음에 JRE와 JDK, API에 대해 정리해 보겠다.
JDK란? JRE + 자바(JAVA) API 란?
JDK란 무엇이고 JRE, Java API는 무엇인지 알아보자! JDK란? (Java Devlopment Kit) 개발자들이 Java로 프로그램을 만들 수 있도록 다양한 기능을 제공하는 키트이다. 컴파일러, JRE(Java Runtime Environment), JVM등의
bears-paw.tistory.com
자바의 특징
1. 운영제제에 독립적이다.
- 기존 언어는 한 운영체제에 맞게 개발된 프로그램을 다양한 종류의 운영체제에 적용하기 위해서는 많은 노력이 필요했다.
- 일종의 에뮬레이터인 자바가상머신(JVM)을 통해 가능하게 했다.
- 자바 응용프로그램은 운영체제나 하드웨어가 아닌 JVM하고 통신하고
JVM이 자바 응용프로그램으로 부터 전달 받은 명령을 해당 운영체제가 이해할 수 있도록 변환하여 전달한다.
2. 객체지향언어이다.
- 객체지향개념의 특징인 상속, 캡슐화, 다형성을 완벽하게 지원한다.
3. 자동메모리 관리(Garbage Collection)
- 개발자가 직접 메모리에 접근할 수 없으면 자바가 직접 메모리를 관리한다.
- 프로그램실행 시 가비지 컬렉터(garbage coolector)가 자동적으로 메모리를 관리 해준다.
- 비효율 적일 수 있지만, 개발자가 프로그래밍에 좀더 집중할 수 있도록 해준다.
4. 네트워크와 분산처리를 지원한다.
- 풍부하고 다양한 네트워크 프로그래밍 라이브러리(Java API)를 통해 비교적 짧은 시간에 네트워크 관련 프로그램을 개발할 수 있게 지원해 준다.
- 자바에는 TCP/IP 라이브러리가 기본적으로 포함되어있고, Http와 Htp 프로토콜을 기본적으로 지원한다.
5. 멀티쓰레드를 지원한다.
- 멀티쓰레드는 하나의 프로그램에 동시에 여러개의 일을 수행할수 있도록 해주는 것이다.
6. 동적쓰레드를 지원한다.
- 자바 실행 시에 모든 클래스가 로딩되지 않고 필요한 시점에 클래스를 로딩하여 사용할 수 있다.
- 일부 클래스가 변경되어도 전체 애플리케이션을 다시 컴파일하지 않아도 되며,
변경사항이 발생해도 비교적 적은 작업만으로도 처리할 수 있는 유연한 애플리케이션 작성 가능하다.
단점
1. 속도문제
- 자바 실행을 위해 자바가상머신을 거쳐야 하므로 실행속도가 느리다.
2. 불편한 예외처리:
- 예외 처리가 잘 되어 있지만, 개발자가 일일이 처리해줘야 하는 것들이 있어서 불편함이 있다.
3. 실시간 응용시스템에 부적합하다.
- 가비지 컬렉션이 언제 어떻게 작동될지는 아무도 모르기 때문에 중간에 끊김 현상이 발생할 수 있어서 실시간 응용 시스템으로는 부적합하다.
'프로그래밍 > JAVA' 카테고리의 다른 글
[JAVA8]JDK1.8을 사용하는 이유는? + 왜 JDK1.8버전이라 부를까? (0) | 2022.12.11 |
---|---|
JDK다운로드 및 환경설정 + path, classpath는 왜 설정하는 걸까? (0) | 2022.12.10 |
이클립스(Eclipse) 다운로드 및 설치 방법 !_! (0) | 2022.12.10 |
JVM 이란? _자바가상머신 (0) | 2022.12.08 |
JDK란? JRE + 자바(JAVA) API 란? (1) | 2022.12.07 |
댓글