블로그 이미지
암초보

calendar

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 29 30

Notice

Tag

04-27 11:15

'프로그래밍/Java'에 해당되는 글 17

  1. 2015.09.23 java.nio.file.Paths, java.nio.file.Path 활용
  2. 2013.12.16 StringBuilder와 StringBuffer 차이
  3. 2013.10.31 스레드 풀 활용
  4. 2013.10.31 Callable 과 Thread
  5. 2013.05.20 Comparator & Comparable 이용한 정렬
  6. 2013.05.15 java.util.ConcurrentModificationException1
  7. 2011.09.27 업캐스팅
  8. 2011.09.26 추상화
  9. 2011.09.25 enum 활용
  10. 2011.09.24 예외처리 방법
2015. 9. 23. 17:49 프로그래밍/Java

Path = Paths.get("/aaa/bbb/ccc/ddd");

Path.getNameCount(); => returns 4

Path.getName(0) => returns "aaa"

Path.getName(3) => returns "ddd"



참고 : https://docs.oracle.com/javase/tutorial/essential/io/pathOps.html


'프로그래밍 > Java' 카테고리의 다른 글

StringBuilder와 StringBuffer 차이  (0) 2013.12.16
스레드 풀 활용  (0) 2013.10.31
Callable 과 Thread  (0) 2013.10.31
Comparator & Comparable 이용한 정렬  (0) 2013.05.20
java.util.ConcurrentModificationException  (1) 2013.05.15
posted by 암초보
2013. 12. 16. 16:39 프로그래밍/Java

StringBuffer는 ThreadSafe 이고 StringBuilder는 아님

'프로그래밍 > Java' 카테고리의 다른 글

java.nio.file.Paths, java.nio.file.Path 활용  (0) 2015.09.23
스레드 풀 활용  (0) 2013.10.31
Callable 과 Thread  (0) 2013.10.31
Comparator & Comparable 이용한 정렬  (0) 2013.05.20
java.util.ConcurrentModificationException  (1) 2013.05.15
posted by 암초보
2013. 10. 31. 17:26 프로그래밍/Java
posted by 암초보
2013. 10. 31. 13:56 프로그래밍/Java

'프로그래밍 > Java' 카테고리의 다른 글

StringBuilder와 StringBuffer 차이  (0) 2013.12.16
스레드 풀 활용  (0) 2013.10.31
Comparator & Comparable 이용한 정렬  (0) 2013.05.20
java.util.ConcurrentModificationException  (1) 2013.05.15
업캐스팅  (0) 2011.09.27
posted by 암초보
2013. 5. 20. 17:14 프로그래밍/Java

- Comparator 사용시

Comparator의 구현체를 파라미터로 넘김.

=> Collections.sort(list, comparator);


- Comparable 사용시...

Comparable 구현체의 list를 파라미터로 넘김

=> Collections.sort(list);




차이점은 list안에 들어가는 class를 수정하느냐와 마느냐,,,

그리고 정렬할때 비교 방식을 바꾸느냐 마느냐의 차이인듯...

'프로그래밍 > Java' 카테고리의 다른 글

스레드 풀 활용  (0) 2013.10.31
Callable 과 Thread  (0) 2013.10.31
java.util.ConcurrentModificationException  (1) 2013.05.15
업캐스팅  (0) 2011.09.27
추상화  (0) 2011.09.26
posted by 암초보
2013. 5. 15. 12:32 프로그래밍/Java

list같은 걸 돌리는 for문에서

remove를 호출할 때 발생...

java.util.ConcurrentModificationException


이유는 index 문제.. 생각해보면 금방 알 수 있듯이..

증가된 index와 list의 size를 비교하는데 있어서 문제가 발생하게된다.



아래와 같은 방법으로 해결하면 됩니다.


1. Take a copy of the collection , iterate over the copy and remove elements from the original. 

2. During iteration, build up a set of elements to remove, and then perform a bulk removal after iteration has completed.

3. Use an List implementation which can deal with concurrent modifications, like the CopyOnWriteArrayList



대충 이런식이 좋은거 같다.

List<String> list = new ArrayList<String>();
...
for (Iterator<String> iterator = list.iterator(); iterator.hasNext(); ) {
    String value = iterator.next();
    if (value.length() > 5) {
        iterator.remove();
    }
}


