Skip to content

Commit

Permalink
1주차 한상윤 과제
Browse files Browse the repository at this point in the history
  • Loading branch information
0702Yoon committed Sep 24, 2023
1 parent 67e984f commit 939b91a
Showing 1 changed file with 2 additions and 1 deletion.
3 changes: 2 additions & 1 deletion week01/한상윤.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,8 @@

* static 키워드에 대해 설명해주세요.
자바에서 특정 멤버(메서드, 변수, 블록)을 클래스 수준의 멤버로 사용하기 위한 명령어이다. static 멤버는 클래스에 속하며 객체의 생성과는 독립적으로 사용된다.
클래스 수준의 멤버라는 것은 객체의 생성과는 독립적으로 존재할 수 있고 클래스 내부에 사용하는 메서드나 변수가 static 멤버라면 같은 클래스로 만들어진 객체는 그것을 공유된다는 것을 의미한다. 일반적으로 클래스 내부에서 그냥 선언된 변수와 메서드는 해당 클래스의 객체에 속하게 돼서 특정 객체를 생성해야만 접근이 가능하고 각각의 객체마다 독립적인 값을 가진다. 이렇게 static으로 선언이 되면 클래스 로딩 시점에 정적 영역에 생성이 된다. 위에서 힙과 스택이 나왔 었 는데, 추가적인 영역으로 모든 클래스, static 멤버들이 여기에 할당된다. static 영역은 JVM의 메모리 공간 중의 하나로서, 프로그램이 실행되는 동안 쭉 유지되는 데이터와 코드를 저장하는 공간이다. 그렇기에 static이면 객체로 생성하지 않아도 이미 static 영역에 할당이 되어있고 그로 인해 객체로 생성을 하지 안하고 바로 호출을 할 수 있는 것이다.추가적인 코드로 예시를 들면, Hi 클래스 안에 static String x = “hello“ 가 있을 때 그 클래스 객체를 2개 만들고 하나의 객체에서 x를 “bye“로 바꾸면 다른 객체의 x도 bye로 바뀐다.
클래스 수준의 멤버라는 것은 객체의 생성과는 독립적으로 존재할 수 있고 클래스 내부에 사용하는 메서드나 변수가 static 멤버라면 같은 클래스로 만들어진 객체는 그것을 공유된다는 것을 의미한다. 일반적으로 클래스 내부에서 그냥 선언된 변수와 메서드는 해당 클래스의 객체에 속하게 돼서 특정 객체를 생성해야만 접근이 가능하고 각각의 객체마다 독립적인 값을 가진다. 이렇게 static으로 선언이 되면 클래스 로딩 시점에 정적 영역에 생성이 된다. 위에서 힙과 스택이 나왔 었 는데, 추가적인 영역으로 모든 클래스, static 멤버들이 여기에 할당된다. static 영역은 JVM의 메모리 공간 중의 하나로서, 프로그램이 실행되는 동안 쭉 유지되는 데이터와 코드를 저장하는 공간이다. 그렇기에 static이면 객체로 생성하지 않아도 이미 static 영역에 할당이 되어있고 그로 인해 객체로 생성을 하지 안하고 바로 호출을 할 수 있는 것이다.추가적인 코드로 예시를 들면, Hi 클래스 안에 static String x = “hello“ 가 있을 때 그 클래스 객체를 2개 만들고 하나의 객체에서 x를 “bye“로 바꾸면 다른 객체의 x도 bye로 바뀐다.

![Alt text](image.png)

* final 키워드에 대해 설명해주세요.
Expand Down

1 comment on commit 939b91a

@0702Yoon
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

1주차 과제입니다! 한글파일로 작성하다가 md라는 것도 처음알고 fork개념도 처음해봐서 제대로 갔는 지 걱정됩니다..

Please sign in to comment.