JAVA/JAVA 관련에 해당하는 글 19

Comparable vs Comparator

JAVA/JAVA 관련|2016. 12. 22. 07:54

Comparable vs Comparator


- Comparable은 기본 정렬기준을 구현하는데 사용한다.

- Comparator은 기본 정렬기준 외에 다른 기준으로 정렬하고자할 때 사용된다.


- 오버라이딩 하지 않고 그냥 compare를 사용한다면 그게 Comparable이다.


Class 클래스명 implements Comparator{

public int compare(Object o1, Object o2){

Comparable c1 = (Comparable) o1;

Comparable c2 = (Comparable) o2;

return c1.compareTo(c2) * -1 ; // -1을 곱하면 내림차순으로 정렬이 된다.

 }

}

댓글()

java stringtokenizer 예제

JAVA/JAVA 관련|2016. 12. 22. 07:54

tringTokenizer(String str, String delim) :  문자열 str을 지정된 구분자로 나누는 StringTokenizer를 생성한다.

int countTokens() : 전체 토큰수를 반환한다.

boolean hasMoreTokens() : 토큰이 남아있는지 알려준다.

String nextToken() : 다음토큰을 반환한다.




ex)


String source = "100, 200, 300, 400, 500";

StringTokenizer st = new StringTokenizer(source, ",");


while(st.hasMoreTokens()){

System.out.println(st.nextToken());

}

}

}

댓글()

JAVA 메모리 관련 정보 GC, 메모리영역

JAVA/JAVA 관련|2016. 12. 22. 07:53


자바 메모리 누수 측정 방법

  • 자바 프로그램의 실제 메로리 사용량은 시스템의 작업관리자에서 나오는 메모리 사용량으로는 측정  없기에 디버그 출력으로 totalMemory() - freeMemory() 출력하거나개발 도구를 사용하여 측정하는 것이좋다.

 

GC 알고리즘

  • 메모리가 GC 부터 해소가 되지 않는 루트 참조 객체(직간접적으로 참조가 되는 모드 객체) 크게 3가지경우이다.
  1. Static 변수에 의한 객체 참조
  2. 모든 현재 자바 스레드 스택내의 지역 변수매개 변수에 의한 객체 참조
  3. JNI 프로그램에 의해 동적으로 만들어지고 제거되는 JNI global 객체 참조

이러한 경우에 사용할  있는 객체로 분류되어 GC에서 가져가지 않아 메모리가 누수될  있다.


자바 메모리영역은 3가지로 구성되어 있다.

Heap : 사용자가 생성하는 object

Metaspace : classload, 메소드변수 정보를 저장하는 영역

Native : OS 자원을 보관하는 영역


태그 : GC, java, 메모리, 힙.

댓글()