본문 바로가기

개발/JAVA9

JAVA8 IN Action Chapter3 요점정리 람다 표현식 메서드로 전달할 수 있는 익명 함수를 단순화한것람다 표현식에는 이름은 없지만,파라미터 리스트,바디,반환 형식,발생할 수 있는 예외 리스트 가질 수 있음 람다(lambda) -> 람다 미적분학 학계에서 개발한 시스템에서 유래 람다 이용해서 간결한 방식으로 코드를 전달함 123456789Comparator byWeight = new Comparator() { public int compare(Apple a1,Apple a2) { return a1.getWeight().compareTo(a2.getWeight()); }} Comparator byWeight = (Apple a1,Apple a2) -> a1.getWeight().compareTo(a2.getWeight()); 파라미터 리스트 -> .. 2018. 9. 16.
JAVA8 IN Action Chapter2 요점정리 동작 파라미터화 코드 전달 동작 파라미터화(behavior parameterization)를 이용하면 자주 바뀌는 요구사항에 효과적으로 대응할수 있음 동작 파라미터화란 아직은 어떻게 실행할 것인지 결정하지 않은 코드 블록 코드블록 -> 프로그램 호출 코드블록 실행은 나중으로 미뤄짐 좋은규칙 '비슷한 코드를 구현한 다음에 추상화하라' 전략 디자인 패턴 (strategy design pattern) 각 알고리즘(전략이라 불리는)을 캡슐화하는 알고리즘 패밀리는 정의해둔 다음에 런타임에 알고리즘을 선택하는 기법 익명 클래스자바의 지역 클래스 local class(블록 내부에 선언된 클래스)이름이 없는 클래스 코드의 장황함(verbosity)은 나쁜 특성장황한 코드는 구현하고 유지보수하는 데 시간이 오래 걸릴 뿐.. 2018. 9. 16.
JAVA8 IN Action Chapter1 요점정리 Stream 스트림은 데이터소스를 추상화하고, 데이터를 다루는데 자주 사용되는 메서들을 정의 데이터소스를 추상화하였다는 것은, 데이터 소스가 무엇이든 같은 방식으로 다룰 수 있게 되었다는 것과 코드의 재사용성이 높아진다는 것을 의미 Java 8 Stream API 을 배워야하는 이유로 "가독성/간편성" 과 "성능/공짜점심" 스트림의 특징 스트림은 데이터 소스를 변경하지 않는다.스트림은 데이터 소스로 부터 데이터를 읽기만할 뿐, 데이터 소스를 변경하지 않는다. 필요하다면, 정렬된 결과를 컬렉션이나 배열에 담아서 반환 스트림 API덕분에- 메서드에 코드를 전달하는 간결 기법 (메서드 레퍼런스와 람다)- 인터페이스의 디폴트 메서드 추가 스트림 (stream processing) 스트림이란 한 번에 한개씩 만들.. 2018. 9. 16.
URL 호출시에 RFC 7230 and RFC 3986 에러 java.lang.IllegalArgumentException: Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC 3986 이렇게 에러 난 이유는 URL GET 방식의 파라미터 중에 $.특수문자가 미친듯이 들어가있는 파라미터가 있다. encodeURI(param)을 해야한다.. 이것때문에 삽질을 했다... 2018. 7. 5.