본문 바로가기

Java & 스프링/Java17

[Java] Java의 날짜와 시간, Time API - (ZonedDateTime, LocalDateTime) 자바의 날짜 계산을 도와주는 java.util.Date 클래스와 java.util.Calendar 클래스는 여러모로 불편하기로 악명이 높다. 대학 시절 처음 자바를 접했을 때부터 다른 언어에 비해 불편하다고 생각했는데 모두가 한마음 한뜻이었다. Date와 Date를 개선한 Calendar의 불편함을 해소하기 위해 많은 개발자들은 유명한 Joda-Time을 사용했을 것이다. 그런데 java8에서 Joda-Time을 참조해서 Time API를 추가했다고 한다. 바로 java.time이다. 일반 Date와 Calendar에서 버그의 위험성이 가장 컸다고 생각되는 불변성이 추가되었다. immutable 해졌다는 소리인데 덕분에 Date, Calendar 객체의 값이 변경되어 사이드 이펙트가 생길 수 있는 불안정.. 2019. 10. 12.
[Java] toString() 메서드 toString? toString()은 인스턴스의 정보를 문자열로 반환합니다. 사람이 보기 편한 형태로 바꾸거나 필요한 정보만을 골라서 반환 문자열을 정할 수 있습니다. toString()을 만들어 보자 먼저 아래, Member 클래스의 toString()을 만들어 보겠습니다. @NoArgsConstructor public class Member { private Long id; private String username; private int age; } lombok이나 IDE의 자동 완성을 이용하면 아주 쉽게 toString() 구현이 가능 합니다. 먼저 Intellij의 자동완성을 이용해 toString()을 자동 생성해 본다면 아래와 같은 메서드가 만들어 집니다. (자동 생성 단축 : alt + .. 2019. 5. 1.
[Java] equals() 메서드 자바의 equals는 객체의 참조 변수를 비교해주는 메서드이다. 비교 결과의 결과값을 boolean으로 알려준다. public boolean equals(Object obj) { return (this==obj); } 위의 코드는 Object에 정의된 equals메서드 이다. 두 객체의 같고 다름을 참조 변수의 값으로 판단한다. 주소 값을 비교해서 true, false의 값을 반환하는 것이다. 우리가 흔히 사용하는 String 클래스의 문자열의 비교는 equals()가 기본적으로 오버라이딩 되어 있어 주소가 아닌 값을 비교하게 된다. 아래는 equals() 오버라이딩의 예제이다. public class Test { public static void main(String[] args) { Fruit p1 .. 2019. 5. 1.
[Java] 접근제어자 제어자 같은 클래스 같은 패키지 자손 클래스 전체 public O O O O protected O O O default O O private O public : 제한 없음 protected : 같은 패키지 내에서, 다른 패키지의 자손 클래스에서 접근 가능 default : 같은 패키지 내에서 접근 가능 private : 같은 클래스 내에서만 접근 가능 다음은 대상별 사용 가능한 접근제어자의 목록이다. 대상 사용가능 제어자 클래스 public, default, final, abstract 메서드 모든 접근 제어자, final, abstract, static 멤버 변수 모든 접근 제어자, final, static 지역 변수 final 2019. 4. 24.