본문 바로가기
부트캠프

[TIL] 유데미 X 사람인 취업 부트캠프 24일차 / java

by 상똥 2024. 1. 17.

[1. 오늘 배운 것]

1. 함수형 프로그래밍

- 정렬

- 중복값 제거

- map

 

2. 연습문제

- 1~9의 제곱 출력

- 리스트 내의 단어들을 소문자로 출력

- 리스트 내의 단어들의 길이를 각각 출력

 

3. 스트림의 종단연산

- 1~10까지의 합 구하기

- 최대값, 최소값 구하기

 

4. Collerctors.toList

 

5. Optional

- 널 포인터 예외라는 오류를 피하고자 할 때 사용

- 결과에 아무 값도 없다면 null값 환원

- 따라서, object()함수 대신 옵셔널로 값을 환원받을 수 있음

 

6. 함수형 인터페이스

- Function : 입력값을 받고 어떤 출력값 반환

- Predicate : 입력값이 참인지 거짓인지 확인

 

7. 코딩 실습

- 홀수 걸러내기

return numbers.stream()
    .filter(n -> n % 2 != 0)
    .collect(Collectors.toList());

- N개의 첫 숫자들의 세제곱 구하기

return IntStream.range(1, n + 1)
    .map(num -> num * num * num)
    .boxed()
    .collect(Collectors.toList());

- 강의명의 길이 구하기

if (courses == null) { 
    return List.of(); 
}
return courses.stream()
              .map(String::length)
              .collect(Collectors.toList());

- 제곱의 합 구하기

if (numbers == null) { return 0; }
return numbers.stream()
              .mapToLong(num -> num * num)
              .sum();

- 짝수 최대값 구하기

if(numbers == null){ 
    return 0; 
}
Optional<Integer> maxEven = numbers.stream()
                                   .filter(num -> num % 2 == 0)
                                   .max(Integer::compare);
return maxEven.orElse(0);

 

8. 스레드

- 스레드 : 하나의 프로세스 내부에서 독립적으로 실행되는 하나의 작업 단위

- 멀티스레딩 : 여러 스레드를 동시에 실행시키는 응용프로그램을 작성하는 기법

- 메모리 공유로 인한 시스템 자원 소모가 줄어들지만 충돌 가능성

 

9. 스레드 퀴즈

- runnable 인터페이스를 구현하는 이유 : 스레드에 의해 실행될 수 있는 클래스를 생성

- RUNNABLE : 스레드가 실행될 준비가 되어있지만 실행되지 않는 상태

- 스레드 우선순위의 범위 : 1-10

- 스레드에 할당된 기본 우선순위 : 5

- join() : 다른 스레드가 완료될때까지 스레드가 대기할 수 있게 함

- 스레드 이용시 단점 : 실행을 자세히 제어할 수 없음/관리가 어려움/서브태스크에서 결과를 받을 방법이 없음

 

10. 예외처리 기본

- try{실행문}catch(Exception ex){예외 발생시 실행문}

- ex.printStackTrace() => 예외처리가 되더라도, 예외 발생시 오류를 출력한다

- finally : 예외 발생 여부에 관계없이 실행

 

[2. 오늘 잘한 점]

강의를 빠르게 듣고 개인 공부를 할 수 있었다 ㅎ ㅎ 자바스크립트 함수까지 공부했는데 마지막 시간에 복습까지 하려고 한다! 그리고 프론트 강의 청강도 하고 가려고 한다!! 아이고 힘들어~

 

[3. 개선해야할 점]

아침에 쪼금만 더 일찍 나와야겠다!