코이팅

자바(Java)란? 본문

JAVA

자바(Java)란?

코이팅 2023. 1. 5. 01:14
728x90
반응형

자바(JAVA)란?

자바는 썬 마이크로시스템즈(Sun Microsystems, Inc.)에서 개발하여 1996년 1월에 공식적으로 발표한 객체지향 프로그래밍 언어입니다. 웹 애플리케이션 코딩에 널리 사용되는 프로그래밍 언어입니다. 현재 '썬마이크로시스템즈'가 엔터프라이즈용 DB로 유명한 회사 '오라클'에 인수가 되었고, 그 이후 자바는 '오라클' 사에 의해 배포되고 있습니다.

 

자바(JAVA)언어의 특징?

💡 운영체제에 독립적이다.

  • 자바는 자바 가상 머신(JVM, Java Virtual Machine)을 사용하여 운영체제와 독립적으로 동작할 수 있습니다. 
  • 따라서 자바로 작성된 프로그램은 운영체제와 하드웨어 관계없이 실행 가능합니다.

Java Virtual Machine 구조 (출처:위키피디아)

💡 객체지향언어이다. (OOP, Object - Oriented Programming language)

  • 객체지향개념의 특징인 상속, 다형성, 캡슐화, 은닉이 잘 적용된 순수한 객체지향언어라는 평가를 받고 있습니다.
  • OOP는 4가지 특징을 활용해 코드의 재사용성을 증가하고 유지보수를 용이하게 만듭니다. 

    https://king-ja.tistory.com/41 👈🏻 객체지향 프로그래밍이란? 클릭하세요!

💡 비교적 배우기 쉽다.

  • 객체지향적 설계가 간결하면서도 명료하여 사용자들이 객체지향개념을 쉽게 이해하고 활용할 수 있도록 한 언어입니다.

💡 자동 메모리 관리(Garbage Collection)가 가능하다.

  • 자바로 작성된 프로그램이 실행되면, 가비지컬렉터가 자동적으로 메모리를 관리해주기 때문에 메모리 관리를 따로 하지 않아도 됩니다.

garbage collection (출처:위키피디아)

💡 네트워크와 분산처리를 지원한다.

  • 다양한 네트워크 프로그래밍 라이브러리(JAVA API)를 통해 비교적 짧은 시간에 네트워크 관련 프로그램을 쉽게 개발할 수 있도록 지원합니다.

💡 멀티쓰레드(multi-thread)를 지원한다.

  • 자바에서 개발되는 멀티쓰레드 프로그램은 시스템과는 관계없이 구현이 가능하며, 관련된 라이브러리(JAVA API)가 제공되므로 구현이 쉽습니다.
  • 여러 쓰레드에 대한 스케줄링을 자바 인터프리터가 담당합니다.

두 개의 실행 스레드를 가진 프로세스가 하나의 프로세서 위에서 실행 중인 모습. (출처:위키피디아)

💡 동적로딩(Dynamic Loading)을 지원한다.

  • 자바는 실행 시에 모든 클래스가 로딩되지 않고 필요한 시점에 클래스를 로딩하여 사용할 수 있습니다.
  • 일부 클래스가 변경되어도 전체 어플리케이션을 다시 컴파일 하지 않아도 됩니다.
  • 어플리케이션의 변경사항이 발생해도 비교적 적은 작업만으로도 처리할 수 있는 유연한 어플리케이션을 작성할 수 있습니다.
  • 반면에 그때 그때 메모리에서 불러오기 때문에 프로그램 실행 속도가 정적로딩에 비해 느립니다. (느린 속도를 해결하기 위해 static 키워드를 사용합니다.)
728x90
반응형

'JAVA' 카테고리의 다른 글

Java 자료형(Java Data Typ)  (0) 2023.01.11
JVM(Java Virtual Machine)이란?  (0) 2023.01.05
Comments