클래스 == 데이터 + 함수
변수: 하나의 데이터를 저장할 수 있는 공간
배열: 같은 종류의 여러 데이터를 하나로 저장할 수 있는 공간
구조체: 서로 관련된 여러 데이터(종류 관계X)를 하나로 저장할 수 있는 공간 (다른 타입도 묶을 수 있음)
클래스: 데이터와 함수의 결합(구조체 + 함수)
선언 위치에 따른 변수의 종류
변수의 종류 | 선언 위치 | 생성 시기 |
클래스 변수 (class variable) |
클래스 영역 | *클래스가 메모리에 올라갈 때 |
인스턴스 변수 (instance variable) |
★인스턴스가 생성되었을 때 | |
지역 변수 (local variable) |
클래스 영역 이외의 영역 (메서드, 생성자, 초기화블럭 내부) |
변수 선언문이 실행되었을 때 |
*클래스가 필요할 때 메모리에 올라간다.
CPU / SSD or HDD : CPU는 SSD와 속도차이가 커서 class파일을 직접 가져오지 못한다. 그래서 중간에 둔게 RAM(메모리)이다. 우리가 파일을 읽으려면 RAM(메모리)에 올려야 하는데 이걸 로딩(올림)이라고 한다(SSD → RAM). 로딩 된 후에 CPU가 파일을 읽고 쓸 수 있다. 즉 CPU는 모든 작업을 RAM하고만 한다. 작업이 끝나면 RAM이 디스크(SSD or HDD)에 세이브(저장) 한다. CPU는 모든 작업을 RAM과만 하기 떄문에 우리는 모든 작업을 하려면 파일이 메모리에 올라와야한다. 이것을 클래스가 메모리에 올라간다 라고 한다.
cv: 아무때나 사용가능
iv: 객체 생성을 해야 사용가능
lv: 변수 선언문이 실행됐을때 사용
인스턴스 변수: 개별 속성
클래스 변수: 공통 속성 (static 붙이기)
'Programming > 자바(Java)' 카테고리의 다른 글
6-26 static 메서드와 인스턴스 메서드 (1) | 2024.09.29 |
---|---|
6-22 호출 스택(call stack) (0) | 2024.09.26 |
6. 객체지향 언어 (1) | 2024.09.26 |
5. 배열 (0) | 2024.09.26 |
4. 조건문과 반복문 (0) | 2024.09.26 |