운영체제(OS)에 독립적
→ OS 관계없이 동일 코드로 동작. 이식성이 높다고도 표현함
객체 지향 프로그래밍(OOP)언어
사용하기 쉬운 언어
- 능률적이고 명확한 코드 작성 가능
- 다른 언어의 단점 보완(포인터, 메모리 관리)
자동 메모리 관리(Garbage Collection)
동적 로딩 지원
멀티쓰레드 지원
네트워크와 분산환경 지원
Java를 실행하기 위한 가상 기계로, OS(운영체제)에 관계없이 독립적으로 동작
(OS에 맞는 JVM을 설치하여 OS 종류 관계없이 JVM이라는 가상머신이 Java 코드를 동일하게 해석)

컴파일러가 01로 번역하는 과정 → 컴파일
설치 범위
사용자/개발자 입장에 따라 설치하는 범위가 달라짐

- JDK: 자바 개발 도구
- JRE: 자바 실행 환경
Eclipes 환경
project 만들기 → class 만들기 → class 작성 후 실행(▶️ 클릭 or Ctrl + F11 눌러 실행)
프로젝트의 명명 규칙
- 대/소문자 구분 없이 가능
- 대문자 사용을 권장
웹개발 시 패키지명의 명명 규칙
- 소문자
- 도메인 이름 역순
- 최소 3레벨
클래스 파일의 명명 규칙
- 대문자 시작
- 단어 구분 시 각 단어의 첫 글자 대문자 표기
- 특수문자 금지
객체를 만들기 위한 일종의 설계도
자바에서 모든 코드는 반드시 클래스 안에 존재해야 하며
서로 관련된 코드들을 그룹으로 나누어 별도의 클래스를 구성
클래스들이 모여 하나의 Java 애플리케이션 구성
public class 클래스명 {
/*
주석을 제외한 모든 코드는 블록 클래스 {} 내에 작성
*/
}
코드에 대한 설명이나 그 외 다른 정보를 넣을 때 사용하는 것으로
컴파일 시 컴파일러가 주석 부분은 해석하지 않음
/**/ : 범위 주석, /*와*/ 사이 내용은 주석으로 간주
// : 한 줄 주석, // 뒤의 내용은 주석으로 간주
public static void main(String[] args)는 고정된 형태의 메서드 선언부로
Java Application(프로그램)을 실행하는데 필요한 메서드
(프로그램 실행 시java.exe에 의해 호출됨)
모든 클래스가 main메서드를 가지고 있어야 하는 것은 아니지만
하나의 Java 애플리케이션에는 main 메서드를 포함한 클래스가 반드시 하나 이상 존재해야 함
public class 클래스명 {
public static void main(String[] args) { // 메인 메서드의 선언부
// 실행될 코드를 작성
}
}
main method 자동 완성: main 입력 후 ctrl + space + enter