java8
-
챕터[20] OOP와 FP의 조화 : 자바와 스칼라 비교모던자바인액션 2020. 10. 22. 01:29
서론 스칼라란? 자바와 스칼라 관계 클래스와 트레이트 스칼라란? 스칼라는 객체지향과 함수형 프로그래밍의 혼합한 언어이며, JVM에서 동작하기에 자바의 클래스를 사용할 수 있으며 마찬가지로 자바에서 라이브러리 추가만으로 스칼라 코드를 호출하여 사용할 수 있다. 스칼라에서의 모든 데이터 타입은 객체로 취급한다. 스칼라에서의 변수는 일반 선언 var과 상수 선언인 val이 존재한다. 스칼라 사용하기 문자열 보간법 컬렉션 사용 import scala.io.Source class ScalaExam { object Beer { def main(arg : Array[String]): Unit = { var n : Int = 2; while( n println(s"Hello ${n} bottles of beer")} ..
-
챕터[19] 함수형 프로그래밍 기법카테고리 없음 2020. 10. 22. 00:44
서론 일급 시민 고차원 함수 커링 부분 적용 영속 자료구조 자바 스트림을 일반화하는 게으른 평가와 게으른 리스트 패턴 매칭, 자바에서 패턴 매칭을 흉내 내는 방법 참조 투명성과 캐싱 일급 함수 함수형 프로그래밍에서 함수를 마치 일반값처럼 사용하여 인수를 전달하거나, 결과를 반환하거나 자료구조를 저장할 수 있어 일반값처럼 취급하는 함수를 일급 함수라고한다. 자바 8이 이전 버전과 구분될 수 있는 특징중 하나가 일급 함수를 지원한다는 점이 있다. 추가로 자바 8에서는 메서드 참조( :: ) 및 람다로 직접 함수값을 표현해 메서드를 함수값으로 사용할 수 있다. 고차원 함수 자바 8의 함수는 고차원 함수라 할 수 있으며 아래의 특징을 가진다. 하나 이상의 함수를 인수로 받는다. 결과값으로 함수를 반환한다. 지역..
-
챕터[12] 새로운 날짜와 시간 API모던자바인액션 2020. 10. 21. 16:03
서론 사람 및 기계가 이해할 수 있는 날짜와 시간 표기 방법 시간 PST : 태평양 표준시(워싱턴, 켈리포니아) CST : 중부 표준시(미국 중부, 멕시코, 중앙아메리카) EST : 동부 표준시(미국 동부, 캐나다) GMT : 그리니치 표준시(런던, 협정 세계시와 동일한 시간) UTC : 협정세계시(세계 공통 표준시) CET : 중부 유럽 표준시(유럽, 북아프리카) EET : 동유럽 표준시(동유럽 일부, 북아프리카, 중동 일부 지역) 개요 이번 챕터에서는 이러한 날짜 API 제공을 해주구나 정도? (개인적으로 입력한 날짜를 받고 저장하거나, 해당 년도가 윤년인지 판단... 정도만 다뤄봐서 이번 챕터는 아하 정도로 넘어가면 좋을꺼 같다고 생각이든다. 물론 내 머리가 이정도밖에 생각을 못하니 그러겠지만) 쟈..
-
챕터[5] 스트림 데이터 수집모던자바인액션 2020. 10. 21. 15:57
서론 스트림을 활용하여 데이터 편집 일반 스트림 필터링 // 칼로리 정렬 List filteredMenu = specialMenu.stream() .filter(dish -> dish.getCalories() i % 2 == 0) .distinct() .forEach(System.out::println); 스트림 축소 // 축소 List limitDish = specialMenu.stream() .filter(dish -> dish.getCalories() > 0) .limi..
-
챕터[4] 스트림모던자바인액션 2020. 10. 21. 15:56
서론 자바 8에서 추가된 스트림은 무엇인지 컬렉션과 무엇이 다른지 등 스트림의 대해서 설명 스트림이란? Java 8 API에 새로 추가된 기능으로 스트림을 이용하면 선언형(데이터를 처리하는 임시 구현 코드 대신 질의로 표현)으로 컬렉션 데이터를 처리할 수 있다. 또한 멀티스레드 코드를 구현하지 않아도 데이터를 투명하게 병렬로 처리할 수 있다. 특징으로는 선언형(간결 및 가독성 증가), 조립가능(유연성 증가), 병렬화(성능 증가) 가 존재한다. (스트림은 계속해서 챕터에 나오므로 순차적으로 배워가면 된다.) 스트림 == 데이터 처리 연산을 지원하도록 소스에서 추출된 연속된 요소 요소의 정의 연속된 요소 컬렉션과 동일하게 스트림은 특정 요소 형식으로 이루어진 연속된 값 집합의 인터페이스를 제공한다. 컬렉션은..