[TIL-DAY9] Java 문법 종합반 강의 4, 5주차 정리 [throw, 쓰레드, 스트림]

김유란·2025년 1월 6일

1. throws와 throw

	class OurClass {
    	private final Boolean just = true;
		
    	public void thisMethodIsDangerous() throws OurBadException {
        	if (just) {
            	throw new OurBadException();
        	}
    	}
	}
  • throws

    • 메서드 이름 뒤에 붙어 메서드가 어떠한 예외사항을 던질 수 있는지 알려주는 예약어
    • 여러 종류의 예외사항 적을 수 있음
  • throw

    • 메서드 안에서 실제로 예외 객체를 던질 때 사용하는 예약어
    • 실제로 던지는 예외 객체 하나와 함께 써야 하며 throw문과 함께 메서드가 종료됨

2. 멀티 쓰레드

싱글 쓰레드: 프로세스 안에서 하나의 쓰레드만 실행되는 것

  • main() 메서드만 실행시켰을 때 싱글 쓰레드로 실행되고 있는 것

멀티 쓰레드: 프로세스 안에 여러 개의 쓰레드가 실행되는 것

  • 하나의 프로세스는 여러 개의 실행 단위(쓰레드)를 가질 수 있으며 이 쓰레드들은 프로세스의 자원을 공유
  • 메인 쓰레드 안에서 다른 작업 쓰레드들을 생성하여 실행하는 방식
  • 운영체제의 상황에 따라 결과값이 가변적으로 바뀌므로 걸리는 시간과 동작 예측 불가능

3. 데몬 쓰레드와 사용자 쓰레드

데몬 쓰레드: 보이지 않는 곳(background) 에서 실행되는 낮은 우선순위를 가진 쓰레드
사용자 쓰레드: 보이는 곳(foregorund)에서 실행되는 높은 우선순위를 가진 쓰레드

  • 메인 쓰레드 등이 모두 사용자 쓰레드에 해당

⚠️ JVM 은 사용자 쓰레드의 작업이 끝나면 데몬 쓰레드도 자동으로 종료시켜 버림

4. 스트림 API

  • forEach()
    • 각각의 원소에 넘겨받은 함수를 실행
  • map()
    • forEach와는 반대로 넘겨받은 토대로 값을 변환시키는데 주로 사용
    • 모든 요소를 가공해서 반환
  • filter()
    • 조건에 맞는 것만 반환

0개의 댓글