Menu
Coddy logo textTech

Java 치트시트

마지막 업데이트

Hello World 및 프로그램 구조

모든 Java 프로그램은 클래스 안의 main 메서드에서 실행됩니다.

요소코드
클래스 선언public class Main { ... }
진입점public static void main(String[] args) { ... }
한 줄 출력System.out.println("Hello, World!");
줄바꿈 없이 출력System.out.print("text");
입력 읽기Scanner sc = new Scanner(System.in);
클래스 임포트import java.util.ArrayList;
주석// line 그리고 /* block */

자료형

원시 타입은 소문자이며, 그 래퍼 클래스는 대문자로 시작합니다.

타입설명
int32비트 부호 있는 정수
long64비트 부호 있는 정수
double / float부동소수점 숫자
booleantrue 또는 false
char단일 16비트 유니코드 문자
byte / short8비트 / 16비트 정수
String불변 텍스트 (원시 타입이 아닌 클래스)
Integer, Double, Boolean원시 타입을 위한 래퍼 클래스
var추론된 지역 타입 (Java 10+)

변수

작업문법
선언 및 초기화int x = 5;
타입 추론 (지역)var name = "Ada";
상수final double PI = 3.14159;
문자열 연결String s = "Hi " + name;
문자열을 int로 변환int n = Integer.parseInt("42");
int를 문자열로 변환String s = String.valueOf(42);
서식 지정된 문자열String.format("%d items", n)

제어 흐름

문(statement)문법
if / elseif (x > 0) { ... } else { ... }
switch 문switch (n) { case 1: ...; break; default: ...; }
switch 표현식var s = switch (n) { case 1 -> "one"; default -> "other"; };
while 반복문while (i < n) { ... }
do-while 반복문do { ... } while (i < n);
for 반복문for (int i = 0; i < n; i++) { ... }
향상된 for (for-each)for (String item : list) { ... }
break / continuebreak;는 반복문을 빠져나가고, continue;는 다음 반복으로 건너뜀

메서드

작업문법
메서드 정의int add(int a, int b) { return a + b; }
반환값 없음void greet() { ... }
정적 메서드static int square(int x) { return x * x; }
공개 메서드public String getName() { return name; }
가변 인자(varargs)int sum(int... nums) { ... }
메서드 호출int r = add(2, 3);
정적 메서드 호출Math.max(a, b);
메서드 오버로딩int max(int a, int b)double max(double a, double b)

클래스 및 객체 지향(OOP)

작업문법
클래스 정의public class Dog { ... }
필드private String name;
생성자public Dog(String name) { this.name = name; }
객체 생성Dog d = new Dog("Rex");
게터 / 세터public String getName() { return name; }
상속class Puppy extends Dog { ... }
인터페이스interface Runnable { void run(); }
인터페이스 구현class Task implements Runnable { ... }
메서드 오버라이드@Override public void speak() { ... }

컬렉션

java.util의 제네릭 컬렉션.

타입사용법 및 예시
ArrayList<T>동적 배열: list.add(1); list.get(0); list.size();
HashMap<K, V>키-값: map.put("a", 1); map.get("a");
HashSet<T>고유 값: set.add(5); set.contains(5);
LinkedList<T>이중 연결 리스트, 큐/덱으로 적합
ArrayDeque<T>스택/큐: dq.push(x); dq.pop();
배열int[] nums = {1, 2, 3};
리스트 순회for (T x : list) { ... }
맵 순회for (var e : map.entrySet()) { e.getKey(); e.getValue(); }

스트림 및 람다

컬렉션에 대한 함수형 스타일 파이프라인 (Java 8+).

작업문법
람다 표현식x -> x * 2
스트림 생성list.stream()
필터.filter(n -> n > 0)
매핑 / 변환.map(n -> n * 2)
정렬.sorted() 또는 .sorted(Comparator.reverseOrder())
축약 / 합계.reduce(0, Integer::sum)
개수 / 일치.count(), .anyMatch(n -> n > 5)
리스트로 수집.collect(Collectors.toList())
각 요소 처리.forEach(System.out::println)

자주 쓰는 패턴 (try/catch, 제네릭)

패턴문법
try / catchtry { ... } catch (Exception e) { ... }
특정 예외 잡기catch (IOException e) { ... }
finallyfinally { ... }는 항상 실행됨
try-with-resourcestry (Scanner sc = new Scanner(...)) { ... }
예외 던지기throw new IllegalArgumentException("bad");
제네릭 클래스class Box<T> { T value; }
제네릭 메서드<T> T first(List<T> list) { ... }
제한된 타입<T extends Number>

가장 자주 쓰는 Java 문법, 컬렉션, 스트림 연산을 한 페이지에 담았습니다. 이 Java 치트시트는 Java를 작성하기 위한 빠른 참조 자료입니다 - 자료형, 제어 흐름, 클래스, ArrayList/HashMap 컬렉션, Streams API, 그리고 매일 사용하는 예외와 제네릭 패턴을 다룹니다.

여기 나오는 모든 내용은 표준 Java(Java 8 이상)이며 javac로 컴파일됩니다. 필요한 것을 복사하거나, Java 플레이그라운드에서 어떤 코드든 바로 실행해 보세요 - JDK를 설치할 필요가 없습니다.

Java 치트시트 자주 묻는 질문

이 Java 치트시트는 무료인가요?
네. 이 Java 치트시트는 완전히 무료이며 회원 가입이 필요 없습니다. 즐겨찾기에 추가해 두고 문법, 컬렉션, 스트림 연산을 찾아봐야 할 때마다 다시 방문하세요.
Java에서 ==와 .equals()의 차이는 무엇인가요?
객체의 경우 ==는 참조를 비교합니다 - 두 변수가 정확히 같은 객체를 가리키는지 - 반면 .equals()는 내용을 비교합니다. 같은 텍스트를 가진 서로 다른 두 String 객체는 .equals()로는 같지만 ==로는 같지 않을 수 있습니다. 문자열과 다른 객체의 값 동등성을 비교할 때는 항상 .equals()를 사용하고, ==는 원시 타입(int, boolean 등)이나 null 확인에만 사용하세요.
Java에서 스트림은 무엇에 쓰이나요?
Streams API(Java 8+)는 수동 반복문 대신 읽기 쉬운 연산 파이프라인 - filter, map, sorted, reduce, collect - 으로 컬렉션을 처리할 수 있게 해줍니다. list.stream()으로 시작해 중간 연산을 연결하고, collect(Collectors.toList())forEach 같은 종단 연산으로 마칩니다. 데이터 변환 코드를 간결하고 표현력 있게 유지해 줍니다.
Java를 온라인에서 연습할 수 있나요?
네. Java 플레이그라운드를 열어 이 치트시트의 어떤 코드든 브라우저에서 컴파일하고 실행해 보세요 - JDK를 설치할 필요가 없습니다. 체계적으로 배우고 싶다면, Coddy의 무료 인터랙티브 Java 강좌가 변수와 반복문부터 클래스, 컬렉션, 스트림까지 단계별로 안내합니다.
이 치트시트는 초보자에게 적합한가요?
네. 가장 흔한 구성 요소(타입, 제어 흐름, 메서드)부터 고급 요소(스트림, 제네릭, 예외)까지 순서대로 정리되어 있어, 첫날부터 상단 섹션을 사용하고 점차 나머지로 넓혀갈 수 있습니다.
Coddy programming languages illustration

Coddy로 Java 배우기

시작하기