본문 바로가기

java46

Future를 이용한 블로킹 방식의 작업 완료 통보 방법 Future 블로킹 방식의 작업 완료 통보 ExecutorService의 submit() 메서드는 매개값으로 준 Runnable 또는 Callable 객체를 스레드풀의 작업 큐에 저장하고 즉시 Future 객체를 반환한다. Future 객체는 작업이 모두 완료될 때까지 기다렸다가 최종 결과값을 얻는데 사용한다. Future를 지연 완료(pending completion) 객체라고 한다. Future 클래스의 get() 메서드를 호출하면 스레드가 작업을 완료할 때까지 블로킹 상태로 머무르다가 작업이 완료되면 처리 결과를 반환한다. 이 방법이 블로킹을 사용하는 작업 완료 통보 방식이다. 아래는 Future 클래스의 get() 메서드 설명이다. get() : 작업이 완료될 때까지 지연했다가 처리 결과를 반환한.. 2019. 4. 29.
Java 컬렉션 프레임워크(Collection Framework) Java 컬렉션 프레임워크(Collection Framework) 프로그래밍을 하다 보면 다수의 객체 또는 자료형을 담기 위해서 배열을 사용한다. 배열에 저장하면 이후에 필요할 때 꺼내서 사용할 수 있다. 배열의 단점으로는 초기 배열을 선언할 때 크기를 지정해야 한다는 점이다. 배열을 크기는 동적으로 가변적으로 늘릴 수 없다. 그렇다면 무조건 배열의 크기를 크게 해서 생성해야 할까? 배열의 크기를 크게 해서 생성하면, 불필요한 공간으로 인해 듬성 듬성 빈 공간이 남게 된다. 자바에서는 이러한 문제점을 보완하고자 자료구조(Data Structure)를 바탕의 인터페이스와 클래스를 제공한다. java.util 패키지 자료구조 개념의 클래스와 인터페이스는 java.util 패키지에 위치한다. 이들을 총칭해서 .. 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.
Java 문자열 비교 compareTo, compareToIgnoreCase 메서드 Java에는 두 개의 문자열 값을 비교하여 int 형을 반환하는 메서드가 있다. 첫 번째는 compareTo 메서드이고, 두 번째는 compareToIgnoreCase 메서드이다. 두 메서드의 차이점은 비교할 때, 대소문자를 구분해서 비교하는지 여부이다. 이와 유사한 방식의 메서드로는 equals와 equalsIgnoreCase가 있다. compareTo 메서드 compareTo 메서드는 두 개의 문자열 값이 필요하다. 기준 문자열과 비교 문자열이다. 아래 코드에서는 str1이 기준 문자열이며, str2가 비교 문자열이다. str1.compareTo(str2) 메서드의 반환 값은 자료형은 int 형이며 값은 31이다. 31이라는 숫자는 str1, str2 두 문자열의 char로 비교한 결과를 나타낸다. .. 2019. 4. 15.
백준알고리즘 11654번 아스키 코드 11654번 아스키 코드는 주어진 글자를 아스키 코드 값으로 출력하는 문제입니다. import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); String inputText = scanner.next(); // 2개 문자 입력한 경우 종료 if (inputText.length() > 2) { return; } // String -> char로 값의 자료형 변경 char ch = inputText.charAt(0); System.out.println((int) ch); scanner.close(); } } 2019. 4. 15.