목록Java (13)
olrlobt
Queue를 사용해 오면서 구현체를 만들 때 new를 치면 자동 완성 되는 수많은 구현체들을 보면서도, 아무 관심도 주지 않고 내가 쓰는 구현체만 써 왔었다. "개발자가 반드시 알아야 할 자바 성능 튜닝 이야기" 를 읽으며, 그리고 북스터디에서 해당 내용을 이슈로 다루며 Queue에는 어떤 구현체가 있고 어디에 사용되는 지를 알아보게 되었다. Blocking Queue Queue에 대한 개념은 생략하고 바로 Blocking Queue로 넘어가겠다. 먼저 BlockingQueue는 java.util.concurrent 패키지에 포함된, 구현체가 아닌 인터페이스다. Blocking Queue는 동시성 프로그래밍에서 사용되는 스레드 안전한 큐이다. 큐의 기본 작업에 블로킹 연산을 추가하여, 큐가 가득 찼을 때..
정수를 문자열로 변환할 때, 당연하게 String.valueOf()만을 사용하고 있었는데, 알고리즘 스터디를 진행하며 Integer.toString()를 사용하는 경우를 보게 되었고 차이에 의문을 갖게 되었다. int pri = -3; String valueOf = String.valueOf(pri); System.out.println(valueOf); String toString = Integer.toString(pri); System.out.println(toString); //-3 //-3 Integer.toString() vs String.valueOf() Java에서는 정수를 문자열로 변경할 때, 일반적으로 두 가지를 이용할 수 있고, 이 메서드들은 변환하는 정수 타입이 int (Primitiv..
람다식 (Lambda Expression) 자바 8부터 람다식(lambda expression)이 도입되었다. 람다식은 자바에서도 익명 함수(anonymous function)를 표현하기 위한 간결하고 효율적인 방법으로, 함수형 인터페이스(functional interface)를 구현하기 위해 사용되며, 주로 함수형 프로그래밍과 스트림 처리(stream processing)에서 유용하게 쓰인다. 자바에서 람다식은 Stream과 Optional에 자주 쓰이며, 이 클래스들을 사용을 안 했더라도, 자바스크립트에서 자주 접했을 것이다. Optional ex) Optional name = Optional.ofNullable(getName()); name.ifPresent(n -> System.out.printl..
Collections 클래스 (java.util.Collections) Collections 클래스는 Collection 인터페이스를 구현하는 List, Set, Map 등의 클래스에 대한 여러 추가 기능들을 제공하는 클래스이다. 대표적인 기능으로 정렬(sort), 병합(merge), 검색(search) 등의 기능을 제공하는 메서드가 있다. Collections 사용 가능한 자료구조 List Set Map Queue Deque ArrayList LinkedList Vector Stack HashSet LinkedHashSet TreeSet ArrayDeque PriorityQueue HashMap LinkedHashMap TreeMap EnumMap WeakHashMap IdentityHashMap Co..
배열 (Array) 배열이란 선형 자료구조(Data Structure)중 하나로 동일한 타입의 연관된 데이터를 메모리에 연속적으로 저장하여 하나의 변수에 묶어서 관리하기 위한 자료 구조이다. Arrays 클래스 (java.util.Arrays) java.util 패키지의 일부로, 배열을 다루기 위한 다양한 메서드를 제공한다. 특정 값으로 요소를 정렬하거나, 검색 및 채우는 것과 같은 일반적인 배열 작업을 제공한다. 1차원 배열의 출력 : Arrays.toString(int [ ] arr) 지정된 배열을 문자열의 형태로 반환한다. 일반적으로 배열을 반복문을 사용하지 않고 출력하기 위해 사용한다. public static void main(String[] args) { int [] arr = {0,1,2,3..