본문 바로가기

자바12

다른 스레드의 종료를 기다렸다가 수행하는 방법, Thread.join() 주로 스레드는 다른 스레드와 독립적으로 실행하도록 한다. 그렇지만 특정 스레드가 종료될 때까지 기다렸다가 실행해야 하는 경우도 있을 수 있다. 예를 들어, A, B 두 개의 스레드가 있다. A 스레드는 B 스레드에서 실행한 결과값을 이용해야 한다고 가정하자. 이러한 경우에는 Thread 클래스의 join() 메서드를 사용하면 된다. ThreadA가 ThreadB의 join() 메서드를 호출하면, ThreadA는 ThreadB 작업이 종료할 때까지 일시 정지 상태가 된다. 작업이 종료되고 나면 ThreadA는 일시 정지 상태에서 실행 상태가 되서 다음 코드를 실행하게 된다. ThreadA는 ThreadB 작업을 실행한다. ThreadA는 ThreadB.join() 메서드를 호출한다. ThreadA는 일시 .. 2019. 4. 29.
자바에서 OS에 맞게 줄바꿈(newline) 처리 방법 자바에서 OS에 따라 줄바꿈 문자를 처리한다면, 아래 코드를 이용해서 newline 문자열을 가져와서 사용해야 한다. String newline = System.getProperty("line.separator"); // Java 1.7+ String newline = System.lineSeparator(); 윈도우와 리눅스에서 줄바꿈(newline) 문자 윈도우 : \r\n 리눅스 : \n 2019. 4. 22.
Java 리스트(List) 컬렉션 종류 ArrayList, Vector, LinkedList List 컬렉션의 종류로는 ArrayList, Vector, LinkedList가 있다. 애플리케이션 개발 업무를 하면서 List 컬렉션을 많이 사용한다. 특히 ArrayList를 많이 사용하고, 가끔 Queue 자료구조를 사용할 때만 LinkedList를 사용했다. List 컬렉션 List 컬렉션은 객체를 일렬로 늘어놓은 구조로 이루어져 있다. 객체를 인덱스로 관리하기 때문에 List 컬렉션에 객체를 추가하면 자동 인덱스가 부여된다. 인덱스는 객체를 검색, 삭제할 때 사용한다. List 컬렉션은 객체 자체를 저장하는 것이 아닌 객체의 번지를 참조한다. 동일한 객체를 저장하는 것을 허락(이 점은 Set 인터페이스와 다른점)하는데, 이 경우에는 동일한 객체의 번지를 참조한다. 그리고 null도 저장할 수 .. 2019. 4. 22.
백준알고리즘 1475번 방 번호 1475번 방 번호 문제는 문자열 처리 알고리즘입니다. 방 번호 4자리 숫자를 입력 받아서 최소 숫자 세트를 이용하여 표현해야 한다. 문제에서 6과 9은 혼용되어서 사용할 수 있다고 했다. 숫자 세트에는 0부터 9까지의 숫자가 들어 있다. 예제 입력으로 9999 방 번호 숫자가 들어오면, 숫자 세트는 최소 2개를 사용한다. 9는 6으로도 표현할 수 있으므로 숫자 세트 2개에 있는 6, 9, 6, 9 숫자를 이용한다. 6과 9를 혼용해서 사용하므로 처음 입력 받을 때 6 문자열을 모두 9로 변경할 수 있다. 만약, 예제 입력으로 6666이 들어오면 9999로 변경될 수 있다. 문자열 변경을 하고 나서 toCharArray() 메서드를 이용하여 각 숫자별 개수가 몇 개 있는지 체크한다. int index =.. 2019. 4. 22.
“” 또는 생성자를 사용하여 Java String 문자열 생성 이 글은 programcreek 사이트 튜토리얼을 번역한 자료입니다. 원문은 https://www.programcreek.com/2014/03/create-java-string-by-double-quotes-vs-by-constructor/ 에서 확인할 수 있습니다. “” 또는 생성자를 사용하여 Java String 문자열 생성 Java에서는 String을 두 가지 방법으로 생성할 수 있다. String s1 = "Hello, lelecoder"; String s2 = new String("Hello, lelecoder"); “”(큰 따옴표)를 사용하는 것과 생성자를 사용하는 것의 차이점은 무엇일까요? 1. “”(큰 따옴표) vs 생성자 이 질문은 두 가지 간단한 예제를 통해 대답 할 수 있습니다. Ex.. 2019. 4. 14.
List(리스트)를 Array(배열)로 변환 방법 List(리스트)를 Array(배열)로 변경할 때 사용하는 메서드로는 toArray()가 있다. toArray() 메서드 종류는 2가지가 있다. 첫 번째는 반환값이 T[]이고, 두 번째는 반환값이 Object[]이다. toArray(T[] a), toArray() 메서드의 차이점은 반환값이 다르다. 제네릭을 사용한 메서드는 런타임에 자료형 값을 이용하기 때문에 String 리스트를 이용할 경우에 String[] 배열이 반환된다. 그러므로 배열을 사용할 때 자료형 변환을 할 필요가 없다. 하지만, Object[] 배열을 반환하는 toArray() 메서드는 배열을 사용할 때 필요한 자료형으로 변환해서 사용해야 한다. public class ListToArrayMain { public static void m.. 2019. 4. 11.