본문 바로가기

Java

Java 8 전반(Optional 메소드, 디폴트 메소드 등)

Q1. 람다나 스트림을 사용하면 코드의 무엇이 엄청 새롭게 변경되는가?

-> 코드의 포맷이 엄청 새롭게 변경된다. 

-> 코드 작성을 더 간결하고 효율적으로 할 수 있다. 

 

Q2. Optional은 무엇을 편리하게 처리하기 위해서 만든 클래스인가?

-> 객체를 편리하게 처리하기 위해서 만든 클래스이다. 

-> 객체의 Null 처리를 해준다. 

 

Q2-1 Optional을 사용한 예시 코드를 작성해보시오. 

import java.util.*;

public class MemoryMemberRepository implements MemberRepository{

    private static Map<Long, Member> store = new HashMap<>();
   
    @Override
    public Optional<Member> findById(Long id){
        return Optional.ofNullable(store.getId());
    }
    
 }

 

Q3. Optional 클래스는 어떤 패키지에 속해 있는가?

-> java.util 패키지에 속해 있다. 

 

Q4. Optional 클래스는 어떤 Exception이 발생하는 것을 막는가?

-> NullPointerException이 발생하는 것을 막는다. 

 

Q5. 자바 8의 디폴트 메소드를 만든 이유가 무엇인가?

-> 하위 호환성을 위해서이다.  

-> 특정 인터페이스에 새로운 메소드를 추가할 때, 디폴트 메소드로 추가하면 좋다. 

 

Q6. 자바 8에서는 날짜와 관련해서 어떤 패키지를 새로 만들었는가?

-> java.time 패키지를 새로 만들었다. 

 

Q7. 자바 8 이전에 Date나 SimpleDateFormatter라는 클래스는 어떤 문제를 갖고 있는가?

->  스레드 안전하지 않다는 문제점을 갖고 있다 

 

Q8. 자바 8에서는 어떤 정렬 메소드가 제공되며, 그것은 Java 7 에서 소개된 어떤 프레임웍을 사용하는가?

-> ParellelSort 메소드가 제공되며, Fork-join 프레임웤이 사용된다. 

 

Q9. sort()와 parallelSort()의 차이점은 무엇인가?

-> 

 

Q10. 자바 8에서 순차적으로 나열되는 문자열을 처리할 때 사용하는 클래스는 무엇인가?

-> 

 

 

Q11. 자바는 처음부터 많은 '무엇'을 포함하는 잘 설계된 객체지향 언어로 시작했는가?

 

Q12. 자바는 처음부터 '무엇'과 '무엇'을 활용한 소소한 동시성도 지원했는가?

 

Q13. JVM은 코드를 '무엇'으로 컴파일 하는가?

 

Q14. 자바는 '무엇' 때문에 C에 비해 소프트웨어 엔지니어링적인 문제가 훨씬 적은가?

 

 

Q15. 프로그래머는 '무엇'이라는 도전에 직면하면서 멀티코어 컴퓨터나 컴퓨팅 클러스터를 이용해서

        '무엇'을 효과적으로 처리할 필요성이 커졌는가?

 

Q16. '무엇'을 활용해야 하는데 지금까지의 자바로는 충분히 대응할 수 없었는가?

 

 

Q17. 자바8은 어떤 장점을 제공하는가?

 

 

Q18. 자바8에서는 '무엇'이 강화되었는가?

 

 

Q19. 자바 8 설계의 밑바탕을 이루는 세 가지 프로그래밍 개념 중 

         첫 번째 것은 무엇인가?

 

Q19-1 스트림이란 무엇인가?

 

Q19-2 이론적으로 프로그램은 '무엇'에서 데이터를 한 개씩 읽어 들이며,

           '무엇'으로 데이터를 한 개씩 기록하는가?

-

 

 

Q19-3 어떤 프로그램의 '무엇'은 다른 프로그램의 '무엇'이 될 수 있는가?

 

 

Q20. 자바8에서는 '어떤' 패키지에 스트림 API가 추가되었는가?

 

 

Q21. 스트림 API의 핵심은 무엇인가?

 

 

Q22. 스트림 파이프라인을 이용했을 때의 장점은 무엇인가?

 

 

 

 

참고

Q1~Q10 자바의 신 5/22

Q2-1 스프링 입문 5/29

Q11~Q22 모던 자바 인 액션 6/18

A1~A10 5/23

A2-1 5/29 

'Java' 카테고리의 다른 글

쓰레드  (0) 2022.05.23
람다 표현식  (0) 2022.05.22
Serializable과 NIO  (0) 2022.05.22
컬렉션 프레임워크(List 인터페이스)  (0) 2022.05.20
컬렉션 프레임워크(Map 인터페이스)  (0) 2022.05.20