Backend/java

[JAVA] 자바란?

양원준 2022. 9. 26. 01:38
728x90

JAVA의 탄생의 목적

  • 플랫폼 호환성 문제 해결
  • 플랫폼 독립적인 언어 개발
    • 모든 플랫폼에서 호환성을 갖는 프로그래밍 언어 필요
  • 메모리 사용량이 적고 다양한 플랫폼을 가지는 가전 제품에 적용

 

WORA(Write Once Run Anywhere)

  • 한번 작성된 코드는 모든 플랫폼에서 바로 실행
  • C/C++ 등 기존 언어가 가진 플랫폼 종속성 극복
  • WORA를 가능하게 하는 자바의 특징 
    • 바이트 코드, 자바 가상 기계(JVM)로 인하여 가능
    • 기존에 C/C+는 여러 소스(.c) 파일로 나누어 개발하여 링크를 통해 실행에 필요한 모든 코드를 하나의 실행 파일에 저장
    • ava는 여러 소스(.java)로 나누어 개발 하나 바이트 코드(.class)를 하나의 실행 파일로 만드는 링크 과정이 없으며 main()메소드를 가진 클래스에서 부터 실행 시작

+ 바이트 코드?는  JVM에서 실행 가능한 바이너리 코드

  • 바이트 코드는 컴퓨터 CPU에 의해 직접 실행되지 않음
  • JVM이 작동 중인 플랫폼에서 실행
  • JVM이 인터프리터 방식으로 바이트코드를 해석함

 

자바의 특성

1) 플랫폼 독립성(플랫폼에 상관없이 어디서든지 실행)

2) 객체지향(상속성, 다형성, 캡슐화)

3) 소스(.java)와 클래스(.class) 파일

  • 하나의 소스 파일에 여러 클래스 작성가능
  • 컴파일된 클래스 파일(.class)에는 클래스는 하나만 존재

자바 가상 기계(JVM)

1) 동일한 자바 실행 환경 제공

2) JVM 자체는 플랫폼에 종속적


자바 API(Application Programming Interface)

JDK에 포함된 클래스 라이브러리(== 주요한 기능들을 미리 구현한 클래스 라이브러리의 집합)

개발자는 API를 이용하여 쉽고 빠르게 자바 프로그램 개발이 가능하다

자바 온라인 API 문서 사이트: http://docs.oracle.com/javase/10/docs/api/

 


자바 패키지(package)

1) 서로 관련된 클래스들을 분류하여 묶어 놓은 것

2) 계층구조로 되어 있음

  • 다른 패키지에 동일한 이름의 클래스 존재 가능
  • 클래스의 이름에 패키지 이름 또한 포함 되있다

3) 자바 API는 JDK에 패키지 형태로 제공된다(필요한 클래스가 속한 패키지만 import하여 사용

4) 개발자 자신의 패키지 생성이 가능하다

 


자바 응용의 종류

1) 데스크톱 응용프로그램

2) 서블릿 응용프로그램

  • 서블릿이란? 자바 기반의 웹 애플리케이션 프로그래밍 기술
  • 웹의 요청과 응답의 흐름을 간단한 메소드 호출로 다룰 수 있게 해주는 기술

3) 안드로이드 앱

 

 

 

 

 

 

728x90

'Backend > java' 카테고리의 다른 글

[JAVA] 상속  (0) 2022.10.25