본문 바로가기

분류 전체보기

(192)
JAVA(2022.06.07) - 데몬 쓰레드 일반 쓰레드의 작업을 돕는 보조적인 쓰레드 일반 쓰레드가 모두 종료되면 데몬 쓰레드는 강제종료가 아닌, Runnable 상태로 돌아간다 > 매우 중요함 가비지 컬렉션, 워드 프로세서 자동저장, 화면 자동갱신 등에서 사용됨 setDaemon(true) 메소드를 사용하여야 하고, 스레드가 실행되기 전에만 호출해야 예외가 발생하지 않는다 무한루프와 조건문을 통해 대기하도록 만들고 조건 충족 시 작업 후 다시 대기하도록 만든다 코드예시 // Runnable을 구현하는 DaemonThread클래스를 작성 public class DaemonThread implements Runnable { // 무한루프안에서 0.5초씩 쉬면서 데몬쓰레드가 실행중입니다를 출력하도록 run()메소드를 작성 @Override publi..
JAVA(2022.06.06) - 쓰레드와 상태제어(wait, notify) wait와 notify는 동기화된 블록 안에서 사용해야 한다 wait()를 만나게 되면 MonitoringLock을 가지고 있는 경우 권한을 놓고 대기한다 ex) public class ThreadB extends Thread{ // 해당 쓰레드가 실행되면 자기 자신의 모니터링 락을 획득 // 5번 반복하면서 0.5초씩 쉬면서 total에 값을 누적 // 그후에 notify()메소드를 호출하여 wiat하고 있는 쓰레드를 깨움 int total; @Override public void run(){ synchronized(this){ for(int i=0; i
Arrays.binarySearch - java는 배열에서 이진 검색을 하는 메소드를 표준 라이브러리로 제공한다 - java.util.Arrays 클래스의 binarySearch메소드가 있다 import java.util.Arrays; import java.util.Scanner; public class BinarySearchTester { public static void main(String[] args) { Scanner stdIn = new Scanner(System.in); System.out.print("요솟수 : "); int num = stdIn.nextInt(); int[] x = new int[num]; //배열생성 System.out.println("오름차순으로 입력하세요."); System.out.print("x[0]..
검색(선형 검색, 보초법,이진 검색 선형 검색 - 요소가 직선 모양으로 늘어선 배열에서 원하는 키 값을 갖는 요소를 만날 때까지 앞부터 순서대로 요소를 검색하는 방식 ex) import java.util.Scanner; public class SeqSearch { static int seqSearch(int[] a, int n, int key) { for (int i = 0; i
다차원배열과 확장 for문의 장점 다차원배열 다차원 배열의 복제는 최상위 1레벨만 수행된다 ex) int[][] a ={{1,2,3,4},{5,6,7}}; int[][] b = a.clone(); 일때, a[0]과 a[1]만 복제되고 그 아래 레벨의 배열은 복제되지 않고 공유된다 . 즉, 1과5만 복제된다는 것이다. 확장 for문 ex) for (int i =0; i>>>>>>>> sum = sum+i; } } 장점 - 배열의 요솟수(길이)를 조사하는 수고를 덜 수 있다 - iterator와 같은 방법으로 스캔할 수 있다 - 스캔은 확장 for문에 의해 구현하는 것이 좋다
에라토스테네스의 체 자바 소수판별 알고리즘을 공부하다보니 에라토스테네스의 체에 관련된 알고리즘을 보고 공부를 하게 되었다. 코딩테스트를 위해 클린코드를 지향하는 나로서 매우 중요한 부분인거 같아서 정리해보고자 한다. 에라토스테네스의 체는 N이하의 수들이 소수인지 아닌지 판별할 때, n(임의의 수)의 배수들을 모두 지움으로써 시간복잡도를 저하시킨다는 장점을 가지고 있다. 아래의 코드를 직접 살펴보며 공부하도록 하자 예시로 N을 16이라고 해보자. 배열은 index값이 0,1,2....16까지 있는 17의 크기를 가진 Boolean타입의 배열이 생성되었을 것이다. 16의 제곱근 값은 4가 되고, i=2, i
소수 판별 알고리즘 1000이하의 소수 나열 알고리즘 구조 개선 전 구조개선 후
JAVA(2022.06.05) - 쓰레드와 상태제어(join) join Thread가 종료될 때까지 기다려야 할 때 Thread.join()을 사용한다 ex) public class MyThread5 extends Thread{ public void run(){ for(int i = 0; i < 5; i++){ System.out.println("MyThread5 : "+ i); try { Thread.sleep(500); } catch (InterruptedException e) { e.printStackTrace(); } } } // run } public class JoinExam { public static void main(String[] args) { MyThread5 thread = new MyThread5(); // Thread 시작 thread.st..