본문 바로가기
728x90
반응형

개발/Java11

[Java] Java8에서의 날짜/시간 비교 (LocalDateTime) Java8 이전에는 흔히 알고 있는 Date, Calendar를 통해 날짜시간을 비교했었는데 불편한 사항이 많았다. 하지만 Java8 부터는 LocalDateTime, LocalDate, LocalTime, ZonedDateTime을 제공하기 때문에 기존의 불편한 사항이 많이 해소 되었다. 그래서 오늘은 많이 쓰이는 LocalDateTime을 이용한 대표적으로 날짜/시간 비교하는 함수를 정리해두려고 한다. isBefore() 인자보다 과거일 때 true 반환 LocalDateTime oldDate = LocalDateTime.parse("2021-11-10T10:11:15.000"); LocalDateTime newDate = LocalDateTime.parse("2021-12-16T10:11:15.00.. 2021. 11. 16.
[Java] 두 개의 List를 stream을 사용해서 비교하기 List를 비교하는 방법은 여러가지가 있다. 오늘은 java8부터 제공하는 stream을 사용해서 비교하는 방법을 알아보려고 한다. 예제1. List 2개를 각각 비교해 중복 되지 않은 값 찾기 void listTest() { List oldList = Arrays.asList("1", "2", "3", "4"); List newList = Arrays.asList("3", "4", "5", "6"); List resultList1 = oldList.stream() .filter(old -> newList.stream().noneMatch(Predicate.isEqual(old))) .collect(Collectors.toList()); System.out.println(resultList1); // [.. 2021. 10. 28.
[Lombok] @NoArgsConstructor, @AllArgsConstructor, @RequireArgsConstructor Lombok에서 제공하는 기능 중 가장 대표적인 @Date, @Getter, @Setter 외에도 생성자를 자동 생성 해주는 @NoArgsConstructor, @AllArgsConstructor, @RequrieArgsConstructor에 대해 어떤것을 의미하는지 알아보자. @NoArgsConstructor 파라미터가 없는 기본 생성자를 생성한다. @AllArgsConstructor 모든 필드 값을 파라미터로 받는 생성자를 생성한다. @RequireArgsConstructor final이나 @NonNull인 필드 값만 파라미터로 받는 생성자를 생성한다. 예제 @NoArgsConstructor @AllArgsConstructor @RequireArgsConstructor public class User.. 2021. 10. 27.
[Java] 깊은복사와 얕은복사(Call By Value & Call By Reference) 자바를 떠나서 프로그래밍을 하다 보면 꼭 알아야할 개념 중 하나인 Call By Value, Call By Reference에 대해 알아보자. Call By Value 값을 호출 하는것을 의미하며 전달 받은 값을 복사하여 처리한다. 전달 받은 값을 변경하여도 원본은 변경되지 않는다. Call By Reference 참조에 의한 호출을 의미하며, 전달 받은 값을 직접 참조한다. 전달 받은 값을 변경할 경우 원본도 같이 변경이 된다. 그렇다면 자바에서의 Call By Value와 Call By Reference는 어떻게 적용이 될까? 기본 자료형 변수가 파라미터 → 값 (깊은 복사) Array, List 등의 변수가 파라미터 → 주소(얕은 복사) 아직 정확하게 깊은 복사와 얕은 복사가 어떤 건지 이해가 안되.. 2021. 10. 27.
[Java] 압축 파일 jar vs war java를 사용하다보면 jar파일과 war파일이 존재한다는 것을 알 수 있다. 하지만 이 둘의 차이점은 명확히 모르고 있었다. jar와 war가 의미하는 바를 알아보자. jar, war java 기반의 application의 배포 형태이다. java tar tool을 이용하여 압축한 압축 파일이다. (jar와 war는 압축 형태의 파일이다.) jar와 war는 사용 목적이 다르다. jar Java ARchive path 정보를 유지한 상태로 압축한다. 자바 클래스 파일과 각 클래스들이 사용하는 리소스 파일 및 메타 데이터를 압축한 파일이다. 실제로는 ZIP 파일 포맷으로 압축된 파일이다. war Web application ARchive 웹 어플리케이션을 어떻게 설정할 지에 대한 정의가 있는 web.xm.. 2021. 10. 18.
[Java] 데이터 타입 Integer와 Int의 차이 데이터 타입 Integer와 Int의 차이 int n1; Integer n2; Java에서 int를 선언할 때와, Integer를 선언할 때의 차이점이 뭘까? 그 부분에 대해서 알아보려 한다. Int primitive 자료형(long, float, double) 이다. 산술 연산이 가능하다. null로 초기화 할 수 없다. Integer Wrapper 클래스(한 객체를 의미) 이다. Unboxing을 하지 않으면 산술 연산이 불가능 하지만, null 값을 처리할 수 있다. null 값 처리가 용이하기 때문에 SQL과 연동할 경우에 처리를 원할하게 할 수 있다. DB에서 자료형이 정수형이지만 null 값이 필요한 경우 VO에서 Integer를 사용할 수 있다. Wrapper 클래스란? Java는 데이터로서.. 2021. 10. 3.
728x90
반응형