본문 바로가기 메뉴 바로가기

덕's IT Story

프로필사진
  • 글쓰기
  • 관리
  • 태그
  • 방명록
  • RSS

덕's IT Story

검색하기 폼
  • 분류 전체보기 (198)
    • IT 이야기 (31)
      • 그 외 (15)
      • 대외활동 소식 (9)
      • 컴퓨터 지식 (7)
    • 클라우드&오픈스택 (8)
      • 클라우드 (2)
      • 오픈스택 (6)
    • 프로그래밍 (86)
      • C/C++ (1)
      • 자료구조&알고리즘 (11)
      • 다음API (6)
      • OpenCV (2)
      • RabbitMQ (6)
      • Git&GitHub (3)
      • Web (2)
      • 자바스크립트 (12)
      • Spring (7)
      • Java (36)
    • Ruby&Rails (21)
      • Rails (16)
      • Gem (5)
    • OS (20)
      • 리눅스&우분투 (12)
      • CentOS (5)
      • 안드로이드 (3)
    • 해킹&보안 (5)
      • 무선해킹 (2)
      • 시스템해킹 (3)
  • 방명록

프로그래밍/Java (36)
[이펙티브 자바] 규칙27. 가능하면 제네릭 메서드로 만들 것

이펙티브 자바 Effective Java 2/E국내도서저자 : 조슈아 블로크(Joshua Bloch) / 이병준역출판 : 인사이트 2014.09.01상세보기 제네릭화(genericfication)로 혜택을 보는 것은 클래스뿐만 아니다. 메서드도 혜택을 본다. static 유틸리티 메서드는 특히 제네릭화하기 좋은 후보다. // 무인자 자료형 사용 - 권할 수 없는 방법(규칙23) public static Set union(Set s1, Set s2) { Set result = new HashSet(s1); result.addAll(s2); return result; } 형인자를 선언하는 형인자 목록(type parameter list)은 메서드의 수정자(modifier)와 반환값 자료형 사이에 둔다. //..

프로그래밍/Java 2017. 11. 28. 17:48
[이펙티브 자바] 규칙26. 가능하면 제네릭 자료형으로 만들 것

이펙티브 자바 Effective Java 2/E국내도서저자 : 조슈아 블로크(Joshua Bloch) / 이병준역출판 : 인사이트 2014.09.01상세보기 제네릭 자료형을 직접 만드는 것은 까다로운데, 배워둘 만한 가치는 있다. // Object를 사용한 컬렉션 - 제네릭을 적용할 중요 후보 public class Stack { private Object[] elements; private int size = 0; private static final int DEFAULT_INITIAL_CAPACITY = 16; public stack() { elements = new Object[DEFAULT_INITIAL_CAPACITY]; } public void push(Object e) { ensureCapa..

프로그래밍/Java 2017. 11. 28. 16:29
[이펙티브 자바] 규칙25. 배열 대신 리스트를 써라

이펙티브 자바 Effective Java 2/E국내도서저자 : 조슈아 블로크(Joshua Bloch) / 이병준역출판 : 인사이트 2014.09.01상세보기 배열은 제네릭 자료형과 두 가지 중요한 차이점을 갖고 있다. 1. 배열은 공변 자료형(convariant)인 반면, 제네릭은 불변 자료형(invariant)이다 Sub가 Super의 하위 자료형(subtype)이면 Sub[]도 Super[]의 하위 자료형이다. // 실행 중에 문제를 일으킴 Object[] objectArray = new Long[1]; objectArray[0] = "I don't fit in" // ArrayStoreException 예외 발생 Type1과 Type2가 있을 때, List은 List의 상위 자료형이나 하위 자료형이..

프로그래밍/Java 2017. 11. 28. 16:04
[이펙티브 자바] 규칙24. 무점검 경고(unchecked warning)를 제거하라

이펙티브 자바 Effective Java 2/E국내도서저자 : 조슈아 블로크(Joshua Bloch) / 이병준역출판 : 인사이트 2014.09.01상세보기 제네릭으로 프로그램하다 보면 많은 컴파일러 경고 메시지를 보게 된다. 무점검 형변환 경고(unchecked cast warning), 무점검 메서드 호출 경고(unchecked method invocation warning), 무점검 제네릭 배열 생성 경고(unchecked generic array creation warning), 그리고 무점검 변환 경고(unchecked conversion warning) 등이 있다.코드의 형 안전성(typesafe) 보장을 위해 모든 무점검 경고는, 가능하다면 없애야 한다. 제거할 수 없는 경고 메시지는 형 안..

프로그래밍/Java 2017. 11. 28. 15:48
[이펙티브 자바] 규칙23. 새 코드에는 무인자 제네릭 자료형을 사용하지 마라

