Java & Spring 44

Static

1. static 이해static은 클래스가 JVM에 로딩되는 순간부터 존재한다. 즉, 객체 이전 단계에서 이미 메모리에 존재함.class A { static int x;}new A() 필요 없이 A.x로 바로 접근이 가능함.2. class 로딩 시 JVM의 동작Class Loader가 class 파일 로딩Method Area에 클래스 정보 적재 (데이터, 메서드, static 변수)static 초기화 수행 (기본값, 초기화 블록 실행)class Example { static int x = 10; static { System.out.println("static block"); }}📌 객체가 없어도 static 변수와 print문은 동작함. 3. static 변수의 메모..

Java & Spring/Java 2026.01.05

객체의 상태와 변수의 생명주기

1. 객체의 상태란?객체는 상태(state)와 행동(behavior)으로 구성된다. 상태 -> 변수행동 -> 메서드class Person { String name; // 상태 int age; // 상태 void speak() { // 행동 System.out.println("아아 목소리!!"); }}📌즉, 변수를 이해하는 것은 객체의 상태를 이해하는 것이라고 볼 수 있다. 2. 변수는 모두 같지 않다. Java의 변수는 선언 위치와 생명 주기에 따라 명확히 구분된다. 변수의 3가지 종류인스턴스 변수 (필드)클래스 변수 (static 변수)지역 변수이 변수들은 메모리와 생명 주기 차이가 핵심이다. 3. 필드(Field) vs 지역 변수(Local Variable)..

Java & Spring/Java 2026.01.05

객체 지향 기본

1. 객체와 클래스 클래스(Class)객체를 생성하기 위한 설계도필드(상태)와 메서드(행동)을 정의JVM 관점에서는 클래스 로딩 시 Method Area에 적재하는 것class Person { String name; int age; void speak() { System.out.println("아아 목소리 테스트!"); }} 객체(Object)클래스를 기반으로 실제 메모리에 생성된 실체서로 다른 객체는 각자 독립적인 상태를 가짐Person p1 = new Person(); # Person 객체 1 Person p2 = new Person(); # Person 객체 2 2. 객체 생성 과정(메모리 관점)Person p = new Person();JVM 내부 동작 순서클래스..

Java & Spring/Java 2026.01.05

객체지향프로그래밍(OOP)

1. 객체 지향 프로그래밍(OOP)이란?상태와 행동을 가진 객체를 만들고, 이 객체들이 서로 협력하며 거대한 프로그램을 완성해가는 방식을 의미한다. 구분설명객체(Object)상태(State)와 행동(Behavior)을 가진 독립적인 존재클래스(Class)객체를 만들기 위한 설계도메시지객체 간 상호작용 방식 (메서드 호출)협력여러 객체가 상호작용하며 프로그램을 구성 2. 사고의 전환: 절차 지향 vs 객체 지향 절차지향 : 기능을 어떻게 구현할까? (순서 중심)객체지향 : 누가 이 기능을 담당해야 하지? (책임 중심) 절차 지향은 데이터와 로직이 분리되어 코드가 꼬이기 쉽지만, 객체지향은 역할과 책임을 분리한다. 3. 객체지향이 유리한 상황 기능이 계속 추가되는 대규모 프로젝트 (확장성)여러 개발자가 협업..

Java & Spring/Java 2026.01.05