썸네일 [Effective Java 3/E] ITEM 44. 표준 함수형 인터페이스를 사용하라 *알림 : * Effective Java 3판은 Java 9까지 도입된 언어적 기능을 중심으로 서술되어 있습니다. 10버젼 이후의 Java 개발을 하시는 분들은 우회적인 접근법 대신 Java 언어 내 새로 도입된 기능이 더 간결하고 좋을 수 있습니다. 해당 포스팅은 SSAFY 내 책읽기 스터디의 활동을 통해 작성된 포스팅입니다. https://github.com/kjsu0209/JavaBook https://medium.com/javabook 람다를 도입하면서 API 작성 모범사례ㄴ도 많이 바뀌었다. 상위 클래스의 기본 메서드를 재정의 하는 템플릿 메서드 패턴의 동기가 떨어지고 대신 함수 객체를 매개변수로 받는 생성자와 메서드로 동작을 바꾸는 것을 권장한다. 그러나 함수 객체를 전달할 때 매개변수 타입을..
썸네일 [Effective Java 3/E] ITEM 43. 람다보다는 메서드 참조를 사용하라 *알림 : * Effective Java 3판은 Java 9까지 도입된 언어적 기능을 중심으로 서술되어 있습니다. 10버젼 이후의 Java 개발을 하시는 분들은 우회적인 접근법 대신 Java 언어 내 새로 도입된 기능이 더 간결하고 좋을 수 있습니다. 해당 포스팅은 SSAFY 내 책읽기 스터디의 활동을 통해 작성된 포스팅입니다. https://github.com/kjsu0209/JavaBook https://medium.com/javabook JavaBook – Medium Documentation space of our book study. medium.com kjsu0209/JavaBook 책읽기 스터디. Contribute to kjsu0209/JavaBook development by creati..
썸네일 [Effective Java 3/E] ITEM 42. 익명 클래스보다는 람다를 사용하라 *알림 : * Effective Java 3판은 Java 9까지 도입된 언어적 기능을 중심으로 서술되어 있습니다. 10버젼 이후의 Java 개발을 하시는 분들은 우회적인 접근법 대신 Java 언어 내 새로 도입된 기능이 더 간결하고 좋을 수 있습니다. 해당 포스팅은 SSAFY 내 책읽기 스터디의 활동을 통해 작성된 포스팅입니다. https://github.com/kjsu0209/JavaBook https://medium.com/javabook JavaBook – Medium Documentation space of our book study. medium.com kjsu0209/JavaBook 책읽기 스터디. Contribute to kjsu0209/JavaBook development by creati..
썸네일 [Effective Java 3/E] ITEM 41. 정의하려는 것이 타입이라면 마커 인터페이스를 사용하라 *알림 : * Effective Java 3판은 Java 9까지 도입된 언어적 기능을 중심으로 서술되어 있습니다. 10버젼 이후의 Java 개발을 하시는 분들은 우회적인 접근법 대신 Java 언어 내 새로 도입된 기능이 더 간결하고 좋을 수 있습니다. 해당 포스팅은 SSAFY 내 책읽기 스터디의 활동을 통해 작성된 포스팅입니다. https://github.com/kjsu0209/JavaBook https://medium.com/javabook JavaBook – Medium Documentation space of our book study. medium.com kjsu0209/JavaBook 책읽기 스터디. Contribute to kjsu0209/JavaBook development by creati..
썸네일 [Effective Java 3/E] ITEM 40. @Override Annotation을 일관적으로 사용하기 *알림 : * Effective Java 3판은 Java 9까지 도입된 언어적 기능을 중심으로 서술되어 있습니다. 10버젼 이후의 Java 개발을 하시는 분들은 우회적인 접근법 대신 Java 언어 내 새로 도입된 기능이 더 간결하고 좋을 수 있습니다. 해당 포스팅은 SSAFY 내 책읽기 스터디의 활동을 통해 작성된 포스팅입니다. https://github.com/kjsu0209/JavaBook https://medium.com/javabook JavaBook – Medium Documentation space of our book study. medium.com kjsu0209/JavaBook 책읽기 스터디. Contribute to kjsu0209/JavaBook development by creati..
썸네일 [Effective Java 3/E] ITEM 39. 명명 패턴보다 애너테이션을 사용하라 *알림 : * Effective Java 3판은 Java 9까지 도입된 언어적 기능을 중심으로 서술되어 있습니다. 10버젼 이후의 Java 개발을 하시는 분들은 우회적인 접근법 대신 Java 언어 내 새로 도입된 기능이 더 간결하고 좋을 수 있습니다. 해당 포스팅은 SSAFY 내 책읽기 스터디의 활동을 통해 작성된 포스팅입니다. https://github.com/kjsu0209/JavaBook https://medium.com/javabook JavaBook – Medium Documentation space of our book study. medium.com kjsu0209/JavaBook 책읽기 스터디. Contribute to kjsu0209/JavaBook development by creati..
썸네일 [Effective Java 3/E] ITEM 38. 확장할 수 있는 열거 타입이 필요하면 인터페이스를 사용하라. *알림 : * Effective Java 3판은 Java 9까지 도입된 언어적 기능을 중심으로 서술되어 있습니다. 10버젼 이후의 Java 개발을 하시는 분들은 우회적인 접근법 대신 Java 언어 내 새로 도입된 기능이 더 간결하고 좋을 수 있습니다. 해당 포스팅은 SSAFY 내 책읽기 스터디의 활동을 통해 작성된 포스팅입니다. https://github.com/kjsu0209/JavaBook https://medium.com/javabook kjsu0209/JavaBook 책읽기 스터디. Contribute to kjsu0209/JavaBook development by creating an account on GitHub. github.com JavaBook – Medium Documentation ..
썸네일 [Effective Java 3/E] ITEM 37. ordinal 인덱싱 대신 EnumMap을 사용하라 배열이나 리스트에서 원소를 꺼낼 때, ordinal메서드로 인덱스를 얻는 코드가 가끔 있는데, 바람직하지 못하다. 예제 1-1 : Plant 클래스 class Plant { enum LifeCycle { ANNUAL, PERENNIAL, BIENNIAL } final String name; final LifeCycle lifeCycle; Plant(String name, LifeCycle lifeCycle) { this.name = name; this.lifeCycle = lifeCycle; } @Override public String toString() { return name; } } Plant 클래스의 inner class로 enum 타입을 선언해주었다. Enum타입은 생애주기를 나타낸다. 예제 ..
썸네일 [Effective Java 3/E] ITEM 36. 비트 필드 대신 EnumSet을 사용하라 작성자 주: 저는 C/C++ 개발을 할 때 비트 필드 구현을 많이 사용했습니다. 하나의 int/long 타입 정수에 여러 개의 flag를 넣을 수 있어 많이 사용됩니다. 보통 or 연산으로 합치고, and로 원하는 flag를 가져오는 식으로 사용합니다. 아래 예제는 리눅스 커널의 mman.h 파일에 있는 flag의 일부입니다. #ifdef __USE_MISC # define MAP_GROWSDOWN 0x00100 /* Stack-like segment. */ # define MAP_DENYWRITE 0x00800 /* ETXTBSY */ # define MAP_EXECUTABLE 0x01000 /* Mark it as an executable. */ # define MAP_LOCKED 0x02000 /*..
썸네일 [Effective Java 3/E] ITEM 35. ordinal 메서드 대신 인스턴스 필드를 사용하라 Enum 클래스는 해당 상수가 Enum 타입에서 몇 번째 상수인지 리턴하는 ordinal 메서드를 제공한다. 그러나 사용하지 않아야 한다. 예제1 : 합주단의 종류 public enum Ensemble { SOLO, DUET, TRIO, QUARTET, QUINTET, SEXTET, SEPTET, OCTET, NONET, DECTET; public int numberOfMusicians() { return ordinal() + 1; } } 쓰지 말아야 하는 이유 상수 선언 순서를 바꾸면 ordinal()은 오동작한다. 선언 순서에 기반해 동작하는 ordinal() 입장에선 당연하다. 이미 사용중인 정수와 똑같은 값을 가지는 상수는 만들 수 없다. 8중주는 8명이서 연주한다(octet). 그러나 복4중주(..
[Effective Java 3/E] ITEM 34. int 상수 대신 열거 타입을 사용하라 열거(이하 Enum) 타입이 도입되기 전에는 상수를 정의할 때에는 정수 열거 패턴(int enum pattern)을 사용했다. //DO NOT public static final int APPLE_FUJI = 0; public static final int APPLE_PIPPIN = 1; public static final int APPLE_GRANNY_SMITH = 2; public static final int ORANGE_NAVEL = 0; public static final int ORANGE_TEMPLE = 1; public static final int ORANGE_BLOOD = 2; 쓰지 말아야 할 이유 이 정수 열거 패턴은 type safe를 보장할 수 없다.(APPLE_FUJI==ORAN..
[BOJ 9375] 패션왕 신해빈 서론 9375번: 패션왕 신해빈 첫 번째 테스트 케이스는 headgear에 해당하는 의상이 hat, turban이며 eyewear에 해당하는 의상이 sunglasses이므로 (hat), (turban), (sunglasses), (hat,sunglasses), (turban,sunglasses)로 총 5가지 이다. www.acmicpc.net 어려운 문제는 아니었지만 갯수를 세는 아이디어가 괜찮아서 올려봅니다. 문제 해빈이는 패션에 매우 민감해서 한번 입었던 옷들의 조합을 절대 다시 입지 않는다. 예를 들어 오늘 해빈이가 안경, 코트, 상의, 신발을 입었다면, 다음날은 바지를 추가로 입거나 안경대신 렌즈를 착용하거나 해야한다. 해빈이가 가진 의상들이 주어졌을때 과연 해빈이는 알몸이 아닌 상태로 며칠동안 ..