이펙티브 자바 Effective Java 2/E국내도서저자 : 조슈아 블로크(Joshua Bloch) / 이병준역출판 : 인사이트 2014.09.01상세보기 선언부에 형인자(type parameter)가 포함된 클래스나 인터페이스는 제네릭(generic) 클래스나 인터페이스라 부르고, 이 둘은 제네릭 자료형(generic type)이라 부른다.각 제네릭 자료형은 형인자 자료형(parameterized type) 집합을 정의한다. List는 원소 자료형이 String인 리스트를 나타내는 형인자 자료형이다.또한 각 제네릭 자료형은 무인자 자료형(raw type)을 정의할 수 도있다. List의 무인자 자료형은 List다. // 무인자 컬렉션 자료형 private final Collection stamps =..

프로그래밍/Java 2017. 11. 28. 10:38
[이펙티브 자바] 규칙22. 멤버 클래스는 가능하면 static으로 선언하라

이펙티브 자바 Effective Java 2/E국내도서저자 : 조슈아 블로크(Joshua Bloch) / 이병준역출판 : 인사이트 2014.09.01상세보기 중첩 클래스(nested class)는 다른 클래스 안에 정의된 클래스다. 중첩 클래스에는 정적 멤버 클래스), 비-정적 멤버 클래스, 익명 클래스, 지역 클래스 이렇게 네 가지 종류가 있다. 첫 번째를 제외한 나머지는 전부 내부 클래스(inner class)다. 정적 멤버 클래스 (static member class) 바깥 클래스의 모든 멤버에(private로 선언된 것까지도) 접근할 수 있다 바깥 클래스의 정적 멤버이며, 다른 정적 멤버와 동일한 접근 권한 규칙(accessibility rule)을 따른다 바깥 클래스와 함께 사용할 때만 유용한 ..

프로그래밍/Java 2017. 11. 22. 15:30
[이펙티브 자바] 규칙21. 전략을 표현하고 싶을 때는 함수 객체를 사용하라

이펙티브 자바 Effective Java 2/E국내도서저자 : 조슈아 블로크(Joshua Bloch) / 이병준역출판 : 인사이트 2014.09.01상세보기 프로그래밍 언어 가운데는 함수 포인터(function pointer), 대리자(delegate), 람다(lamda expression) 처럼, 특정 함수를 호출할 수 있는 능력을 저장하고 전달할 수 있도록 하는 것들이 있다. 예를 들어 C 표준 라이브러리에 포함되어 있는 qsort 함수는 비교자(comparator) 함수에 대한 포인터를 인자로 받아 정렬할 요소들을 비교한다. 이것은 전략(strategy) 패턴의 한 사례로 비교자 함수를 통해 정렬 전략을 표현하는 것이다.자바는 함수 포인터를 지원하지 않는다. 하지만 객체 참조를 통해 비슷한 효과를 ..

프로그래밍/Java 2017. 11. 22. 15:03
[이펙티브 자바] 규칙20. 태그 달린 클래스 대신 클래스 계층을 활용하라

이펙티브 자바 Effective Java 2/E국내도서저자 : 조슈아 블로크(Joshua Bloch) / 이병준역출판 : 인사이트 2014.09.01상세보기 때로 두 가지 이상의 기능을 가지고 있으며, 그중 어떤 기능을 제공하는지 표시하는 태그(tag)가 달린 클래스를 만날 때가 있다. class Figure { enum Shape { RECTANGLE, CIRCLE }; // 어떤 모양인지 나타내는 태그 필드 final Shape shape; // 태그가 RECTANGLE일 때만 사용되는 필드 double length; double width; // 태그가 CIRCLE일 때만 사용되는 필드 double radius; // 원을 만드는 생성자 Figure(double radius) { shape = Sh..

프로그래밍/Java 2017. 11. 22. 14:34
이전 1 2 3 4 5 다음
이전 다음
최근에 올라온 글
  • [책 리뷰] 자바 최적화 (Optimizing J⋯
  • Spring Webflux + JDBC(혹은 bl⋯
  • [macOS Mojave] Evernote (혹은⋯
  • spring-boot-starter-webflux⋯
TAG
  • 프로그래밍
  • html
  • 자료구조
  • 우분투
  • 컴퓨터
  • Java
  • install
  • 리눅스
  • 다음지도
  • 티스토리 초대장
  • 다음
  • 클라우드 컴퓨팅
  • OpenStack
  • 다음지도 API
  • IT
  • CSS
  • Message Queue
  • 웹프로그래밍
  • ruby
  • 오픈스택
  • rabbitmq
  • javascript
  • 알고리즘
  • Rails
  • IceHouse
  • 이펙티브 자바
  • ruby on rails
  • gem
  • ubuntu
  • codecademy
more
글 보관함
  • 2019/06 (1)
  • 2018/12 (2)
  • 2018/11 (2)
  • 2018/10 (1)
  • 2018/07 (2)
Total
695,475
Today
111
Yesterday
186

Copyright ⓒ 2018 kkd927. All rights reserved.

티스토리툴바