Java Study

자바의 정석 개인적 공부 요약

초코너무조코 2025. 1. 15. 18:47
728x90

1장: 자바 소개

  • 자바 개요: 플랫폼 독립적, 보안성, 멀티쓰레드, 객체 지향 언어.
  • 특징: 한 번 작성하면 어디서나 실행 가능(WORA), 자동 가비지 컬렉션, 견고한 에러 처리.
  • JDK, JRE, JVM:
    • JDK: 자바 프로그램 컴파일 및 실행을 위한 개발 키트.
    • JRE: 자바 바이트코드를 실행하는 런타임 환경.
    • JVM: 바이트코드를 기계어로 변환하는 가상 머신.

2장: 변수와 데이터 타입

  • 기본 데이터 타입: byte, short, int, long, float, double, char, boolean.
  • 참조 데이터 타입: 배열, 객체, 문자열.
  • 형 변환: 암시적(자동) 및 명시적(수동) 변환.
  • 상수: final 키워드로 변경 불가능한 변수 정의.

3장: 연산자와 제어문

  • 연산자:
    • 산술: +, -, *, /, %.
    • 관계: ==, !=, <, >, <=, >=.
    • 논리: &&, ||, !.
    • 비트: &, |, ^, ~.
  • 제어문:
    • 조건문: if, else, switch.
    • 반복문: for, while, do-while.
    • 점프문: break, continue.

4장: 클래스와 객체

  • 클래스 구조: 필드, 메서드, 생성자.
  • 객체 생성: new 키워드 사용.
  • 캡슐화: private 필드와 public getter/setter로 구현.
  • 정적(static) vs 인스턴스 멤버:
    • static: 모든 인스턴스가 공유.
    • 인스턴스 멤버: 각 객체에 고유.

5장: 메서드

  • 메서드 종류:
    • 인스턴스 메서드.
    • 정적 메서드 (static 키워드 사용).
    • 메서드 오버로딩: 동일한 이름의 메서드, 다른 매개변수.
  • 가변 인자 (varargs):
    public void printArgs(String... args) {
        for (String arg : args) {
            System.out.println(arg);
        }
    }
    

6장: 상속

  • 개념: 부모 클래스의 필드/메서드를 재사용.
  • 주요 용어:
    • super: 부모 클래스 멤버에 접근.
    • 메서드 오버라이딩: 부모 메서드를 자식 클래스에서 재정의.
    • final 클래스/메서드: 상속 또는 오버라이딩 불가.

7장: 다형성

  • 컴파일 타임(정적): 메서드 오버로딩.
  • 런타임(동적): 메서드 오버라이딩.
  • 업캐스팅과 다운캐스팅:
    Animal a = new Dog(); // 업캐스팅
    Dog d = (Dog) a;      // 다운캐스팅
    

8장: 예외 처리

  • 핵심 개념:
    • try-catch-finally: 예외 처리.
    • 사용자 정의 예외: Exception을 상속하여 구현.
  • 체크 예외 vs 언체크 예외:
    • 체크 예외: 처리하거나 선언 필요.
    • 언체크 예외: 런타임 시 예외.

9장: java.lang 패키지와 유용한 클래스

  • Object 클래스:
    • 주요 메서드: equals(), hashCode(), toString().
  • String 클래스:
    • 불변 클래스, 주요 메서드: substring(), indexOf().
  • Math 클래스:
    • 주요 메서드: abs(), ceil(), floor(), pow(), random().

10장: 입출력(I/O)

  • 파일 처리:
    • FileReader, FileWriter: 텍스트 파일.
    • FileInputStream, FileOutputStream: 바이너리 파일.
  • 직렬화:
    • ObjectOutputStream으로 객체 저장.
    • ObjectInputStream으로 복원.

11장: 컬렉션 프레임워크

  • 인터페이스: List, Set, Map.
  • 클래스:
    • ArrayList, LinkedList, HashSet, HashMap.
  • 주요 메서드:
    • add(), remove(), contains(), get(), put().

12장: 제네릭, 열거형, 애너테이션

  • 제네릭: 타입 안전 컬렉션.
    List<String> list = new ArrayList<>();
    
  • 열거형(Enum): 상수를 정의하며 메서드 추가 가능.
  • 애너테이션: 코드 메타데이터 (@Override, @Deprecated).

13장: 쓰레드

  • 쓰레드 생성:
    • Thread 클래스.
    • Runnable 인터페이스.
  • 동기화:
    • synchronized 키워드.
    • ReentrantLock, Condition.
  • 주요 메서드:
    • start(), run(), join(), sleep().

14장: 람다와 스트림

  • 람다 표현식:
    • 문법: (params) -> { body }.
  • 스트림(Stream):
    • 컬렉션을 처리하는 API, 주요 메서드: filter(), map(), reduce().
  • Collectors 클래스:
    • 결과를 리스트, 그룹화 등으로 변환 (toList(), groupingBy()).

15장: 입출력 심화

  • 스트림 종류:
    • 바이트 스트림: InputStream, OutputStream.
    • 문자 스트림: Reader, Writer.
  • 버퍼 스트림:
    • BufferedReader, BufferedWriter: 효율적인 I/O.
  • 직렬화:
    • 객체를 바이트 스트림으로 변환.

16장: 네트워크 프로그래밍

  • 소켓 프로그래밍:
    • TCP: Socket, ServerSocket.
    • UDP: DatagramSocket, DatagramPacket.
  • HTTP 통신:
    • HttpURLConnection을 사용한 요청/응답.
  • 멀티쓰레드 서버:
    • 다중 클라이언트를 동시에 처리.
  • URL 클래스:
    • 인터넷 자원의 주소를 분석 및 제공.

 

728x90