Java
-
Java - stream filter 사용법Java 2022. 6. 8. 18:55
리스트에서 null일 element를 필터링하는 예제입니다. filter(Objects::nonNull) 사용해서 null이 아닌 element만 return해줍니다. List list = Arrays.asList("aaa", "bbb", null, "ccc", null); List result = list.stream() .filter(Objects::nonNull) .collect(Collectors.toList()); 결과 ["aaa", "bbb", "ccc"]
-
Java - 불변(Immutable) 리스트 생성Java 2022. 6. 8. 18:42
불변 리스트는 아이템의 추가, 수정, 삭제가 불가능합니다. 리스트가 다른 곳에서 바뀌지 않도록 해주기 위해서 불변 리스트를 사용합니다. java.util.Collections 클래스의 unmodifiableList를 이용해서 리스트를 immutable하게 바꿀 수 있습니다. List list = Arrays.asList("A", "B", "C"); list = Collections.unmodifiableList(list); list.add("D"); // UnsupportedOperationException 발생 관련글 Java - Collections.singletonList emptyList Java - Collections.singletonList emptyList 안녕하세요. 오늘은 java.ut..
-
Java - Collections.singletonList emptyListJava 2022. 6. 8. 18:40
안녕하세요. 오늘은 java.util.Collections 프레임워크 중 singletonList, emptyList에 대해서 알아보겠습니다. List list = Arrays.asList(1); IntelliJ에서 위와 같은 코드를 작성하고 Inspect Code를 해보면 다음과 같은 warning을 알려줍니다. Reports any calls to Arrays.asList() with zero arguments or only one argument. Such calls could be replaced with either a call to Collections.singletonList() or Collections.emptyList() which will save some memory. Note: t..
-
Java - Calendar 클래스로 날짜, 시간, 요일 구하기Java 2022. 6. 8. 18:36
안녕하세요. 오늘은 자바 Calendar 클래스를 이용하여 날짜, 시간, 요일을 구하는 방법을 알아보겠습니다. import java.util.Calendar; class HelloWorld { public static void main(String[] args) { Calendar cal = Calendar.getInstance(); int year = cal.get(Calendar.YEAR); int month = cal.get(Calendar.MONTH) + 1; int date = cal.get(Calendar.DATE); int dayOfWeek = cal.get(Calendar.DAY_OF_WEEK); int hour = cal.get(Calendar.HOUR); int minute = cal...
-
Java - 싱글턴(Singleton) 패턴Java 2022. 5. 30. 20:26
싱글턴 패턴이란? 애플리케이션이 시작될 때 어떤 클래스가 최초 한번만 메모리를 할당하고(static) 그 메모리에 인스턴스를 만들어 사용하는 디자인 패턴 생성자가 여러 차례 호출되더라도 실제로 생성되는 객체는 하나고 최초 생성 이후에 호출된 생성자는 최초에 생성한 객체를 반환 다른 클래스 인스턴스들과 데이터 공유가 쉬움 Database Connection Pool처럼 공통된 객체를 여러개 생성해서 사용해야하는 상황에서 많이 사용(쓰레드풀, 캐시, 로그 기록 객체등) anti-pattern이므로 가급적 사용하지 않는 것이 좋음 싱글턴 패턴의 문제점 너무 많은 일을 하거나 많은 데이터를 공유시킬 경우 다른 클래스 인스턴스들 간의 결합도가 높아져 "개방-폐쇄 원칙"을 위배하게 된다. 수정, 테스트가 어려움 싱..
-
Java - 자바 절대값, 랜덤 함수Java 2022. 5. 30. 19:42
안녕하세요. 오늘은 자바의 Math 클래스를 이용하여 절대값과 랜덤값 생성하는 방법을 알아보겠습니다. java.lang.Math 클래스는 수학에서 자주 쓰이는 함수들을 구현해 놓은 클래스입니다. 절대값(abs) 구하기 Math.abs()를 이용해서 절대값을 구할 수 있습니다. import java.lang.Math; class HelloWorld { public static void main(String[] args) { System.out.println(Math.abs(10)); // 10 System.out.println(Math.abs(-10)); // 10 System.out.println(Math.abs(-1.2); // 1.2 } } 랜덤값 구하기 Math.random()을 이용해서 랜덤값을 ..
-
Java - com.sun.tools.javac.util 패키지 호환성 문제Java 2022. 5. 30. 18:42
javac.util 패키지를 사용 시에 이런 에러가 발생하는 경우가 있습니다. import com.sun.tools.javac.util.List ... 에러 메시지 java: package com.sun.tools.javac.util does not exist javac.util.List를 import 해서 쓰는 경우에 자바 버전에 따라 에러가 발생할 수 있습니다. https://www.javadoc.io/doc/org.kohsuke.sorcerer/sorcerer-javac/latest/com/sun/tools/javac/util/List.html List - sorcerer-javac 0.11 javadoc Latest version of org.kohsuke.sorcerer:sorcerer-java..