일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- android architecture component
- C
- livedata
- 안드로이드
- Django REST Android
- Python
- Java
- Django REST
- UWP
- Rxjava2
- flutter firestore
- C++
- dart
- kodility
- Django REST framework
- Android P
- 코틀린
- android push
- RxAndroid
- Flutter TextField
- 알고리즘
- RxJava
- Kotlin
- 프로그래머스
- NDK
- C/C++
- FLUTTER
- mfc
- 안드로이드 구글맵
- Android
- Today
- Total
목록Java,Android (120)
개발하는 두더지
[Effective Java 규칙39] 필요하다면 방어적 복사본을 만들라Effective Java 2/E 책과 구글링을 통해 내용을 정리하고 개인적인 견해가 포함된 글입니다. 자바는 C나 C++보다 안전한 언어이다. 하지만 안전한 언어라도 시스템의 보안을 무너뜨리려는 악의적 사용자나 실수로 API를 이상하게 사용하는 프로그래머가 있을 수 있기때문에 방어적으로 복사하는 코드로 만들어야 한다. public final class Period { private final Date start; private final Date end; public Period(Date start, Date end) { if(start.compareTo(end) > 0) throw new IllegalArgumentExceptio..
[Effective Java 규칙37] 자료형을 정의할 때 표식 인터페이스를 사용하라Effective Java 2/E 책과 구글링을 통해 내용을 정리하고 개인적인 견해가 포함된 글입니다. 표식 인터페이스 ( Marker Interface ) 는 아무 메서드도 선언하지 않는 인터페이스다. 클래스를 만들 때 표식 인터페이스를 구현한다는 것은, 해당 클래스가 어떤 속성을 만족한다는 것을 표시하는 것과 같다. 대표적인 예로 Serializable 인터페이스가 그 예다. package java.io; public interface Serializable { }Serializable 인터페이스를 구현하는 클래스는 해당 클래스로 만든 객체들은 직렬화할 수 있다는 뜻이다. 표식 어노테이션 ( Marker Annotat..
[Effective Java 규칙33] ordinal을 배열 인덱스로 사용하는 대신 EnumMap을 이용하라Effective Java 2/E 책과 구글링을 통해 내용을 정리하고 개인적인 견해가 포함된 글입니다. 일의 중요도를 나타내는 간단한 클래스가 있다.class Work { enum Importance { LOW, MEDIUM, HIGH, CRITICAL; } String name; Importance importance; Work(String name, Importance importance) { this.name = name; this.importance = importance; } }일의 배열 Work[] 이 있고, 일의 중요도에 따라 나열한다고 생각해보자. 중요도별 집합을 4개 만들고, 일을 ..
[Effective Java 규칙32] 비트 필드(bit field) 대신 EnumSet을 사용해라Effective Java 2/E 책과 구글링을 통해 내용을 정리하고 개인적인 견해가 포함된 글입니다. EnumSet은 비트 필드만큼 간결하고 성능이 우수합니다. 아래와 같은 클래스를 보면,class Text { public static final int STYLE_BOLD = 1
[Effective Java 규칙31] enum ordinal 대신 객체 필드를 사용하라 Effective Java 2/E 책과 구글링을 통해 내용을 정리하고 개인적인 견해가 포함된 글입니다. Enum에는 enum 상수에 포함되는 정수를 구할 수 있는 메서드가 있다.enum Ensemble { SOLO, DUET, TRIO, QUARTET, QUINTET, SEXTET, SEPTET, OCTET, NONET, DECTET; int numberOfMusicians() { return ordinal() + 1; } }바로 oridinal() 이라는 메서드인데 더이상 enum이 변경되지않고 간단하게 사용할때는 문제는 딱히 없어보인다.하지만 enum 상수 사이에 값을 추가하거나 이미 사용한 정수에 대응되는 새로..
[Effective Java 규칙30] int 상수 대신 enum을 사용하라Effective Java 2/E 책과 구글링을 통해 내용을 정리하고 개인적인 견해가 포함된 글입니다. 자바 1.5에서 enum 이라는 새로운 참조 자료형이 추가되었다. enum이 등장하기 전까지는 int 형 상수들을 정의해서 enum을 흉내냈다.public static final int APPLE = 1; public static final int ORANGE = 2; enum은 C++, C# 같은 언어에서 제공하는 enum 자료형과 비슷하지만 자바의 enum은 완전한 기능을 갖춘 클래스로, 다른 언어의 enum보다 강력하다. enum 자료형은 컴파일 시점 형 안전성(compile-time type safety)을 제공한다. A..
[Effective Java 규칙29] 형 안전 다형성 컨테이너를 쓰면 어떨지 따져보라Effective Java 2/E 책과 구글링을 통해 내용을 정리하고 개인적인 견해가 포함된 글입니다. 제네릭을 이용하여 Set이나 Map같은 컬렉션(Collections)을 만들 때 키 값을 Class 객체로 사용하면 형 안전 다형성 컨테이너를 만들 수 있다.형 안전성을 깨뜨리지 않으면서 각 인덱스에 접근하여 서로 다른 자료형의 값을 받아올 수 있다. 예를들어, 임의 클래스 객체를 골라 저장하고 꺼낼 수 있는 클래스가 있다고 하자. 키는 Class 객체가 된다. 형인자 T가 키를 의미한다는 것을 제외하면 간단한 Map과 같아 보인다. 이 API를 사용하는 클라이언트는 객체를 넣거나 꺼낼 때 그 클래스 객체를 함께 전달..
[Effective Java 규칙28] 한정적 와일드카드를 써서 API 유연성을 높여라Effective Java 2/E 책과 구글링을 통해 내용을 정리하고 개인적인 견해가 포함된 글입니다. 유연성을 최대화하려면, 객체를 만드는 생산자 Producer나 객체를 사용하는 소비자 Consumer 역할을 하는 메서드 인자의 자료형은 와일드 카드 자료형으로 하면 된다. 만약 메서드 인자가 생산자이면서 소비자라면 와일드카드 자료형은 필요없다.PECS( Producer - extends , Consumer - super ) 을 사용하면 된다. 예를들어 Collection 인자가 E 생산자라면 Collection