02. 기술 면접 - 자바 - 자바 언어의 장점
공부목적으로 다른 블로그의 글을 그대로 따라치면서 작성되었습니다. 저작권 문제 시, 비공개 처리하겠습니다
JAVA 언어의 장단점
- 장점
- 운영체제에 독립적이다
- JVM 에서 동작하기 때문에, 특정 운영체제에 종속되지 않는다
- 객체지향 언어이다
- 객체지향적으로 프로그래밍 하기 위해 여러 언어적 지원을 하고 있다 (캡슐화, 상속, 추상화, 다형성 등)
- 객체지향 패러다임의 특성상 비교적 이해하고 배우기 쉽다 (C와 C++ 기준 시)
- 자동으로 메모리 관리를 해준다
- JVM 에서 Garbage Collector(가비지 컬렉터) 라고 불리는 Demon Thread(데몬 쓰레드)에 의해
GC(Garbage Collection)가 일어난다. GC로 인해 별도의 메모리 관리가 필요 없으며, 비즈니스 로직에
집중 할 수 있다 (자세한 내용은 망나니 개발자님 블로그 참고 https://mangkyu.tistory.com/118)
- 오픈소스이다
- 정확히 말하면 OpenJDK 가 오픈소스 이다. OracleJDK 는 사용 목적에 따라 유료가 될 수 있다
- 많은 Java 개발자가 존재하고 생태계가 잘 구축되어있다. 덕분에 오픈소스 라이브러리가 풍부하며
잘 활용한다면 짧은 개발시간내에 안정적인 애플리케이션을 쉽게 구현할 수 있다
- 멀티쓰레드를 쉽게 구현할 수 있다
- 자바는 스레드 생성 및 제어와 관련된 라이브러리 API 를 제공하고 있기 때문에 실행되는 운영체제에 상관없이
멀티스레를 쉽게 구현할 수 있다
- 동적로딩(Dynamic Loading)을 지원한다
- 애플리케이션이 실행될 때 모든 객체가 생성되지 않고, 각 객체가 필요한 시점에 클래스를 동적 로딩해서 생성
한다. 또한 유지보수 시 해당 클래스만 수정하면 되기 때문에 전체 애플리케이션을 다시 컴파일 필요가 없다
따라서 유지보수가 쉽고 빠르다
- 단점
- 비교적 속도가 느리다
- 자바는 한 번의 컴파일링으로 실행 가능한 기계어가 만들어지지 않고 JVM에 의해 기계어로 번역되고 실행하는
과정을 거치기 때문에 C나 C++ 의 컴파일 단계에서 만들어지는 완전한 기계어보다 속도가 느리다. 그러나
하드웨어의 성능 향상과 바이트 코드를 기계어로 변환해주는 JIT 컴파일러 같은 기술 적용으로 JVM의 기능이
향상되어 속도의 격차가 많이 줄어들었다
- 예외처리가 불편하다
- 프로그래머 검사가 필요한 예외가 등장한다면 무조건 프로그래머가 선언을 해줘야 한다
(명시적으로 무조건 적어주어야 된다는 말인 것 같다 다른 언어는 안해주어도 자동으로 기본 예외 해줌?)
참고
https://mangkyu.tistory.com/118
'∞. 기술 면접 > 7. 자바' 카테고리의 다른 글
06. 기술면접 - 자바 - Non Static 과 Static (0) | 2021.10.21 |
---|---|
05. 기술면접 - 자바 - OOP 의 4가지 특징과 OOP 5가지 설계 원칙 (1) | 2021.10.20 |
04. 기술면접 - 자바 - 래퍼 클래스 (Wrapper Class) (0) | 2021.10.20 |
03. 기술면접 - 자바 - 접근 제어자(Access Modifier)와 데이터 타입 (Data Type) = 자료형 (0) | 2021.10.20 |
01. 기술면접 - 자바 - JAVA 와 C/C++ 차이점 (0) | 2021.10.20 |
댓글
이 글 공유하기
다른 글
-
05. 기술면접 - 자바 - OOP 의 4가지 특징과 OOP 5가지 설계 원칙
05. 기술면접 - 자바 - OOP 의 4가지 특징과 OOP 5가지 설계 원칙
2021.10.20 -
04. 기술면접 - 자바 - 래퍼 클래스 (Wrapper Class)
04. 기술면접 - 자바 - 래퍼 클래스 (Wrapper Class)
2021.10.20 -
03. 기술면접 - 자바 - 접근 제어자(Access Modifier)와 데이터 타입 (Data Type) = 자료형
03. 기술면접 - 자바 - 접근 제어자(Access Modifier)와 데이터 타입 (Data Type) = 자료형
2021.10.20 -
01. 기술면접 - 자바 - JAVA 와 C/C++ 차이점
01. 기술면접 - 자바 - JAVA 와 C/C++ 차이점
2021.10.20