static 키워드 - C언어와 Java 비교
코딩C언어Java
읽는데 4분 소요
처음 쓰여진 날: 2026-03-31
마지막 수정일: 2026-05-19
조회수: —
요약
C언어와 Java에서 static 키워드의 공통점과 차이점을 비교합니다. 둘 다 데이터 영역에 저장되고 한 번만 초기화되지만, C에서는 변수의 값을 메모리에 고정하고 Java에서는 멤버를 클래스에 고정합니다.
static 핵심 정리
이 페이지에서 다루는 C언어 static의 핵심 개념을 요약한 표입니다.
| 개념 | 설명 | 예시 |
|---|---|---|
| static 선언 | 변수 앞에 static 키워드 추가 | static int x = 0; |
| 한 번만 초기화 | 프로그램 시작 시 한 번만 초기화됨 | 두 번째 호출에서도 이전 값 유지 |
| 값 유지 | 함수 종료 후에도 값이 사라지지 않음 | 함수를 반복 호출하면 이전 값이 누적되어 2 → 4 → 6처럼 증가 |
| 저장 위치 | 데이터(Data) 영역에 저장 | 지역 변수(스택)와 다른 위치 |
| 접근 범위 | 선언된 함수 안에서만 접근 가능 | 전역 변수와 달리 함수 밖 접근 불가 |
C언어에서 static은 주로 함수 안의 변수에 사용되어 값을 메모리에 고정합니다. 일반 지역 변수는 함수가 끝나면 사라지지만, static 변수는 함수가 끝나도 값이 유지됩니다. 사용 예제와 전역 변수와의 비교는 C언어 static 변수 페이지에서 자세히 다룹니다.

static 핵심 정리
이 페이지에서 다루는 Java static의 핵심 개념을 요약한 표입니다.
Java에서 static은 멤버를 클래스에 고정합니다. 인스턴스를 만들지 않아도 클래스명으로 바로 접근할 수 있고, 모든 객체가 같은 값을 공유합니다. static 메서드·변수의 사용법, 초기화 블록, 상속과 초기화 순서 같은 심화 주제는 Java static 페이지에서 자세히 다룹니다.

C와 Java에서 static의 공통점과 차이점 기초
C와 Java에서 static은 같은 키워드지만 강조하는 의미가 다릅니다.
공통점
C와 Java static의 공통 핵심: 고정된 메모리
어떤 언어든 static이 붙으면 '고정된 메모리 위치에 한 번 만들어져서 끝까지 유지된다'는 뜻입니다. 스택에 생겼다 사라지는 일반 지역 변수와 달리, 데이터 영역에 저장됩니다.
차이점
| 구분 | C언어 | Java |
|---|---|---|
| 무엇을 고정? | 변수의 값을 메모리에 고정 (함수 종료 후에도 유지) — 자세한 예제는 C static 변수 | 멤버를 클래스에 고정 (인스턴스 없이 접근) — 자세한 예제는 Java static |
| 적용 대상 | 변수 | 변수 + 메서드 |
| 접근 범위 | 선언된 함수 내부로 제한 | 어디서든 클래스명.멤버로 접근 |
| 공유 개념 | 해당 없음 (함수 내 값 고정) | 모든 인스턴스가 같은 값을 공유 |
같은 '고정'이지만, 무엇을 고정하느냐가 다릅니다
C에서는 변수의 값을 메모리에 고정하여 함수가 끝나도 사라지지 않게 합니다. Java에서는 멤버를 클래스에 고정하여 특정 객체가 아닌 클래스 자체에 귀속시킵니다. 시험에서 C는 함수 호출 간 값 유지 여부를, Java는 클래스명으로 호출 가능한지 여부를 주로 묻습니다.