[TIL] 유데미 X 사람인 취업 부트캠프 24일차 / java
[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. 개선해야할 점]
아침에 쪼금만 더 일찍 나와야겠다!