본문 바로가기
자바

자바 개념 - 자바의 특징

by y00ns00 2020. 5. 27.

운영체제에 독립적이다

 - 자바 가상머신을통해 자바 응용프로그램은 운영체제나 하드웨어가 아닌 JVM(자바가상머신)을 통해서만 통신한다

JVM은 자바응용프로그램으로부터 받은 명령을 해석하여 운영체가 이해할 수 있도록 변환하여 전달한다.

 -> 자바는 운영체제에 독립적이고 JVM은 운영체제에 종속적이므로 sun에서서 여러 운영체제에서 실행할 수 있도록

여러 버전의 JVM을 제공한다.

 

객체지향 언어이다

OOP (객체지향 프로그래밍) (중요)
객체지향 프로그래밍은 컴퓨터 프로그래밍 패러다임(견해, 사고법)의 하나로, 프로그래밍에서 필요한 데이터를 추상화 시켜서 상태(속성, 어트리뷰트)와 행위(메서드)를 가진 객체 로 만들고, 그 객체간의 상호작용을 통해 로직을 구성하는 방법.

  • 장점
    • 다른 클래스를 가져와 사용할 수 있고, 상속받을 수 있어 코드의 재사용성 증가
    • 절차지향보다 유지보수가 간단
    • 클래스 단위로 모듈화가 가능하여, 대형 프로젝트에 적합
  • 단점
    • 처리속도가 상대적으로 느리다.
    • 객체가 많으면 용량이 커진다.
    • 설계시 많은 노력과 시간이 필요하다.

 

함수적(람다식) 스타일 코딩을 지원한다.

 대용량의 데이터병렬 처리와 이벤트 지향 프로그래밍을 위해 적합

 컬렉션 요소를 필터링,매핑,집계 처리 하는게 쉬워지고 코드가 매우 간결해지는 장점이 있다.

 

 

메모리 자동 관리

 c++은 사용자가 메모리관리를 위해 직접 코드 작성

 java는 개발자가 메모리에 직접 접근할 수 없으며 자바가 직접 관리

객체를 생성하면 자동으로 메모리 영역을 찾아서 할당하고, 사용이 완료되면 Garbage Collector를 싱행시켜 자동적으로 사용하지 않는 개체를 제거

 

멀티 스레드를 쉽게 구현

 자바는 스레드 생성 및 제어와 관련된 라이브러리 API를 제공하고 있기 때문에 실행되는 운영체제에 상관없이 멀티 스레드를 쉽게 구현할 수 있다.

 

동적로딩 지원

 애플리케이션이 실행될 때 모든 객체가 생성되지 않고 각 객체가 필요한 시점에 클래스를 동적 로딩해서 생성

 또한 유지보수시 해당 클래스만 수정하면 되기때문에 전체 애플리케이션을 다시 컴파일 할 필요가 없다

 즉 . 유지보수가 쉽고 빠르다.

 

오픈소스 라이브러리 풍부

자바는 오픈소스 언어이기 때문에 자바 프로그램에서 사용하는 라이브러릴 또한 오픈소스가 많다 오픈소스 라이브러리를 사용하면 개발 시간을 단축하면서 안정성이 높은 애플리케이션을 쉽게 개발할 수 있다.

 

 

속도가 느리다

 자바는 한번의 컴파일링으로 실행 가능한 기계어가 만들어지지 않고 JVM에 의해 기계어로 번역되고 실행하는 과정을 거치기때문에 느리다

 

예외처리 불편

 자바는 다른 언어들과 달리 프로그램 실행시 발생할 수 있는 예외(Exception)들을 개발자가 직접 선언하여 처리해야 한다. 

그렇지 않으면 컴파일이 불가능하다.

 

 

'자바' 카테고리의 다른 글

Exception 과 Error  (0) 2023.06.08
HashMap과 LinkedHashMap  (0) 2021.05.15
프로세스와 스레드  (0) 2020.06.09
자바 collection  (0) 2020.05.27
자바 개념정리 객체지향이란  (0) 2020.05.27

댓글