목차 개요 스프링 그리고 Java를 사용하다 보면 null 값 핸들링이 무척 중요하다는 사실을 깨닫고 적절한 처리에 대해 고민을 하게 된다. 특히 NullPointerException의 발생 또한 자주 접하게 된다. Java에서는 이러한 문제를 해결하기 위해 Optional 클래스를 도입했다. Optional (Java Platform SE 8 ) A container object which may or may not contain a non-null value. If a value is present, isPresent() will return true and get() will return the value. Additional methods that depend on the presence or a..
Java
목차 개요 카카오테크캠퍼스 백엔드 과정 강의를 듣다가 HAS-A 관계와 IS-A관계에 관한 내용이 나와서 또 다른 관계는 없을까 라는 생각에 공부해보게 되었다. 객체지향 프로그래밍에서는 클래스 간의 상호작용과 협력을 나타내는 여러 가지 관계가 존재한다. 이 글에서는 이러한 관계들을 알아보고, 코드의 재사용성과 응집도, 그리고 유지 보수성을 높이는 데 도움이 되는 설계 원칙을 소개한다. IS-A 관계 (상속) - 강한 결합 IS-A 관계는 클래스 간의 상속 관계를 의미한다. 하위 클래스가 상위 클래스의 특별한 종류로 간주되며, 상위 클래스의 속성과 메서드를 물려받는다. 이 관계를 통해 코드의 재사용성을 높일 수 있고, 상속 계층을 통해 객체 간의 일반화와 특수화를 구조화할 수 있다. HAS-A 관계 (연관..
목차 개요 자바에서 문자열을 조작할 때 주로 사용되는 클래스들인 String, StringBuffer, StringBuilder의 차이점과 특성에 대해 알아보자. 이 세 가지 클래스는 각각 다른 상황에서 사용하기 적합하며, 그 중 String 클래스를 사용할 때 오버헤드가 발생하는 이유에 대해 설명하고 StringBuffer와 StringBuilder의 차이를 알아보자. String에서 오버헤드가 발생하는 이유 String 클래스의 특성을 이해할 필요가 있는데 String은 불변(immutable) 객체로, 생성된 후에 변경할 수 없다. 따라서 문자열 조작이 필요한 경우, 항상 새로운 String 객체가 생성된다. 이로 인해 빈번한 문자열 연산이 발생하는 경우, 메모리에 많은 임시 객체가 생성되어 성능에..
목차 개요 본 포스팅은 클래스 내부에 생성자가 하나라도 선언되지 않았을시에 자바 인터프리터에서 기본 생성자(Default constructor)를 생성해주는 인터프리터 기능에 대한 레퍼런스 자료이다. https://docs.oracle.com/javase/specs/jls/se8/html/jls-8.html#jls-8.8.9 Chapter 8. Classes class Point { int x, y, useCount; Point(int x, int y) { this.x = x; this.y = y; } static final Point origin = new Point(0, 0); } class Test { public static void main(String[] args) { Point p = new..