자바
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) : 클래스, 인터페이스, 배열 — 객체의 주소를 저장한다
메서드에 인자를 넘길 때 기본형은 값이 복사되고, 참조형은 주소가 복사된다. 그래서 배열을 넘기면 호출된 메서드에서의 변경이 호출한 쪽에도 반영된다.
| 구분 | AWT | Swing |
|---|---|---|
| 등장 | JDK 1.0 | JDK 1.2 |
| 구현 방식 | 운영체제의 네이티브 컴포넌트를 사용(중량, Heavyweight) | 자바로 직접 그림(경량, Lightweight) |
| 외형 | 플랫폼마다 다르게 보인다 | 플랫폼과 무관하게 같게 보인다 |
| 컴포넌트 이름 | Button, Frame | JButton, JFrame — 앞에 J 가 붙는다 |
| 기능 | 기본적 | 풍부함 (테이블, 트리 등) |
Swing 은 AWT 를 기반으로 만들어졌으며, 이벤트 처리 구조는 AWT 의 것을 그대로 쓴다. 현재는 둘 다 JavaFX 와 웹 기반 UI 에 밀려 신규 개발에는 거의 쓰이지 않는다.
- 기업용 서버 애플리케이션 (Spring 프레임워크)
- 안드로이드 앱
- 빅데이터 처리 (하둡, 스파크)
