String 문자열 더하기String str = "A" + "B" + "C" + "D";String str = String("A") + String("B") + String("C") + String("D");String str = new String("AB") + String("C") + String("D");String str = new String("ABC") + String("D");String str = new String("ABCD"); 최종적으로는 new String(”ABCD”)만 사용되는데, 중간에 생성되는 Garbage Class가 생성되는 문제가 있습니다. 문자를 자주 더하거나 변경해야 하는 상황이라면 더 많은 String 객체를 만들고, GC 해야 합니다.→ 컴퓨터의 CPU, 메모리 ..
Java의 record 클래스는 모든 필드에 대한 값을 자동으로 관리합니다. 또한, 불변 객체를 생성하기 위한 구조를 제공해 줍니다. record 클래스에서는 기본 생성자나 매개변수가 있는 생성자를 구현할 수 없습니다.왜냐하면 불변성을 보장하기 설계된 클래스이기 때문이다.record는 불변 객체를 보장하기 위해 설계되었습니다. 모든 필드는 final로 정의되며, 생성자 외의 다른 초기화 방법을 제공하지 않도록 기본 생성자를 허용하지 않습니다.기본 생성자는 매개변수 없이 객체를 생성합니다. 하지만 record의 특성상 모든 필드를 반드시 초기화해야 하므로 기본 생성자를 사용한 객체 생성은 논리적으로 불가능합니다.기본적으로 모든 필드는 생성자 파라미터로 설정됩니다. Compact constructorComp..
If 문은 프로그래밍을 하면서 사용할 수밖에 없는 문법 중 하나이다.If 문을 사용할 때 보다 가독성 좋고 최적화된 코드로 작성하기 위해 If 문 클린 코드 방법에 대해 정리해보고자 합니다.단축 평가자바에서 and와 or 은 &&, || 연산으로 처리합니다.&&if(condition1 && condition2 && condition3 && condition4) {}&& 연산자는 여러 개의 boolean 조건이 있을 때, 하나의 조건이라도 false가 있으면 결과는 false가 됩니다.즉, 위 조건 식에서 condition1이 false이면 뒤에 있는 조건을 확인하지 않고 조건문을 벗어나게 됩니다. ||if(condition1 || condition2 || condition3 || condition4) {..
Shutdown Hook이란기존 종료 작업 방법자바 애플리케이션을 실행한 후 Ctrl + C 키를 눌러서 종료하는 경우 JVM은 스레드들이 어떤 상황에 있는지에 상관없이 스레드를 강제적으로 종료시키기 때문에 안정적으로 애플리케이션의 종료 작업을 진행할 수 없습니다. 특히, 서버 프로그램의 경우 할당한 자원이나 상태 정보 등을 서버 종료 시에 올바르게 처리해 주어야 하는데, 강제 종료를 통해서는 올바르게 처리할 수 없는 문제가 있습니다. 예를 들어 프로그램이 실행 중에 중요한 데이터를 처리하거나 파일을 열어두고 있는데, 갑자기 종료되면 그 과정이 중단되기 때문에 데이터 손상, 저장되지 않은 정보 등 여러 문제가 발생할 수 있습니다. 이러한 문제를 해결하기 위해서 Shutdown Hook 기능을 사용합니다...