반응형

자바

    java HashSet 설명 및 예제

    Hashset HashSet은 Set인터페이스를 구현한 가장 대표적인 컬렉션이며, Set인터페이스의 특징대로 HashSet은 중복된 요소를 저장하지 않는다. HashSet은 저장 순서를 유지하지 않기때문에 저장순서를 유지하고 싶은경우에는 LinkedHashSet을 사용하면 된다.(JDK 1.4 부터 추가됨) 사용예 public static void main(String args[]) { Set set = new HashSet(); for(int i=0;i

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

    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{} 이 메서드를 사용하려는 사람은 이메서드를 사용하기 위해서 어떤한 예외들일 처리되어야 하는지 쉽게 알수 있다. ( 자바가 가지는 장..

    멀티 스레드

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

    java thread pool 소개

    스레드 풀Public class GzipRunnable implements Runnable { Private final File input; Public GZipRunnable(File input) {This.input = intpu;} @OverridePulbic void run(){ if (!input.getName().endsWith(".gz")) {File output = new File(input.getParent(), input.getName() + ".gz");If(!output.exists) {Try (InputStream in = new BufferedInputStream(new FileInputStream(input));OutPutStream out = new BufferedOutput..

    JAVA 스레드 스케줄링

    스레드 스케줄링 # 스레드 스케줄링에는 크게 선점형과 협력형 두 가지가 있다. 선점형 스레드 스케줄러- 선점형 스레드 스케줄러는 스레드에게 공평하게 분배된 CPU 시간이 소진되었을 때, 스레드를 중지시키고 다른 스레드에게 CPU 제어권을 넘겨주는 일을 결정한다. 협력형 스레드 스케줄러- 협력형 스레드 스케줄러는 CPU 제어권을 다른 스레드에게 넘겨주기 전에 실행 중인 스레드가 스스로 실행을 중단 할때 까지 기다린다.- 협력형은 기아현상이 일어 날 수 있다. 모든 자바 가상머신은 우선순위에 따른 선점형 스레드 스케줄링 방식의 사용이보장된다.(선점형 스레드는 우선순위가 높은 스레드를 먼저 실행시키는 등의 문제로 인해 다른 스레드들은 기아현상에빠질 수도 있다. 잘 사용해야 한다.)-> 우선순위가 높은 스레드들..

    Thread 동기화 문제

    Thread 동기화 문제스레드는 중앙의 리소스풀로 부터 빌린다. 스레드는 메모리, 파일 핸들, 소켓 등의 리소스를 공유하여 프로그램을 좀 더효율적으로 만단ㄷ. 두 스레드가 동시에 같은 리소스를 사용하지만 않는다면 멀티 스레드 프로그램이 각 프로스스가별도의 리소스를 유지하는 멀티 프로세스 프로그램보다 훨씬 효율적이다.그러나 언제 어느 문장이 실행될지 몰라 결과의 순서를 예측할 수 없고, 자원을 공유하고 있을 경우 데드락 현상이 발생할 수 있다.스레드에 동일자원 접근에 대해 배타적인 접근을 할당해 줄 방법은 Synchronized를 명시해주는 방법이다.예제)Run(){System.out.println(result);} Thread.start() 진행 시 System.out.println 자원을 서로 공유하기..

반응형