문자열로 온 text 값을 LocalDateTime으로 parsing 해야 할 작업이 생겼다. 그런데 형식도 보통 yyyyMMddhhmmss 형식이 아니라 밀리세컨드까지 포함된 형식에 yyyy도 아닌 뒤에 yy만 들어오는 형태였다. Date: 120220 (20/2/2012) Time: 6150525 (6:15:05.250) 이렇게 들어온다.. 첫번째로 yyyy가 아닌 yy부터 날짜까지만 파싱이 되는지 확인해봤다. LocalDateTime yyMMddhhmmss = LocalDateTime.parse("220811165340", DateTimeFormatter.ofPattern("yyMMddHmmss")); System.out.println("yyMMddhhmmss = " + yyMMddhhmmss);..
필터링 Predicate로 필터링 스트림 인터페이스 중 filter 메서드는 Predicate(불리언을 반환하는 함수)를 인수로 받아서 Predicate와 일치하는 모든 요소를 포함하는 스트림을 반환한다. List vegetarianMenu = menu.stream() .filter(Dish::isVegetarian) //채식 요리인지 확인하는 메서드 참조 .collect(toList()); 고유 요소 필터링 스트림은 고유 요소로 이루어진 스트림을 반환하는 distinct 메서드도 지원한다. List numbers = Arrays.asList(1, 2, 1, 3, 3, 2, 4); numbers.stream() .filter(i -> i%2 ==0) .distinct() .forEach(System.ou..
스트림이란 무엇인가? 스트림은 자바 8 API에 새로 추가된 기능이다. 스트림을 이용하면 선언형으로 컬렉션 데이터를 처리할 수 있다. 일단 스트림이 데이터 컬렉션 반복을 멋지게 처리하는 기능이라고 생각하자. 스트림을 병렬로 처리할 수 도 있는데 이건 내가 잘 이해를 못하고 일하는 환경에서의 필요성을 아직은 잘 못느껴서 나중에 정리 기존 코드와 자바8 스트림을 활용한 코드를 비교 // JAVA8 이전 public static List getLowCaloricDishesNamesInJava7(List dishes) { List lowCaloricDishes = new ArrayList(); //가비지 변수 즉, 컨테이너 역할만 하는 중간변수이다. 오직 정렬 연산을 위해 필요한 변수 for (Dish d : ..
오버로딩을 할 때 Method Signature가 중요하다. Method Signature가 같다는 것은 name 과 parameter types가 같다는 것을 말한다. 메서드 시그니처에는 return type(리턴 타입)은 포함되지 않는다. 시그니처가 같은 메서드는 동시에 한 클래스안에서 정의할 수 없다. 시그니처가 다른 메서드는 오버로딩이 가능하다. 이름이 다르거나 파라미터의 타입이나 개수가 다르거나.. public class MethodSignature { public static void main(String[] args) { } public String hello(int i) {return "";} public String hello(String s) {return "";} } hello 메서드..
pom.xml com.hierynomus smbj 0.10.0 Java @Value("${file.upload.server}") private String server; @Value("${file.upload.sharedFolder}") private String sharedFolder; @Value("${file.upload.user}") private String user; @Value("${file.upload.password}") private String pass; 업로드 public void smbFileUpload(){ .... SMBClient client = new SMBClient(); try (Connection connection = client.connect(address)) { ..
java의 컬렉션인 List에 관한 예제에서 기본값을 넣어줄 때 List integerList = List.of(1, 2, 3, 4, 5); List integerList2 = Arrays.asList(1, 2, 3, 4, 5); of() 정적 메서드는 자바 9부터 추가된 메서드이다. 어쨌든 List 값을 넣어주는 것은 동일한 것 같은데 무슨 차이일까 궁금해서 검색해봄. Arrays.asList returns a mutable list while the list returned by List.of is immutable: asList는 불변객체가 아니고 of는 불변객체로 만들어준다. 크게 뭔가 와닿는건 없는데 stackoverflow를 첨부 나중에 더 깨닫게되면 다시 씀. stackoverflow.com..
기본형 특화 스트림인 IntStream과 LongStream에는 정적 메서드인 range와 rangeClosed가 있다. 특정 범위의 숫자를 차례대로 생성해주는 기능을 가진다. 두 메서드 모두 시작 값과 종료 값을 인수로 받는다. public static IntStream range(int startInclusive, int endExclusive) { ... } public static IntStream rangeClosed(int startInclusive, int endInclusive) { ... } 단 하나의 차이점이라면 함수의 인자값에도 힌트가 있듯이 range 메서드는 종료 값을 포함하지 않지만 (endExclusive) rangeClosed 메서드는 종료값을 포함해서 반환한다. (endIn..
Java8부터 추가된 Math 클래스의 정적 메서드를 실습해본다. 기본적으로 자바에 있는 클래스들의 정적 메서드를 많이 알고 활용하는 것이 소스코드의 가독성에서도 좋은 것 같다. 개발자가 구현하려고 하면 할수있지만 괜한 수고를 할뿐더러 예외처리까지 다 적용되어있는 정적 메서드를 쓰는 편이 마음이 편하다. 전부는 아니지만 몇가지만 살펴본다. 더하기 Math.addExact addExact 메서드로 덧셈을 실행한다. 인수값으로 int형 또는 long형 값이 들어올 수 있다. int형과 long형으로 오버로딩 되어있다. MAX값을 넘어서는 값을 보내면 ArithmeticException overflow가 발생한다. @Test @DisplayName("더하기") void addExactTest() throws ..
- Total
- Today
- Yesterday
- docker
- 북리뷰
- Bash tab
- Linux
- 오라클
- Java
- 베리 심플
- elasticsearch
- rocky
- 프로페셔널 스튜던트
- Spring Security
- intellij
- window
- localtime
- svn
- Mac
- Kotlin
- input
- LocalDate
- Github Status
- maven
- jQuery
- config-location
- LocalDateTime
- mybatis config
- oracle
- JavaScript
- springboot
- mybatis
- Spring
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |