인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

hattman님의 프로필 이미지
hattman

작성한 질문수

(2025) 일주일만에 합격하는 정보처리기사 실기

정적 변수, 정적 메서드 (static)

C언어에서의 정적 변수 vs JAVA에서의 정적 변수

해결된 질문

작성

·

112

·

수정됨

0

질문 그대로입니다. 약간 쓰이는 개념 자체가 다른거 같아서 질문드립니다.

답변 1

0

주말코딩님의 프로필 이미지
주말코딩
지식공유자

C언어에서 static 이라고 쓰는 정적 변수는 파일이나 함수 내에서 사용되며, 초기화 된 이후로는 프로그램이 종료될 때까지 계속 살아있는 변수를 뜻합니다. 그냥 한 번 태어나면, 정해진 범위 안에서 계속 살아있는 변수를 정적 변수라고 부른다고 기억하시면 좋습니다.

 

Java에서는 클래스가 (여기서 주의. 객체 아님) 메모리에 올라갈 때 초기화 되는 변수입니다. 그냥 해당 클래스를 읽는 순간 태어난다고 생각하시면 됩니다. 똑같이 키워드 static을 사용하지만, 객체 간에 공유가 된다는 특징이 있습니다. 정적 변수는 객체에 종속되는게 아니라 클래스 그 자체에 종속됩니다.

 

어쨌든 둘 다 영향을 미치는 범위가 정해져 있고, 둘 다 프로그램이 끝날 때까지 메모리에 살아있는 변수입니다. 다만 하나는 절차지향적인 언어이고, 다른 하나는 객체지향적인 언어다 보니 사용되는 방식이나 범위를 약간 다르게 기억해야합니다.

 

이해에 도움이 되셨을까요?

hattman님의 프로필 이미지
hattman
질문자

네 감사합니다 아무래도 파이썬이 메인언어다보니 키워드 사용을 한다는 개념 자체가 익숙하지 않네요

hattman님의 프로필 이미지
hattman

작성한 질문수

질문하기