본문 바로가기

프로그래밍(TA, AA)/JVM 언어

(117)
[자바] 람다(lambda)가 이끌어 갈 모던 JAVA(1) 아래 포스트는 학습용도로 네이버 개발자 센터 기술 포스팅에서 가져온 내용입니다. 원본자료는 참고링크(https://d2.naver.com/helloworld/4911107)를 따라가셔서 확인 바랍니다. 그 외에 람다 대수(lambda calculus)에 대해 참고할 만한 사이트입니다. http://nirvana-wiki.appspot.com/Lambda_calculus https://ko.wikipedia.org/wiki/%EB%9E%8C%EB%8B%A4_%EB%8C%80%EC%88%98 람다 표현식은 논리학자인 Alonzo Church가 1930년대에 제안한 람다 대수에서 유래했습니다. 람다 대수는 함수 정의, 함수 적용, 귀납적 함수를 추상화한 형식 체계입니다. 람다 표현식은 함수를 간결하게 표현합니..
[자바] Java HashMap은 어떻게 동작하는가? https://d2.naver.com/helloworld/831311
[스프링] 스프링 빈 라이프 사이클 http://javaslave.tistory.com/48
[자바] 널(null)이 아닌 제로 길이(zero-length) 배열 반환 다음과 같은 메소드는 흔히 볼 수 있습니다. private List cheesesInStock = ...; /** * @상점에서 치즈의 모든 것을 포함하는 배열을 반환하거나 * 구매 가능한 치즈가 없다면 널(null)이다. */ public Cheese[] getCheeses() { if(cheeseInStock.size() == 0) return null; } 치즈를 구매할 수 없는 상화에 특별한 경우를 만들 이유가 없습니다. 이렇게 할 경우 null 반환 값을 처리하기 위해 클라이언트에 코드를 추가로 작성해야 합니다. 다음 예제를 보겠습니다. Cheese[] cheeses = shop.getCheeses(); if (cheeses != null && Arrays.asList(shop.getCheese..
[자바] 생성자와 정적 팩터리 메소드 생성자와 정적 팩터리 메소드 첫번째 장점은, 생성자와는 달리 정적 팩터리 메서드에는 이름이 있다는 것 입니다. 두번째 장점은, 생성자와는 달리 호출할 때마다 새로운 객체를 생성할 필요는 없다는 것 입니다. 세번째 장점은, 생성자와는 달리 반환값 자료형의 하위 자료형 객체를 반환할 수 있다는 것 입니다. 반환되는 객체의 클래스를 훨씬 유연하게 결정할 수 있습니다. 이 유연성을 활용하면 public으로 선언되지 않은 클래스의 객체를 반환하는 API를 만들 수 있습니다. 그러면 구현 세부사항을 감출 수 있으므로 아주 간결한 API가 가능합니다. 이 기법은 인터페이스 기반 프레임워크 구현에 적합한데, 이 프레임워크에서 인터페이스는 정적 팩터리 메서드의 반환값 자료형으로 이용됩니다. 인터페이스는 정적 메서드를 가..