Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 |
Tags
- 프록시서버
- jwt원리
- 세션장점
- jwt란?
- session이 뭔가요?
- 배열과 메모리
- 자바 코드 가이드
- jwt토큰원리
- 신입개발자 프로젝트
- jwt토큰관리
- 구글 자바 스타일
- Google Java Style Guide
- GPT프로젝트
- 백엔드 서버
- 메모리에서 배열
- 프로그래밍 배열
- session이뭔가요?
- Google Java Code Style Guide
- 우아한테크코스 Google Java Style Guid
- 포워드프록시
- 신입개발자
- 구글 자바 코드 스타일
- jwt토큰구조
- session이란?
- 토큰구조
- 세션장단점
- session단점
- session장점
- 세션단점
- ReverseProxy
Archives
- Today
- Total
dev_dbdb1114
[JAVA] static이 뭐지 본문
간단히 말하면, static이 붙어있으면, 해당 클래스로 만드는 모든 객체가 공유한다는 것이다.
static이 붙은 필드는 클래스가 만들어지면서 바로 생성되는 것이다.
static이 붙지 않은 필드는 객체가 생성될때 만들어진다.
한 클래스에서 만들어진 여러 객체가 접근하는 static필드는 같은 것일까 다른것일까?
한 번 생각해보자, 앞에서 했던 말과 같은 말이다.
더보기
같은 것이다.
그렇다면 static이 붙지 않은 필드들은? 다른 것일까?
응 다른 것이다.
이 얘기들을 이해하려면 객체의 개념을 잘 이해해야하는데
흔히들 말하는 클래스는 붕어빵틀이고, 객체는 붕어빵이라고 한다.
붕어빵들이 비슷하게 생겼지만, 어떤 것들은 팥이 꼬리쪽에 있고, 어떤 것들은 몸뚱아리에 팥이 들은 것처럼
완전히 똑같지 않다. 이런 꼬리쪽에 팥이 있다는 사실 혹은 몸뚱아리에 팥이 있다는 사실
이러한 것들이 static이 붙지 않은 필드요소인 것이다.
굳이 코드로 표현하자면
class FishBread {
static name = "fishBread";
String WhereIsPot;
}
class Bread {
FishBread FB1 = new FishBread();
FishBread FB2 = new FishBread();
FB1.WhereIsPot = "atTail";
FB2.WhereIsPot = "atHead";
FB1.name = "BungaBBang";
System.out.println( FB1.WhereIsPot );
System.out.println( FB2.WhereIsPot );
System.out.println( FB1.name ); //BungaBBang출력
System.out.println( FB2.name); //BungaBBang출력
}
즉, 객체를 생성할 때 비로소 클래스에 담긴 것들이 의미가 있어진다. 그 전까지는 틀에 불과하다.
클래스에 담긴 모든 것들이 관련되어있는 서로 연결되어 있는 것들에 static을 붙이는 것이다.
static이 붙지 않은 비정적인(이 단어가 어려우면 생략해도 된다.) 필드나 메소드는 객체를 생성할 때 비로소 존재한다고 할 수 있는 것이다.
아래 코드를 마지막으로 확인해보자.
class Car {
static int num = 0;
int nonStaticNum;
}
class CarCenter {
Car pride = new Car();
Car avante = new Car();
pride.num = 3; //static 변수 다른 수로 초기화
pride.nonStaticNum = 3;
if(pride.num == avante.num) { // true
printlm("이봐 static 필드는 공유된다니깐")
}
if(pride.nonStaticNum == avante.nonStaticNum ){// false
println("이게 찍힐 수가 없지~")
}
}'프로그래밍 > JAVA' 카테고리의 다른 글
| [JAVA] 가비지컬렉터 - Heap 영역 (0) | 2022.12.08 |
|---|---|
| [JAVA] inner클래스 (정적 / 비정적) (0) | 2022.12.02 |
| [JAVA] 생성자에 관한 이야기1 (0) | 2022.11.28 |
| [JAVA] 액세스 지정자 (0) | 2022.11.28 |
| [JAVA] 오버로딩 (0) | 2022.11.28 |
Comments