본문 바로가기

Java/Basic3

Java의 == 와 equals() Java에서 값을 비교하는 방법은 == 연산자와 equals() 메서드를 사용하는 것이다. == 연산자는 순수하게 값을 비교해주는 연산자이며, equals()는 논리적으로 같은 객체인지 비교하는 메서드이다. 예를 설명하기 위해 Person 클래스를 만들어보았다. name이 다르더라도 id 값이 같다면 동일 인물이다. class Person { Long id; // 주민등록번호 String name; // 이름 public Person(Long id, String name) { this.id = id; this.name = name; } } 일단 == 비교 연산을 해보았다. public static void main(String[] args) { Person p1 = new Person(1L, "홍길동").. 2022. 1. 14.
자바의 Optional 알아보기 자바는 참조변수에 기본적으로 null을 허용한다. 상황에 따라 null을 사용할 수 있다는 것이 편리는 하지만 참조 변수를 안전하게 사용하기 위해선 null 체크가 필수다. null 체크를 하지 않으면 runtime중에 NullPointException이 언제 던져질지 모른다. public void savePerson(Person person) { if(person == null) thorw new RuntimeException(); repository.save(person); } 보통 위와 같이 null 체크를 하게 되는데 코드를 지저분하게 만든다. 그래서 대체로 나온 것이 Optional이다. Optional은 Wrapper 클래스의 일종으로 값이 null일 수 있음을 알려준다. Optional 생성.. 2021. 11. 9.
ThreadLocal 이란 ThreadLocal은 쓰레드별로 사용할 수 있는 변수 저장 공간이라고 생각하면 된다. 간단한 예시를 보자. @Slf4j public class NonThreadLocalTest { static String data; public static void main(String[] args) throws InterruptedException { data = "main data"; Thread thread1 = new Thread(() -> { data = "thread1 data"; log.info(" data={}", data); }); thread1.setName("thread1"); Thread thread2 = new Thread(() -> { data = "thread2 data"; log.info(.. 2021. 11. 1.