
Java를 사용하면서 JVM을 정확히 이해하고자 JVM 관련 내용을 정리 해보자.JVM은 컴파일된 클래스 파일(바이트 코드)을 읽고 실행하는 가상 실행 환경(Virtual Machine)이다.자바로 작성된 코드는 컴파일러에 의해 바이트 코드로 변환되고, 이 바이트 코드

프로그래밍에서는 함수로 인자를 전달할 때 크게 ‘Call by value’와 ‘Call by reference’ 방식으로 나뉜다. 전달 방식은 변수의 값이 어떻게 복사되거나 참조 공유 되는지를 결정한다. Java에서는 객체와 기본 타입의 전달 방식이 혼동되는 경우가 많

equals와 hashCode는 Java에서 객체 비교와 해시 기반 자료구조 동작의 핵심이다. 이번에 equals 와 hashCode 에 대해 알아보자.Java에서 equals는 두 객체가 논리적으로 동일한지를 판단하기 위해 사용되는 메서드이다.기본적으로 Object

멀티 스레드 환경은 여러 작업을 동시에 처리할 수 있어 성능 향상에 유리하지만, 공유 자원에 대한 접근을 제대로 제어하지 않으면 데이터 정합성 문제가 발생할 수 있다. 아래 예제를 통해 살펴보자.위 코드는 2개의 스레드에서 count 변수를 각각 10000번씩 증가시키

싱글톤은 디자인 패턴 중 하나로, 클래스의 인스턴스를 단 하나만 생성하여 보장하고, 어디서든 그 인스턴스를 접근할 수 있도록 하는 디자인 패턴이다.싱글톤 패턴은 애플리케이션 전체에서 하나의 인스턴스만 유지하기 때문에 불필요한 객체 생성을 줄이고 메모리 사용을 효율적으로

인터페이스는 객체가 수행할 행위를 정의하는 구조다. 클래스처럼 구현 방식이 아닌 어떤 기능을 제공해야 하는지 명시하는 것이 목적이다. 즉, 인터페이스는 ‘어떻게’가 아닌 ‘무엇’을 정의한다.구현 강제 인터페이스를 구현하는 클래스는 정의된 메서드를 반드시 구현해야 한다

Stream은 데이터가 흐르는 통로를 추상화한 개념이다. 외부와 데이터를 주고 받을 때 데이터가 한번에 처리되는 것이 아닌 순차적으로 전달된다.Java에서 Stream은 이런 데이터 흐름을 일관된 방식으로 다룰 수 있도록 만든 추상화 계층이다. 실제 데이터의 출저에 상