자바 언어의 대표적인 특징
- 운영체제에 독립적 : 자바 이전의 언어들은 특정 OS에 따라 다르게 작성해야 하는 언어들이었습니다. 자바는 자바 런타임 실행환경(JRE)가 설치되어 있는 모든 운영체제에서 실행이 가능하도록 만들어졌습니다.
- 객체지향 언어 : 자바는 객체지향 프로그래밍 개념을 사용하는 언어입니다. 모든 기능을 객체로 만들어 사용해야 합니다. 객체는 프로그램이 동작하는 부품이며, 여러 객체들을 만들고 조립하여 하나의 프로그램을 실행하는 개념이 객체지향 프로그래밍입니다. 객체지향적으로 설계된 프로그램은 유지보수가 쉽고 확장성이 높습니다.
- 자동 메모리 관리(Garbage Collector) : 자바는 개발자가 직접 메모리에 접근할 수 없으며, 메모리는 자바가 직접 관리합니다. 객체 생성시 자동으로 메모리 영역을 찾아서 할당하고, 사용이 완료된 객체는 가비지 컬렉터를 실행시켜 자동으로 메모리에서 체크하고 반환해줍니다.
- 멀티쓰레드 지원 : 동일한 쓰레드를 동시에 수행할 수 있습니다.
- 동적 로딩 지원 : 프로그램 실행시 모든 클래스가 로딩되지 않고 필요한 시점에 클래스를 로딩하여 사용할 수 있다. 애플리케이션의 변경사항도 비교적 적은 작업만으로 처리할 수 있다.
이 외에도 분산 네트워크 기술 지원, 라이브러리의 풍부함 등 특징들이 있습니다.
자바 버전 별 특징
- J2SE 5 (2004/9) : Generics, Annotation, Concurrency API, Enum, Auto Boxing/Unboxing, Static Import, Scanner
- Java SE 7 (2011/7) : Type Inference, try-with-resources, multi catch in try-catch, Diamond Operator <>, String in switch statement, NIO
- Java SE 8 (2014/3) : Lambda Expression, Method Reference, Default Methods in interface, Optional, java.time, Stream API
- Java SE 10 : var
- Java SE 11 (2018/9) : HTTP Client, ToArray, var in Lambda Expression
많은 키워드들이 있는데 차근차근 공부해 나가겠습니다.
'JAVA' 카테고리의 다른 글
[JAVA] Garbage Collection(GC) (0) | 2023.03.12 |
---|---|
[JAVA] 자바 가상 머신 JVM(Java Virtual Machine) 내부 구조 (0) | 2023.02.18 |