
인터페이스는 일종의 설계도로, 메소드의 선언만 제공하며 구체적인 구현은 없다. 즉, 인터페이스는 "이런 메소드가 있어야 해"라고 규칙을 정의한다. 반면, 클래스는 인터페이스에서 선언된 메소드를 실제로 구현하는 코드이다.

절차 지향 프로그래밍은 순차적인 명령의 흐름을 중시하며, 프로그램의 각 단계가 순차적으로 실행된다.

체 지향 프로그래밍(OOP)은 데이터를 속성과 메서드로 묶어 코드의 재사용성과 유지보수성을 높이는 방식이다. 이번 글에서는 사칙연산을 예시로 OOP의 핵심 개념을 설명한다.

자바에서 null은 참조형 변수가 어떤 객체도 가리키지 않을 때 사용하는 특별한 값이다. 하지만 null을 적절히 처리하지 못하면 NullPointerException이라는 예외가 발생할 수 있다.

기본형은 값을 직접 저장하고, 참조형은 객체의 메모리 주소를 저장한다. 기본형은 바로 연산 가능하지만, 참조형은 객체 내부의 기본형 데이터를 통해서만 연산 가능하다.

생성자는 객체 생성 시 초기화 작업을 수행하고, 클래스의 이름과 동일하며 반환 타입이 없는 특별한 메서드이다.

접근 제어자는 클래스, 메서드, 필드 등의 접근 범위를 설정하여 외부에서의 불필요한 접근을 막고, 객체의 캡슐화를 구현하는 데 사용된다. 접근 제어자의 종류로는 private, default, protected, public이 있으며, 각각 접근 허용 범위가 다르다.

자바의 메모리 구조는 크게 메서드 영역, 스택 영역, 힙 영역으로 나뉜다. static은 메서드 영역에 저장되어 클래스 로딩 시 생성되며, 인스턴스 없이도 클래스명으로 접근 가능한 변수나 메서드를 의미한다.

기본형은 값이 직접 복사되며 독립적으로 동작하고, 참조형은 객체의 참조값을 복사해 같은 객체를 공유한다.

패키지는 자바에서 관련된 클래스와 인터페이스를 기능별로 묶어 체계적으로 관리하기 위한 구조이며, 대규모 프로그램에서 파일 관리를 용이하게 한다.

메서드 오버라이딩

static 메서드는 인스턴스 변수에 접근할 수 없다

Java에서 문자열 리터럴은 컴파일 시 String Constant Pool(문자열 상수풀)에 저장되며, 동일한 리터럴은 공유된다.

자식 클래스의 생성자를 호출했는데, 왜 부모 클래스의 생성자도 실행될까?

같은 이름의 변수, 생성자, 클래스 구분의 핵심!

입장 차이..

자식 클래스에만 정의된 메서드는 부모 타입으로 참조하면 사용할 수 없다.

동적 바인딩과 정적 바인딩

인스턴스 변수가 초기화되는 시점

try-catch-finally

두 가지 이상 조건에 대해서 정렬하는 방법

Dynamic Programming