자바

IT 위키
(JAVA에서 넘어옴)

Java

썬 마이크로시스템즈가 1995년 발표한 객체지향 프로그래밍 언어. 현재는 오라클이 관리한다.

  • 한 번 작성하면 어디서나 실행된다(Write Once, Run Anywhere)를 내세웠다.
  • 원시 코드를 기계어가 아니라 바이트코드로 컴파일하고, 자바 가상 머신(JVM)이 이를 해석·실행한다. 플랫폼에 독립적인 이유가 여기 있다.
  • 객체지향 : 캡슐화, 상속, 다형성을 지원한다. 다중 상속은 지원하지 않고 인터페이스로 대신한다.
  • 자동 메모리 관리 : 가비지 컬렉터가 사용하지 않는 객체를 회수한다. 포인터를 직접 다루지 않아 메모리 오류가 적다.
  • 플랫폼 독립성 : JVM 만 있으면 같은 바이트코드가 동작한다.
  • 멀티스레드 : 언어 차원에서 스레드와 동기화를 지원한다.
  • 예외 처리 : try-catch-finally 로 오류를 구조적으로 처리한다.

실행 구조

[편집 | 원본 편집]
원시 코드(.java) → [javac 컴파일] → 바이트코드(.class) → [JVM 해석·실행] → 결과
  • JVM (Java Virtual Machine) : 바이트코드를 실행하는 가상 기계
  • JRE (Java Runtime Environment) : JVM + 표준 라이브러리. 실행만 할 때 필요
  • JDK (Java Development Kit) : JRE + 컴파일러 등 개발 도구

자료형

[편집 | 원본 편집]
  • 기본형(Primitive) : byte, short, int, long, float, double, char, boolean — 값 자체를 저장한다
  • 참조형(Reference) : 클래스, 인터페이스, 배열 — 객체의 주소를 저장한다

메서드에 인자를 넘길 때 기본형은 값이 복사되고, 참조형은 주소가 복사된다. 그래서 배열을 넘기면 호출된 메서드에서의 변경이 호출한 쪽에도 반영된다.

GUI 라이브러리

[편집 | 원본 편집]
구분 AWT Swing
등장 JDK 1.0 JDK 1.2
구현 방식 운영체제의 네이티브 컴포넌트를 사용(중량, Heavyweight) 자바로 직접 그림(경량, Lightweight)
외형 플랫폼마다 다르게 보인다 플랫폼과 무관하게 같게 보인다
컴포넌트 이름 Button, Frame JButton, JFrame — 앞에 J 가 붙는다
기능 기본적 풍부함 (테이블, 트리 등)

Swing 은 AWT 를 기반으로 만들어졌으며, 이벤트 처리 구조는 AWT 의 것을 그대로 쓴다. 현재는 둘 다 JavaFX 와 웹 기반 UI 에 밀려 신규 개발에는 거의 쓰이지 않는다.

활용 분야

[편집 | 원본 편집]
  • 기업용 서버 애플리케이션 (Spring 프레임워크)
  • 안드로이드 앱
  • 빅데이터 처리 (하둡, 스파크)

같이 보기

[편집 | 원본 편집]