상식닷컴
로그인
가입하기
2026년 상식닷컴 선정 식당 & 카페 리스트
2025년 2026년 신상 호텔 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요
일주일 식단표 어플
자동 일주일 식단표 어플
안드로이드
아이폰
주식 & 코인 차트의 신
1000만원으로 2000만원 만들기 프로젝트
수정하기 - 자바에서 static 키워드의 역할은 무엇인가요?
닉네임
비밀번호
제목
내용
[이미지 업로드는 권한이 있는 사람만 가능. 하단 카톡으로 연락]
<a href='https://sangseek.com/sangseeks/자바/ko'>자바</a>에서 `static` 키워드는 클래스의 멤버(변수, 메서드)와 관련된 중요한 개념으로, 객체 지향 프로그래밍의 특성과는 약간 다른 방식으로 작동합니다. `static` 키워드는 주로 다음과 같은 역할을 수행합니다. 1. 클래스 레벨의 멤버`static`으로 선언된 변수나 메서드는 클래스 레벨에서 존재합니다. 즉, 특정 클래스의 모든 인스턴스가 동일한 `static` 멤버를 공유합니다. 이는 메모리 효율성을 높이고, 클래스의 모든 객체가 동일한 데이터를 참조해야 할 때 유용합니다.예를 들어, 다음과 같은 코드가 있을 때:```javaclass Counter { static int count = 0; Counter() { count++; }}```여기서 `count`는 `static` 변수로, `Counter` 클래스의 모든 인스턴스가 동일한 `count` 값을 공유합니다. 따라서 `Counter` 객체를 생성할 때마다 `count` 값이 증가합니다. 2. <a href='https://sangseek.com/sangseeks/정적 메서드/ko'>정적 메서드</a>`static`으로 선언된 메서드는 클래스의 인스턴스를 생성하지 않고도 호출할 수 있습니다. 이는 유틸리티 메서드나 헬퍼 메서드에 유용합니다. 예를 들어, `Math` 클래스의 메서드들은 모두 `static`으로 선언되어 있어, `Math.sqrt(4)`와 같이 클래스 이름을 통해 직접 호출할 수 있습니다.```javaclass MathUtils { static int add(int a, int b) { return a + b; }}// <a href='https://sangseek.com/sangseeks/사용 예/ko'>사용 예</a>int sum = MathUtils.add(5, 10);``` 3. 정적 블록`static` 블록은 클래스가 로드될 때 한 번 실행되는 코드 블록입니다. 주로 정적 변수를 초기화하는 데 사용됩니다. 예를 들어:```javaclass Example { static int value; static { value = 10; // 클래스가 로드될 때 value를 초기화 }}```이렇게 하면 `Example` 클래스가 처음 사용될 때 `value`가 10으로 초기화됩니다. 4. 정적 내부 클래스자바에서는 정적 내부 클래스를 정의할 수 있습니다. 정적 내부 클래스는 외부 클래스의 인스턴스와는 독립적으로 존재할 수 있으며, 외부 클래스의 `static` 멤버에만 접근할 수 있습니다. 이는 내부 클래스가 외부 클래스의 인스턴스에 의존하지 않도록 할 때 유용합니다.```javaclass Outer { static int <a href='https://sangseek.com/sangseeks/oute/ko'>oute</a>rStaticVar = 5; static class Inner { void display() { System.out.println("Outer static variable: " + outerStaticVar); } }}``` 5. 메모리 관리`static` 멤버는 클래스가 메모리에 로드될 때 생성되며, 프로그램이 종료될 때까지 메모리에 유지됩니다. 이는 객체가 생성될 때마다 새로운 인스턴스 변수를 생성하는 것과는 대조적입니다. 따라서 `static` 멤버는 메모리 사용을 최적화하는 데 도움을 줄 수 있습니다. 6. Singleton 패턴`static` 키워드는 Singleton 패턴을 구현하는 데에도 사용됩니다. Singleton 패턴은 클래스의 인스턴스가 오직 하나만 존재하도록 보장하는 디자인 패턴입니다. `static` 변수를 통해 <a href='https://sangseek.com/sangseeks/유일한 인스턴스/ko'>유일한 인스턴스</a>를 저장하고, `static` 메서드를 통해 접근할 수 있습니다.```javaclass Singleton { private static Singleton instance; private Singleton() {} public static Singleton getInstance() { if (instance == null) { instance = new Singleton(); } return instance; }}``` 결론자바에서 `static` 키워드는 클래스와 관련된 멤버를 정의하고, 메모리 관리 및 객체 간의 데이터 공유를 가능하게 하는 중요한 역할을 합니다. 이를 통해 개발자는 효율적인 코드 작성과 더불어 다양한 디자인 패턴을 구현할 수 있습니다. `static` 키워드를 적절히 활용하면 코드의 가독성과 유지보수성을 높일 수 있으며, 프로그램의 성능을 최적화하는 데 기여할 수 있습니다.
이용안내
커뮤니티 이용안내
×
- 게시한 게시글로 발생하는 문제는 게시자에게 책임이 있습니다.
- 게시글이 타인/타업체의 저작권을 침해할 경우 모든 책임은 게시자에게 있습니다. 게시자가 모든 손해를 부담해야 합니다.
- 상식닷컴 운영자는 게시자와 상의하지 않고 게시글을 수정 또는 삭제할 수 있습니다.
- 상식닷컴 운영자는 깨끗한 커뮤니티 공간을 만드는 것이 1순위입니다.
수정하기
취소하기