Java Study

Java란 무엇인가?

Z00_HWAN_99 2024. 6. 15. 23:20
728x90
반응형

우선 자바에 대해 공부해보기에 앞서서 Java란 무엇인지 어느정도는 익히고 들어가야 할 것 같아 간단하게 알아보려고 합니다.

 

Java는 객체지향프로그래밍 언어로, 1995년 썬 마이크로시스템즈(Sun Microsystems)의 제임스 고슬링(Jamese Gosling)과 다른 연구원들이 개발하여 발표했습니다. 처음에는 가전제품 내에 탑재해 동작하는 프로그램을 위해 개발되었지만, 현재는 웹 애플리게이션 분야에서 가장 많이 사용하는 언어 중 하나이고, 안드로이드를 비롯한 모바일 기기용 소프트웨어 개발에도 쓰이며 다양한 플랫폼에서 널리 사용되고 있습니다.

 

주요 특징?

1. 플랫폼 독립성(Write Once, Run Anywhere)

  • Java는 한 번 작성한 코드가 어떤 플랫폼에서도 실행될 수 있는 특징을 가집니다. 이는 Java Virtual Machine(JVM) 덕분입니다.
  • Java 코드는 바이트코드로 컴파일되며, JVM이 설치된 모든 환경에서 실행될 수 있습니다.

2. 객체 지향 프로그래밍(OOP)

  • Java는 객체지향 프로그래밍 언어로, 재사용성과 유지보수성이 높은 소프트웨어를 개발하는데 유리합니다.
  • 주요 OOP 개념으로는 클래스, 객체, 상속, 다형성, 캡슐화, 추상화 등이 있습니다.

3. 자동 메모리 관리(Garbage Collection)

  • Java는 자동으로 메모리를 관리하는 Garbage Collection 기능을 제공합니다. 이를 통해 개발자는 메로리 관리에 신경 쓰지 않고 코딩에 집중할 수 있습니다.

4. 풍부한 API와 라이브러리

  • Java는 표준 라이브러리(API)가 매우 풍부하며 동시에 다양한 기능을 쉽게 구현할 수 있습니다.
  • Ex) 데이터베이스 연결, 네트워킹, GUI, XML 파싱 등 많은 기능을 지원합니다.

5. 멀티쓰레딩 지원

  • Java는 멀티쓰레딩을 기본적으로 지원하여 병렬처리와 동시성을 쉽게 구현할 수있습니다. 이는 성능 향상과 응답성을 높이는 데 유립합니다.

6. 보안

  • Java는 보안에 중점을 두고 설계되었습니다. 클래스 로더와 바이트코드 검증, 보안 관리자 등을 토애 실행되는 코드를 보호합니다.

7. 풍부한 개발 도구

  • Eclipse, IntelliJ IDEA, NetBeans와 같은 강력한 통합 개발 환경(IDE)을 통해 개발 생산성을 높일 수 있습니다.
  • Maven, Gradle 등의 빌드 도구와 Junit을 통한 단위 테스트 지원 등도 제공합니다.

활용분야?

1. 웹 애플리케이션

  • Spring, JavaServer Faces(JSF), Struts와 같은 프레임워크를 사용하여 웹 애플리케이션을 개발할 수 있습니다.

2. 모바일 애플리케이션 

  • Android 애플리케이션을 주로 Java로 개발됩니다.

3. 데스크탑 애플리케이션

  • Swing, JavaFX를 사용하여 데스크탑 GUI 애플리케이션을 개발할 수 있습니다.

4. 기업용 애플리케이션

  • 대규모 엔터프라이즈 애플리케이션 개발에 사용됩니다.
  • Ex) Java EE를 사용한 서버 사이드 애플리케이션

5. 과학적 애플리케이션

  • 강력한 계산 및 데이터 처리 능력으로 과락적 연구 분야에서도 사용됩니다.

결론

Java는 그 강력함, 안정성, 플랫폼 독립성 등 다양한 장점들 덕분에 여전히 전 세계적으로 많은 개발들에 의해 널리 사용되는 프로그래밍 언어입니다. 또한, 지속적인 업데이트와 커뮤니티의 지원을 통해 다양한 애플리케이션 개발에 적합한 도구로 자리 잡고 있습니다.

 

https://github.com/bottomsUp-99

 

bottomsUp-99 - Overview

Backend Developer. bottomsUp-99 has 10 repositories available. Follow their code on GitHub.

github.com

 

728x90
반응형

'Java Study' 카테고리의 다른 글

JVM(Java Virtual Machine)의 구조  (0) 2024.06.16
자바 타입 변환  (0) 2024.06.16
Java 변수와 타입  (2) 2024.06.16
자바 프로그래밍의 3대 요소  (0) 2024.06.16
자바 개발환경(플랫폼의 이해)  (0) 2024.06.15