반응형

JAVA

    Comparable vs Comparator

    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 예제

    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, 메모리영역

    자바 메모리 누수 측정 방법자바 프로그램의 실제 메로리 사용량은 시스템의 작업관리자에서 나오는 메모리 사용량으로는 측정 할 수없기에 디버그 출력으로 totalMemory() - freeMemory()를 출력하거나, 개발 도구를 사용하여 측정하는 것이좋다. GC 알고리즘메모리가 GC로 부터 해소가 되지 않는 루트 참조 객체(직간접적으로 참조가 되는 모드 객체)는 크게 3가지경우이다.Static 변수에 의한 객체 참조모든 현재 자바 스레드 스택내의 지역 변수, 매개 변수에 의한 객체 참조JNI 프로그램에 의해 동적으로 만들어지고 제거되는 JNI global 객체 참조이러한 경우에 사용할 수 있는 객체로 분류되어 GC에서 가져가지 않아 메모리가 누수될 수 있다. 자바 메모리영역은 3가지로 구성되어 있다.Hea..

    두가지 유형의 자바 예외처리

    1. 코드public static void main(String args[]){method 1();} statci void method1(){try{throw new Exception(); // 일부러 예외처리}catch (Exception e){System.out.println("method1 메서드 내에서 예외가 처리되었습니다");e.printStackTrace();}}} 결과method1메서드 내에서 예외가 처리 되었습니다.java.lang.Exception at javas.javas.method1(javas.java:12) at javas.javas.main(javas.java:8) 2. 코드public static void main(String args[]){try{method1();}catch..

    자바 예외처리

    1. try - catch -finally 문try{// 예외가 발생할 가능성이 있는 문장들을 넣는다.} catch (Exception e){//예외처리를 위한 문장을 적는다.} finally{// 예외 발생여부에 관계없이 항상 수행되어야 하는 문장들을 넣는다.} 2. 메서드 예외 처리 메서드에 예외를 선언하려면, 메서드의 선언부에 키워드 throws를 사용해서 메서드내에서 발생할 수 있는 예외를 적어주기만 하면 된다.(예외가 여러개일 경우에는 , 쉼표로 구분한다.) void method() throws Exception1, Execption2, ... ExceptionN{} 이 메서드를 사용하려는 사람은 이메서드를 사용하기 위해서 어떤한 예외들일 처리되어야 하는지 쉽게 알수 있다. ( 자바가 가지는 장..

    Eclipse 구성

    Eclipse - 종전의 개발 툴은 개발자로 하여금 툴에 갇혀 있또록 만드는 한계가 있었다. 이클립스는 모든 플랫폼을 제공해 주는것을 지향한다. - eclipse 기본 플랫폼 위에 각자의 갭라 용도에 맞는 플러그인을 추가하고, 스스로가 업무 환경에 맞춰 개발 환경을 꾸밀 수 있도록 지원한다. Eclipse plug_in- 이클립스를 구성하는 각각의 기능 단위.- 이클립스에서 동작하는 코드조각- plugin.xml : 해당 플러그인이 다른 플러그인과의 확장점 등을 설명하는 설명서- icons : 아이콘과 같은 리소스- com : 컴파일된 자바코드 플러그인 설치 방법1. 플러그인 파일을 다운 받아서 압축을 푼 후, 내부에 있는 jar 파일을 복사하여 eclipse 폴더 아래 plugins 폴더에 붙여넣고 이..

    멀티 스레드

    멀티 쓰레딩의 장점- CPU의 사용률을 향상시킨다.- 자원을 보다 효율적으로 사용할 수 있다.- 사용자에 대한 응답성이 향상된다.- 작업이 분리되어 코드가 간결해진다. Thread 클래스 vs Runnable 인터페이스Thread 클래스를 사용하는 방법과 Runnable 인터페이스를 구현하는 방법 두가지가 있다.- Thread클래스를 상속받으면 다른 상속이 불가능 하기에 대체로 Runnable인터페이스를 사용한다. - Runnable 인터페이스를 구현하는 방법이 재사용성이 높고 코드의 일관성을 유지할 수 있는 장점이 있다.- Runnable 인터페이스는 run()메서드만 정의되어있는 간단한 인터페이스이다.- Thread 클래스를 상속받으면, Thread 클래스의 메소드를 직접 호출할 수 있지만 .Runn..

    쓰레드 개념정리

    쓰레드의 스케줄링과 관련된 메서드void interrupt() : sleep()이나 join()에 의해 일시정지상태인 쓰레드를 실행대기 상태로 만든다.void join(), join(long millis) : 지정된 시간동안 쓰레드가 실행되도록 한다. / 해당 쓰레드가 종료될때 까지 main 쓰레드는 대기한다.void resume() : suspend()에 의해 일시정지상태에 있는 쓰레드를 실행대기상태로 만든다.static void sleep(long miillis) : 지정된 시간 동안 쓰레드를 일시정지 시킨다. 시간이 지난후 다시 실행대기상태가 된다.void stop() : .쓰레드를 즉시 종료신킨다.void suspend() : 쓰레드를 일시정지 시킨다.static void yield() : 실행중..

    JAVA 데몬 스레드 소개

    데몬 쓰레드는 다른 일반 쓰레드의 작업을 돕는 보조적인 역할을 수행하는 쓰레드이다. boolean isDeaemon() 쓰레드가 daemon 쓰레드 인지 확인void setDaemon(boolean on) 쓰레드를 데몬 쓰레드로 또는 사용자 쓰레드로 변경한다. 자동저장 쓰레드 프로그래밍 package javas; import javax.swing.JOptionPane; public class Thread1 { static boolean autoSave = false; public static void main(String args[]) { Runnable r = new Thread_1(); Thread t1 = new Thread(r); t1.setDaemon(true); t1.start(); for (..

    synchronized 쓰레드 예제 프로그래밍

    문제의 프로그램package javas; import javax.swing.JOptionPane; public class Thread1 { public static void main(String args[]) { Runnable r = new RunnableEX(); Thread t1 = new Thread(r); Thread t2 = new Thread(r); t1.start(); t2.start(); }} class Account{ int balance = 1000; public void withdraw(int money){ if(balance >= money){ try{ Thread.sleep(1000);} catch (Exception e){ } balance -= money; } }} class..

반응형