본문 바로가기

java24

[Java] equals()와 hashcode()는 언제 재정의해야 하나 [이펙티브 자바]의 아이템 10, 아이템 11에서 equals()와 hashcode() 재정의에 대한 내용을 자세하게 다루고 있다. 추후에 해당 내용에 대한 포스팅을 할 예정이고 여기서는 간단하게 요약해 알아보고자 한다. equals() equals()는 두 객체가 논리적으로 같은가를 확인해야하는데 상위 클래스의 equals가 논리적 동치성을 비교하도록 재정의되지 않았을 때 재정의한다. 예를들어, 레스토랑의 주문 관리 애플리케이션을 만들고 있고, 식당의 메뉴를 나타내는 Menu 클래스를 정의하고 있다고 해보자. public class Menu { private String name; private int price; ... } Menu 객체의 두 인스턴스가 이름과 가격이 같다면 이 둘은 “논리적으로 같은.. 2021. 8. 8.
[Java] StringBuffer vs StringBuilder 차이 (무엇을 써야할까?) String in Java 자바에서 String을 다룰 때 알아두어야 할 것이 있습니다. String은 참조 자료형이다. 근데 자바에서 좀 특별하게 취급된다. 불변(Immutable)이다. String pool 자바에서 String은 일반 객체와 달리 heap 영역의 String pool에서 관리됩니다. 문자열은 다음과 같이 두 가지 방법으로 생성할 수 있습니다. public static void main(String[] args) { String a = "Hello"; String b = new String("Hello"); } a, b 두 개의 문자열은 JVM 내에서 생성되는 영역이 다릅니다. 출처: https://www.journaldev.com/797/what-is-java-string-pool .. 2021. 8. 2.
[Java] 더블 디스패치(Double Dispatch) 6주차 스터디에서 메서드 디스패치에 대해 공부했다. 메서드 디스패치에는 동적 메서드 디스패치와 정적 메서드 디스패치가 있다. 그리고 메서드 디스패치를 활용한 더블 디스패치라는 기법이 있다. 더블 디스패치는 메서드 디스패치를 두 번 사용하여 유연성을 높이는 것인데, Visitor pattern에서 사용되는 기법이다. 여러 자료를 찾아보다가 토비님이 더블 디스패치에 대해 설명해주신 영상을 봤는데 한번에 와닿지는 않아서 포스팅으로 정리하면서 확실히 익혀보고자한다. 토비님의 영상은 여기! https://www.youtube.com/watch?v=s-tXAHub6vg&t=2732s 요구 사항 및 구현 자 우선 SNS 플랫폼에 맞게 포스팅을 뿌리는 서비스를 개발한다고 생각해보자. SNS라는 도메인과 Post라는 서.. 2021. 7. 8.
[Java Study 15주차] 람다식 목표 자바의 람다식에 대해 학습하세요. 학습할 것 (필수) 람다식 사용법 함수형 인터페이스 Variable Capture 메소드, 생성자 레퍼런스 람다식 사용법 람다식이란? 람다식(Lambda Expression)은 간단히 말하면 메서드를 하나의 식(expression)으로 표현한 것이다. 식에 대한 개념은 아래 포스팅에 정리해뒀다. wisdom-and-record.tistory.com/65 [Java] Statement와 Expression 람다식을 공부하다가 식(expression)과 문(statement)에 대한 이해가 부족한 것 같아서 포스팅으로 정리합니다. 아래의 글을 많이 참조했습니다. 오류 정정 및 피드백 댓글로 주시면 감사하겠습니다. w wisdom-and-record.tistory.com.. 2021. 2. 28.
[Java] Statement와 Expression 람다식을 공부하다가 식(expression)과 문(statement)에 대한 이해가 부족한 것 같아서 포스팅으로 정리합니다. 아래의 글을 많이 참조했습니다. 오류 정정 및 피드백 댓글로 주시면 감사하겠습니다. www.oreilly.com/library/view/learning-java/1565927184/ch04s04.html Learning Java Statements and Expressions Although the method declaration syntax of Java is quite different from that of C++, Java statement and expression syntax is like that of C. Again, the intention … - Selectio.. 2021. 2. 28.
[Java Study 14주차] 제네릭스(Generics) 본 포스팅은 백기선님이 진행하시는 자바 스터디 를 진행하며 혼자 공부하고 이해한 내용을 바탕으로 정리한 글입니다. 오류나 지적 사항이 있다면 댓글로 알려주시면 감사하겠습니다. 해당 메서드의 인자로 들어오는 리스트의 요소는 어떤 특징을 가진 타입이어야 할까요? public static 2021. 2. 23.