아래와 같이 for문도 두번.. 위의 for문안에 집어넣는다해도..
clone 하는 방식은 좋지 않은거 같다... 쓸데없이 만들필요가 있나..

List<String> toRemove = new ArrayList<String>();
for (String fruit : list) {
    if ("banane".equals(fruit))
        toRemove.add(fruit);
    System.out.println(fruit);
}
for (String fruit : toRemove) {
    list.remove(fruit);
}

'프로그래밍 > Java' 카테고리의 다른 글

Callable 과 Thread  (0) 2013.10.31
Comparator & Comparable 이용한 정렬  (0) 2013.05.20
업캐스팅  (0) 2011.09.27
추상화  (0) 2011.09.26
enum 활용  (0) 2011.09.25
posted by 암초보
2011. 9. 27. 00:36 프로그래밍/Java

업캐스팅시...

메서드는 자식 메서드가 호출됨.
하지만, 자식 멤버 필드에 접근 불가능.
하지만 자식 메서드를 통해서 사용되는 자식의 멤버 필드는 사용가능.
 

'프로그래밍 > Java' 카테고리의 다른 글

Comparator & Comparable 이용한 정렬  (0) 2013.05.20
java.util.ConcurrentModificationException  (1) 2013.05.15
추상화  (0) 2011.09.26
enum 활용  (0) 2011.09.25
예외처리 방법  (0) 2011.09.24
posted by 암초보
2011. 9. 26. 02:18 프로그래밍/Java

하위 시스템의 공통점을 뽑아내서 분리시키는 것.
예) JDBC


이렇게 하면 하위 시스템이 어떤 것인지 알지 못해도, 또는 하위 시스템이 바뀌더라도 일관된 방법으로 접근 가능.

'프로그래밍 > Java' 카테고리의 다른 글

java.util.ConcurrentModificationException  (1) 2013.05.15
업캐스팅  (0) 2011.09.27
enum 활용  (0) 2011.09.25
예외처리 방법  (0) 2011.09.24
예외의 종류  (0) 2011.09.24
posted by 암초보
2011. 9. 25. 00:23 프로그래밍/Java

private static final int SMALL = 1;
private static final int MIDDLE = 2;
private static final int BIG = 3;

int size;

public void setType(int size) {
  this.size = size;
}

위와 같이 프로퍼티 타입을 int형으로 사용하면 타입이 안전하지 않을 수 있다
(실수를 하더라도 컴파일러에서 체크해주지 못함)
예) setLevel(10000);


그래서 자바 5이상에서는 enum을 이용하는게 안전.

public enum Size {
  SMALL(1), MIDDLE(2), GOLD(3);
  private final int value;
  SIZE(int value) {
    this.value = value;
  }
  public int intValue() {
    return value;
  }
  public static Size valueOf(int value) {
    switch(value) {
      case 1: return SMALL;
      case 2: return MIDDLE;
      case 3: return BIG;
    }
  }
}

DB에 넣을시에는... intValue() 메서드 사용(SMALL->1)
DB에서 가져와서는... valueOf() 메서드 사용(1->SMALL)

'프로그래밍 > Java' 카테고리의 다른 글

업캐스팅  (0) 2011.09.27
추상화  (0) 2011.09.26
예외처리 방법  (0) 2011.09.24
예외의 종류  (0) 2011.09.24
Java 접근제한자  (0) 2011.09.18
posted by 암초보
2011. 9. 24. 00:55 프로그래밍/Java

예외 복구
: 예외상황을 파악하고 문제를 해결해서 정상 상태로 돌려놓는 것
ex) 서버접속 실패시 정해진 횟수만큼 재시도

예외 회피
: catch 후 throw 문을 사용하여 rethrow

예외 전환
: 의미부여 또는 중첩예외(체크예외->런타임 예외)

'프로그래밍 > Java' 카테고리의 다른 글

추상화  (0) 2011.09.26
enum 활용  (0) 2011.09.25
예외의 종류  (0) 2011.09.24
Java 접근제한자  (0) 2011.09.18
Java transient  (0) 2011.09.05
posted by 암초보
prev 1 2 next