정처기 감자정처기 감자
공통 기초메모리

검색

검색어를 입력해 개념, 문제, 필기를 찾습니다.

static 키워드 - C언어와 Java 비교

코딩C언어Java
읽는데 4분 소요
처음 쓰인 날: 2026-03-31
마지막 수정일: 2026-05-19
조회수: —
선수학습(2개)
  • 변수 스코프 - 지역 변수와 전역 변수의 탐색 순서
  • 메모리 구조 (스택, 힙, 데이터 영역)

요약

C언어와 Java에서 static 키워드의 공통점과 차이점을 비교합니다. 둘 다 데이터 영역에 저장되고 한 번만 초기화되지만, C에서는 변수의 값을 메모리에 고정하고 Java에서는 멤버를 클래스에 고정합니다.

static 핵심 정리

이 페이지에서 다루는 C언어 static의 핵심 개념을 요약한 표입니다.

개념설명예시
static 선언변수 앞에 static 키워드 추가static int x = 0;
한 번만 초기화프로그램 시작 시 한 번만 초기화됨두 번째 호출에서도 이전 값 유지
값 유지함수 종료 후에도 값이 사라지지 않음함수를 반복 호출하면 이전 값이 누적되어 2 → 4 → 6처럼 증가
저장 위치데이터(Data) 영역에 저장지역 변수(스택)와 다른 위치
접근 범위선언된 함수 안에서만 접근 가능전역 변수와 달리 함수 밖 접근 불가

C언어에서 static은 주로 함수 안의 변수에 사용되어 값을 메모리에 고정합니다. 일반 지역 변수는 함수가 끝나면 사라지지만, static 변수는 함수가 끝나도 값이 유지됩니다. 사용 예제와 전역 변수와의 비교는 C언어 static 변수 페이지에서 자세히 다룹니다.

func()를 3번 호출했을 때 스택 영역의 x는 매번 2로 초기화되어 사라지고, 데이터 영역의 static int y는 2 → 4 → 6으로 누적되는 메모리 상태 비교
같은 함수를 3번 호출했을 때 일반 지역 변수와 static 변수의 메모리 상태 비교

static 핵심 정리

이 페이지에서 다루는 Java static의 핵심 개념을 요약한 표입니다.

개념설명예시
static 메서드인스턴스 없이 클래스명으로 호출 가능Gamja.check(1)
static 변수모든 인스턴스가 공유하는 변수static int count = 0;
클래스에 고정객체가 아닌 클래스 자체에 귀속됨클래스명.변수, 클래스명.메서드()
main 메서드프로그램 시작점, 항상 staticpublic static void main(...)

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

Gamja 인스턴스 2개가 메서드 영역의 같은 static count를 공유
Gamja 인스턴스 2개가 메서드 영역의 같은 static count를 공유

C와 Java에서 static의 공통점과 차이점

C와 Java에서 static은 같은 키워드지만 강조하는 의미가 다릅니다.

공통점

공통점C언어Java
데이터 영역에 저장데이터 영역(Data Area)데이터 영역(Method Area)
한 번만 초기화프로그램 시작 시클래스 로딩 시
프로그램 종료까지 유지OO
초기값 자동 지정0으로 초기화각 타입마다 정해진 기본값으로 초기화 (int는 0, String은 null)
C와 Java static의 공통 핵심: 고정된 메모리
어떤 언어든 static이 붙으면 '고정된 메모리 위치에 한 번 만들어져서 끝까지 유지된다'는 뜻입니다. 스택에 생겼다 사라지는 일반 지역 변수와 달리, 데이터 영역에 저장됩니다.

차이점

구분C언어Java
무엇을 고정?변수의 값을 메모리에 고정 (함수 종료 후에도 유지) — 자세한 예제는 C static 변수멤버를 클래스에 고정 (인스턴스 없이 접근) — 자세한 예제는 Java static
적용 대상변수변수 + 메서드
접근 범위선언된 함수 내부로 제한어디서든 클래스명.멤버로 접근
공유 개념해당 없음 (함수 내 값 고정)모든 인스턴스가 같은 값을 공유
같은 '고정'이지만, 무엇을 고정하느냐가 다릅니다
C에서는 변수의 값을 메모리에 고정하여 함수가 끝나도 사라지지 않게 합니다. Java에서는 멤버를 클래스에 고정하여 특정 객체가 아닌 클래스 자체에 귀속시킵니다. 시험에서 C는 함수 호출 간 값 유지 여부를, Java는 클래스명으로 호출 가능한지 여부를 주로 묻습니다.

정보처리기사 실기 대비 문제

문제를 불러오는 중이에요.
문제를 불러오는 중이에요.
문제를 불러오는 중이에요.
문제를 불러오는 중이에요.
문제를 불러오는 중이에요.
문제를 불러오는 중이에요.
메가커피와 함께, 홈페이지 개선에 참여하세요! ☕
혹시 이용에 불편한 점이나 개선이 필요한 부분을 발견하셨나요? 댓글로 알려주시면 더 나은 감자가 될 수 있어요! 🥔 제보해주신 모든 분께 메가커피 기프티콘을 드립니다! (본인 이메일로 댓글 달아주셔야해요~)
후수학습(3개)
  • C언어 static 변수 - 값이 유지되는 변수
  • Java static 키워드 - 클래스 메서드와 클래스 변수
  • Java 싱글톤(Singleton) 패턴 - 인스턴스를 하나만 만드는 방법
정처기 감자정처기 감자

정보처리기사 합격
도와줄라고 하는 감자

실기 이론

  • 이론 공부법
  • DB
  • 네트워크/OS
  • SW 설계
  • SW 개발
  • 보안/신기술

시험 응시

  • 시험장 찾기
  • 원서 접수
  • 응시자격 서류

요약 PDF

  • 26년 3회 이론 압축
  • 26년 3회 코딩 압축
  • 초압축 25년 3회
  • 압축 25년 3회

기출문제

  • 전체 기출문제
  • 25년 3회
  • 25년 2회
  • 문제 포럼

감자 이용권

  • 이용권 구매

실기 이론

  • 이론 공부법
  • DB
  • 네트워크/OS
  • SW 설계
  • SW 개발
  • 보안/신기술

시험 응시

  • 시험장 찾기
  • 원서 접수
  • 응시자격 서류

요약 PDF

  • 26년 3회 이론 압축
  • 26년 3회 코딩 압축
  • 초압축 25년 3회
  • 압축 25년 3회

기출문제

  • 전체 기출문제
  • 25년 3회
  • 25년 2회
  • 문제 포럼

감자 이용권

  • 이용권 구매
© 2025 재현기획개발. All rights reserved.
  • 정처기 감자의 시작
  • 업데이트 로그
  • 개인정보 처리방침
  • 이용약관
상호명 : 재현기획개발 / 주소: 서울특별시 영등포구 영등포로 150, 지하1층 108호 L145 가라지(당산동1가, 생각공장 당산) / 대표: 김재현 / 전화: 010-8158-7127 / 통신판매업신고: 제2025-서울영등포-1569호 / 이메일: contact@edugamja.com / 사업자등록번호: 573-51-00999