[TIL] 2024-07-22

성장일기·2024년 7월 22일

회고

목록 보기
10/37

중요 학습 내용 [JAVA]

EXCEPTION

  • 상속 관계
Throwable
    |-- Error
    |-- Exception
        |-- RuntimeException
            |-- ArithmeticException
            |-- NullPointerException
            |-- IndexOutOfBoundsException
            |-- ...
        |-- ...
        |-- IOException
            |-- EOFException
            |-- FileNotFoundException
            |-- ...

오버라이딩 시, 예외 발생 가능 범위

  • 부모 클래스의 메서드를 오버라이딩 시, 원본 메서드보다 상위 예외를 발생시킬 수 없다.
    • ex) 부모: RuntimeException, 자식: Exception 불가

Checked Exception / Unchecked Exception

  • IOException이나 EOFException과 같이 RuntimeException의 자식 클래스가 아닌 Exception의 자식 클래스들은 java에서 직접 예외처리를 해주지 않기에, 반드시 직접 처리해줘야 한다.

Input/Output

  • 영속성 데이터를 다룰 수 있다.

File

  • 파일을 다루기 위해 제공되는 객체 -> 실제 파일 X

Stream

  • 바이트 단위 스트림 vs 문자 단위 스트림

    • 바이트 단위 스트림
      • 1byte씩 데이터 전달
    • 문자 단위 스트림
      • encoding 방식에 맞춰 데이터 전달
        • ex) utf-8: 영어, 숫자를 제외한 문자 - 1글자를 3byte로 취급
        • ms-949: 영어, 숫자를 제외한 문자 - 1글자를 2byte로 취급
        • etc
  • 보조 스트림(Wrapper Stream)

    • Buffer를 사용하여 매번 데이터를 옮기지 않고 특정 기준에 다다르면 buffer에 있는 데이터를 한 번에 옮겨 빠르다.
    • 문자 단위 스트림을 감싸서 filtering을 통해 여러 기능 제공
    • buffer나 출력을 사용 시, buffer의 일정 용량이 차지 않아도 flush를 통해 전달을 완료해야한다.
    • 종류
      • Scanner: 명시적으로 close하지 않아도 된다.
      • 입출력 성능 향상: I/O관련 메소드 제공
        • BufferedInputStream/BufferedOutputStream
      • 형변환 보조스트림: encoding 방식을 고려
        • InputStreamReader/OutputStreamWriter
      • 기본 자료형 데이터 입출력: 기본자료형 및 문자열 관련 타입에 따른 메소드 제공
        • DataInputStream/DataOutputStream
      • 객체 자료형 데이터 입출력: 객체 단위 입출력을 위함
        • ObjectInputStream/ObjectOutputStream
  • 분류

    분류바이트 단위 스트림문자 단위 스트림
    기반 스트림FileInputStream
    FileOutputStream
    FileReader
    FileWriter
    보조 스트림BufferedInputStream
    BufferedOutputStream
    DataInputStream
    DataOutputStream
    PrintStream
    BufferedReader
    BufferedWriter
    InputStreamReader
    OutputStreamWriter
    PrintWriter

MIND SET

  • 항상 책임을 진다는 마음 가짐을 잃지 말자!
profile
엔지니어로의 성장일지

0개의 댓글