본문 바로가기
Language/자바

자바 언어의 특징을 간략히 알아보자.

by 띵커베르 2021. 8. 25.
728x90

JAVA의 대표 이미지.

자바 언어의 특징을 간략히 살펴보겠습니다.

위키 백과에서 정의하는 자바

 

---

  • 자바란?

1955년 '썬 마이크로시스템즈'(제임스 고슬링 외 연구원들)에서 개발한 객체지향 언어입니다.
특징으로는 멀티쓰레드를지원하며, 동적 로딩 지원, 운영체제에 독립적이며, 자동 메모리 관리(gc) 등이 있습니다. 

 

특징을 한번 간략히 살펴보도록 하겠습니다.

    • 객체지향 언어이다.
      • 객체지향 프로그래밍이란? OOP - (Object Oriented Programming) - 위키백과(객체 지향 프로그래밍)
        • 컴퓨터 프로그래밍의 패러다임 중 하나이며, 컴퓨터 프로그램을 명령어의 목록으로 보는 시각에서 벗어나 여려 개의 독립된 단위, 즉 '객체'들의 모임으로 파악하고자 하며, 독립된 객체들은 메시지를 주고받고, 데이터를 처리할 수 있습니다.
      • 객체란 무엇인가요 - 위키백과(객체란)
        • 존재하는 모든 사물이나 생명체, 추상적인 것들을 포함한 모든 것입니다.
          객체는 크게 속성과 동작으로 구성되어 있습니다. 자바에서는 객체의 속성을 필드, 동작을 메서드라 부르며,
          소프트웨어 객체로 설계하는 것을 객체 모델링이라고 합니다.
      • 알면 좋은 것!! 
  • 멀티스레드 지원
    • 하나의 프로그램에서 여러 개의 스레드가 동시에 실행할 수 있는 환경을 지원합니다.
    • C / C++ 은 운영체제의 도움을 받아 멀티 스레드를 수행하지만, 자바는 운영체제 지원 없이 멀티 스레드 프로그래밍이 가능하다.
  • 동적 로딩 지원
    • JVM을 기반으로 하는 언어들의 공통적인 특징 
    • 애플리케이션이 실행될 때 모든 객체가 생성되지 않고, 필요한 시점에 클래스를 동적 로딩하여 사용합니다.
    • 필요한 기능만 메모리에 불러서 사용되어 유연함, 일부 클래스가 변경되어도 전체 애플리케이션을 컴파일하지 않아도 되는 장점이 있다.
    • 프래그램의 속도가 정적 로딩에 비해 느린 단점이 있다.
      • 느린 속도를 해결하기 위해 static 키워드를 사용한다. -> static 키워드를 만나면 애플리케이션이 구동할 때 메모리를 정적 메모리(static) 공간에 올려버린다.
      • 참고
        • 정적 로딩 - 애플리케이션 실행 시 실행 파일이 메모리에 적재되어 실행되는 로딩 방법. 메모리를 많이 차지하는 단점이 있지만 빠르게 가져와 사용되는 장점이 있다.
    • 자세히 알고 싶은 분은-> 자바-동적 로딩,  (자바 동적 로딩 이해(델리게이션 모델))
  • 운영체제 독립
    • 쉽게 말해 운영체제가 달라도 자바는 다시 컴파일 할 필요 없이 실행가능합니다.
      이를 JVM WORA(Write Once Run Anywhere:‘한 번만 작성하고 어디서든 실행한다) 이라고도 한다.
    • 이를 가능케 하는것은 JVM(Java Virtual Machine) 이라는 것 때문
  • 자동 메모리 관리(gc : garbage collection)
    • C 나 C++ 등 에서는 사용하지 않는 메모리는 직접 해제했어야 하지만 
      자바에서는 JVM이 지속적으로 메모리를 감시하면서 더이상 사용되지 않는 메모리를 해제시켜 준다.
    • Garbage Collection을 통해 메모리 관리를 자동으로 수행해주기 때문에 개발자는 메모리에 대해 신경 쓸 필요가 없다.
    • 직접 메모리를 해제하고 싶은경우 System.gc(); 로 호출할 수 있다.
    • //TODO : gc에 대해 포스팅을 해야함.

 

 

 

728x90

댓글