기본 콘텐츠로 건너뛰기

8월, 2018의 게시물 표시

자바 스트림 재사용

은 불가하다. 조금더 구체적으로 말하면 스트림 함수중 내부적으로 reduce()를 호출하는 경우에 불가능하다. 이렇게 설계한 배경은 조금더 찾아봐야 하겠지만 불가능한 이유는 다음과 같다. IntStream의 sum()의 구현체다 sum() 함수는 다음 순서대로 진행된다.  sum() -> reduce() -> AbstractPiplie.evaluate() abstract class IntPipeline< E_IN > extends AbstractPipeline< E_IN , Integer , IntStream> implements IntStream { .... @Override public final int sum () { return reduce( 0 , Integer:: sum ) ; } ... @Override public final int reduce ( int identity , IntBinaryOperator op) { return evaluate(ReduceOps. makeInt (identity , op)) ; } } 그리고 evaluate함수는 상속받은 AbstractPipeLine에 구현되어있다. 처음 호출되었을때 해당 파이프라인의  linkedOrConsumed  를 true로 변환하고 이후에 호출되었을시 예외처리를 하게끔 되어있다.    abstract class AbstractPipeline< E_IN , E_OUT , S extends BaseStream< E_OUT , S >> extends PipelineHelper< E_OUT > implements BaseStream< E_OUT , S > { private static final String MSG_STREAM_LINKED = "stream has a

오라클 java 유료화

1. 개요   - 2019년 1월 1일부로 Oracle Java의 업데이트는 유료 사용자에 한에 지원 받을 수 있게 되어 이에 대한 대응책이 필요함.  즉, 기존의 Oracle Java의 사용은 가능, 하지만 유료 전환을 하지 않을 경우 현재의 사용하고 있는  Oracle Java가 본인이 사용하는 마지막 Java임  2. 지속적으로 Oracle Java를  유지할 경우 발생할 수 있는 문제점  - 기존 자바의 중요결함 발생시 배포되는 업데이트를 받을 수 없음  - 자바의 신규기능을 사용할 수 없음 3. Oracle Java 가격정책  1인당 2.5달러/월, 1프로세서당 25달러/월을 기본으로 하며 전체 규모에 따라 할인  - 사용자별 Volume Subscription Metric Monthly Subscription Price 1-999 Named User Plus $2.50 1,000-2,999 Named User Plus $2.00 3,000-9,999 Named User Plus $1.75 10,000-19,999 Named User Plus $1.50 20,000-49,999 Named User Plus $1.25 50,000+ Contact for details  - 프로세서별 Volume Subscription Metric Monthly Subscription Price 1-99 Processor $25.00 100-249 Processor $23.75 250-499 Processor $22.50 500-999 Processor $20.00 1,000-2,999 Processor $17.50 3,000-9,999 Processor $15.00 10,000-19,999 Processor $12.50 20,