read
Java로 개발을 할 때 참고할만한 Tip들.
공유하고 싶은 Tip들에 대해서 정리합니다. 계속 업데이트 됩니다.
Guava로 간단히 Cache 하기
private LoadingCache<Key,Value> CACHE = CacheBuilder.newBuilder().maximumSize(/*캐싱될_아이템_수*/size).expireAfterAccess(/*캐싱할_시간*/minute, TimeUnit.MINUTES).build(
new CacheLoader<Key, Value>() {
public String load(Key key) {
return /*캐싱된_값을_리턴하는*/method(key);
}
});
CACHE.getUnchecked(key);
String 변환의 세가지 방법
- toString() 은 변환할 객체가 null일 경우 Null Pointer Exception이 발생한다.
- (String)으로 캐스팅할 경우, 변환할 객체가 null일 경우 그대로 null을 반환한다.
- String.valueOf()는 변환할 객체의 .toString()결과를 그대로 반환해 준다고 한다. (toString()과 같음.)
더 찾아보니(String)으로 캐스팅 하는 것은 이 객체가 String이라는 것을 컴파일러에게 명시해주는 것이기 때문에 코드상의 낭비가 줄어든다고 한다. (String이 아닌 객체가 넘어갈 경우에는 문제가 생기겠지만.)
JAVA로 코딩하면서 형 변환을 할 때 캐스팅 보다는 .toSomeObject() 메소드를 통해서 다른 객체들로 변환하는 것을 선호했는데, NPE 문제도 있고 코드상으로도 더 경제적이라고 하니 해당 객체의 형이 명확하다면 캐스팅을 사용하는 편이 좋을 듯.
참고 : http://www.okjsp.pe.kr/seq/71363
ArrayList VS LinkedList
ArrayList
- 데이터의 참조가 용이해서 빠른 참조가 가능하다. (장점)
- 저장소의 용량을 늘리는 과정에서 많은 시간 소요된다. (단점)
- 데이터의 삭제에 필요한 연산과정이 매우 길다. (단점)
LinkedList
- 저장소의 용량을 늘리는 과정이 간단하다. (장점)
- 데이터의 삭제가 매우 간단하다. (장점)
- 데이터의 참조가 다소 불편하다. (단점)
Generic의 특성
- 컴파일 타임에 타입 체킹이 가능하다
Eclipse SVN Plugin 설치시 Connector가 설치 되지 않을 때
- Juno : http://community.polarion.com/projects/subversive/download/eclipse/3.0/juno-site/
- Kepler : http://community.polarion.com/projects/subversive/download/eclipse/3.0/kepler-site/
에서 Connector를 수동으로 설치한다