1995년에 발표된 객체 지향 프로그래밍 언어로, 자바를 사용하여 웹 프로그래밍, 안드로이드 어플, 게임 개발, 데이터 베이스 처리, 빅데이터 및 분산 처리, 클라우드 및 마이크로 서비스, 데스크탑 어플, API 및 웹 서비스 개발, 엔터프라이즈 어플 등의 일을 하고 만들 수 있다.
자바 코드의 가장 바깥쪽 영역은 클래스 블록, 클래스명은 소스파일의 이름과 반드시 일치해야 한다. 이 때는 그 class 앞에 public을 붙여줘야 한다는 관례적인 규칙이 있다. 클래스 블록은 여러 메서드 블록을 포함할 수 있다.
속성과 생성자
속성은 클래스의 상태를 나타내는 변수로, 클래스 내부에 선언된다.
생성자는 클래스 인스턴스를 생성할 때 실행되는 메서드로, 주로 속성을 초기화하는 용도로 사용한다.
메서드 접근 제어자
public - 누구나, 어디서든 접근 
private - 해당 클래스 내부에서만 접근 가능
protected - 같은 패키지나 상속받은 하위 클래스에서 접근 가능
none - 같은 패키지 않에서는 접근 가능, 다른 패키지에서는 접근 불가능
static
원래 자바의 메서드는 객체(instance)를 생성해야 접근이 가능함. 그런데 static을 붙이면 인스턴스를 생성하지 않아도 바로 클래스이름.메서드()로 접근 가능하다.
반환 자료형
메서드가 실행 된 후 반환되는 값의 자료형을 의미한다. 반환 값이 있을 경우 반드시 반환 자료형을 표기해야 하며 만약 반환값이 없는 경우라면 void로 표기해야한다.
입력 자료형
메서드명 뒤에 이어지는 괄호 안의 값(입력자료형 매개변수, ..)은 메서드의 매개변수를 뜻한다.
주석
// 라인 주석 (한 줄 주석)
/* ... */ 블록 주석 (여러 줄 주석)


println은 매개변수를 1개만 받을 수 있음, 그래서 위 코드를 실행하면 오류 발생함.
문자열과 배열을 같이 출력하려면 문자열 결합(+)과 Arrays.toString()을 써야함.
(toString()은 java.util.Arrays 클래스의 정적 메서드로, 배열 안의 요소들을 [ .. ] 형태의 문자열로 바꿔줌)

장보고갑니다.