1996년, 미국 Sun Microsystems의 제임스 고슬링에 의해 발표된
플랫폼 독립적인 객체지향 프로그래밍 언어
플랫폼 독립성
→ JVM 위에서 실행되므로 운영체제에 관계없이 동일한 코드 실행 가능
객체지향 언어
→ 클래스 기반 구조로 캡슐화, 상속, 다형성을 지원
엄격한 자료형 검사
→ 컴파일 시점에서 자료형 오류를 철저히 검사
강력한 예외 처리
→ try-catch 구문을 통한 안정적인 예외 제어
멀티스레딩 지원
→ 하나의 프로그램에서 여러 작업을 동시에 수행 가능
분산 처리 기능
→ TCP/IP, HTTP 등의 네트워크 라이브러리 지원
동적 클래스 로딩
→ 실행 중 필요한 클래스를 메모리에 동적으로 로드
아키텍처 중립성
→ 바이트코드는 JVM이 있는 환경이라면 어디서나 실행 가능
다양한 응용 프로그램 개발 가능
→ 웹, 모바일, 데스크탑, 서버 등 다양한 플랫폼 대응
Java 프로그램의 개발과 실행을 위한 환경

📌 사용자는 운영체제에 맞는 Java 플랫폼 설치 필요

| 파일 종류 | 확장자 | 설명 |
|---|---|---|
| 소스 코드 | .java | 개발자가 작성한 코드 |
| 바이트코드 | .class | 컴파일 결과로 생성되는 실행 파일 |
💡 바이트코드: JVM이 해석할 수 있는 중간 코드 형태
Java 플랫폼과 개발 도구(컴파일러, 디버거 등) 의 묶음
d:\java>javac HelloApplication.java # ① 컴파일
d:\java>java HelloApplication # ② 실행
Hello, Java Application!
.javapublic class는 하나만 허용public 클래스 이름// HelloApplication.java
public class HelloApplication {
public static void main(String[] args) {
System.out.println("Hello, Java Application!");
}
}
javac).java → .class 변환javac HelloApplication.java
✔
HelloApplication.class생성됨
java)main() 메서드가 포함된 클래스를 실행java HelloApplication
⚠ 클래스명만 입력,
.class확장자 생략
| 단계 | 명령어 | 설명 |
|---|---|---|
| 작성 | .java 파일 생성 | Java 소스 코드 작성 |
| 컴파일 | javac Hello.java | 바이트코드(.class) 생성 |
| 실행 | java Hello | JVM이 바이트코드 실행 |
Java 애플릿
Java VM을 탑재한 웹 브라우저에서 실행되는 Java 프로그램
HTML 문서를 클라이언트가 요청HTML 문서에 애플릿 프로그램을 포함시키기 위해 <APPLET> 태그가 사용됨HTML 문서 예시<HTML>
<HEAD> <TITLE>Java Applet</TITLE> </HEAD>
<BODY>
<APPLET CODE="HelloApplet.class" WIDTH=200 HEIGHT=100>
</APPLET>
</BODY>
</HTML>

public class 이름 = 파일명 (A.java → public class A)package com;
public class Main {
public static void main(String[] args) {
// 실행 진입점
}
}
객체를 만들기 위한 설계도 또는 틀
하나의 클래스는 여러 객체의 인스턴스화가 가능