모의면접에서 Java의 특징에대해서 물어보셨는데 순간 기억이 안나서 당황한 기념으로 Java의 특징에 대해서 이해가능한 범위내에서 정리해 보았다
이식성이 높은 언어이다
참고: JDK, JRE, JVM 차이
- JDK (Java SE Development Kit)
- 자바 개발 키트
- JRE + 컴파일러 + 디버거 등의 개발 도구
- JRE(Java Runtime Environment)
- 자바 구동 환경
- 개발자가 아니라 JavaApplication만 돌리는 사용자라면 JRE만 설치하면 된다
- JVM + 시스템 라이브러리
- JVM(Java Virtual Machine)
- 운영체제 독립적으로 동작하기위해 필요함
- 자바 프로그램의 메모리를 효율적으로 관리 & 최적화 해줌
객체 지향 언어이다
메모리를 자동으로 관리한다
함수형 프로그래밍 지원
- Java 8부터 람다식을 통해 함수형 프로그래밍을 지원
다양한 애플리케이션 개발
- 다양한 운영체제에서 동작할 수 있는 콘솔프로그램, 클라이언트용 윈도우 어플리케이션, 서버용 웹 어플리케이션, 모바일용 안드로이드 까지 거의 모든 곳에서 실행되는 프로그램을 개발 할 수 있음
멀티쓰레드를 쉽게 구현 가능
- 자바는 쓰레드 생성 및 제어와 관련된 라이브러리 API를 제공하고있기 때문에 실행되는 운영체제에 관계없이 멀티 쓰레드를 쉽게 구현 가능함
출처