1. 문제 제기 (Introduction & Problem Statement)관찰 현상 또는 질문:자바에서 객체를 문자열로 변환할 때 String.valueOf(), Object.toString(), "" + object 등 다양한 방법이 존재합니다. 개발을 하다 보면 무심코 이 방법들을 혼용하게 되는데, "과연 이들 사이에 어떤 차이가 있으며, 어떤 상황에서 무엇을 사용하는 것이 가장 적절한가?"라는 의문이 생겼습니다. 특히 null 값을 다룰 때 각 방식의 동작이 달라 예기치 않은 버그를 유발할 수 있습니다.탐구 목표:본 아티클에서는 각 문자열 변환 방식의 내부 동작 원리, 특히 NullPointerException (NPE) 발생 가능성과 성능상의 미묘한 차이를 비교 분석하고자 합니다. 이를 통해 ..
🚀 이 주제를 선택한 이유 & 학습 목표선택 배경: 객체 지향 프로그래밍의 핵심인 캡슐화를 공부하던 중, private 키워드와 함께 사용되는 static, final의 미묘한 차이가 혼란스러웠습니다. 특히 '어차피 불변인데 공유와 개별의 차이가 무엇인가?'라는 의문을 해결하고, 각 키워드의 역할을 명확히 이해하여 올바른 객체 설계를 하고 싶었습니다.학습 목표:private, static, final 각각의 핵심 역할을 자신의 언어로 설명할 수 있다.이 키워드들의 조합(private static, private final, private static final)이 필드의 '성격'을 어떻게 규정하는지 설명할 수 있다.'개별적인 불변 값(final)'과 '공유되는 불변 값(static final)'의 차이..
[CS] JVM🚀 이 주제를 선택한 이유 & 학습 목표선택 배경: 프로젝트를 진행하면서 발생하는 문제를 이해하기 위해 기본적인 Spring과 JVM에 대해 학습 필요성을 느꼈다학습 목표: JVM의 동작 방식에 대한 전체적인 이해를 하자📚 핵심 개념 및 원리1. 주요 용어 정의JVM (Java Virtual Machine) : 자바 바이트 코드를 실행하는 가상 머신, 운영체제와 하드웨어에 독립적으로 자바 프로그램을 실행할 수 있게 한다JRE (Java Runtime Environment) : JVM + 자바 클래스 라이브러리 (API)JDK (Java Development Kit) : JRE + 개발 도구 (컴파일러, 디버거 등)JNI (Java Native Interface) : JVM 위에서 네이티..