record class
·
DEVELOP/CONCEPT
record란?불변 객체(필드 수정 불가)를 쉽게 생성할 수 있게 해주는 클래스 유형JDK14에서 preview로 등장하여 JDK16+부터 정식 스펙에 포함되었다. record은 무엇을 할까?필드 캡슐화 (private final)생성자 메서드Getter 메서드equals() 메서드hashCode() 메서드toString() 메서드record를 사용하면 위 내용들을 직접 구현하지 않아도, 자동 생성해준다. 일반 class vs record class일반 클래스public class Student { private String name; private int age; public Student(String name, int age) { this.name = name; ..
primitive type vs wrapper class
·
DEVELOP/CONCEPT
Primitive Type원시 타입이라고도 하며, 자바의 기본 자료형, 실제 값 자체를 저장한다.int, boolean, char, double 등이 여기에 해당한다. Wrapper ClassPrimitive Type을 객체로 감싼 클래스이다.Integer, Boolean, Character, Double 등이 여기에 해당한다. 주요 차이점항목Primitive TypeWrapper Class저장 방식값 자체 저장객체로 저장 (레퍼런스 타입)Null 허용XO기본값0, false 등null컬렉션/제네릭 사용XO (List 가능)메서드XO (Integer.parseInt(), toString() 등)성능빠름상대적으로 느림 자바에서는 primitive와 wrapper 간 자동 변환이 일어난다.int a = 10..
final, static, static final 차이
·
DEVELOP/CONCEPT
1️⃣ finalfinal은 '최종인', '결정적인'이라는 뜻으로 값이 한 번 저장되면 수정이 불가능하다는 뜻이다.그래서 흔히 생성자 주입을 받을 때 해당 변수를 final로 선언하여 해당 인스턴스의 변경을 막아준다.또한, 값을 받아오기 전까지는 어떤 값도 final 변수에 할당이 가능하므로 완전한 상수라고 보긴 어렵다. variable에 사용했을 때값이 한 번 저장되면 이후, 변수를 수정하지 못하게 한다.method에 사용했을 때메서드에 final을 붙이면 override를 제한한다.class 에 사용했을 때상속 불가능 클래스가 된다.class Parent { public final void greet() { System.out.println("Hello"); } } class Chi..
SOLID 원칙
·
DEVELOP/CONCEPT
객체 지향 설계 5원칙SRP(Single Responsibility Principle): 단일 책임 원칙OCP(Open Closed Principle): 개방 폐쇄 원칙LSP(Listov Substitution Principle): 리스코프 치환 원칙ISP(Interface Segregation Principle): 인터페이스 분리 원칙DIP(Dependency Inversion Principle): 의존 역전 원칙 🤔 SOLID 원칙을 지켜야 하는 이유?시간이 지나도 변경이 용이하고, 유지보수와 확장이 쉬운 소프트웨어를 개발하는 데 도움이 되기 때문이다. SOLID의 핵심은 결국 추상화와 다형성이다. 구체 클래스에 의존하지 않고 추상 클래스(또는 인터페이스)에 의존함으로써 우리는 유연하고 확장가능한 ..