일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- Spring
- 자바
- 스프링 핵심원리
- JavaScript
- 이펙티브 자바
- 엘라스틱서치
- Sort
- Effective Java 3
- 스프링핵심원리
- 클린아키텍처
- 김영한
- 이펙티브자바
- 알고리즘
- 오블완
- 알고리즘정렬
- 자바스크립트
- 스프링부트
- kubernetes
- 스프링
- 티스토리챌린지
- 코딩테스트
- ElasticSearch
- 카카오 면접
- 카카오
- Effective Java
- k8s
- 예제로 배우는 스프링 입문
- 이차전지관련주
- java
- effectivejava
- Today
- Total
Kim-Baek 개발자 이야기
자바 기본 (12) - 자바의 메모리 영역, 호출 스택 본문
예전에 자바를 처음 공부하던 때, 네이버 블로그에 정리한 내용을 이제 티스토리로 옮기고자 한다
◎ 자바의 메모리 영역
※ class loading : 하드에 있는 자바파일을 cpu 가 빠르게 처리하기 위해 Main Memory 에 올리는 것(JVM이 처리)
1. Heap (힙) 영역 - instance 가 저장되는 영역 - instance 변수
2. execution stack (실행스택) 영역 - 실행 중인 메소드의 지역변수들이 저장되는 영역
3. 메소드 (class) 영역 - class 변수(class 코드)들이 저장되는 영역
public class Worker { <- main 함수에서 workMethod(20)을 부른 상태
public void workMethod(int param){
int var = param + 20;
boolean bVar = var > 25? true : false;
Person per = new Person();
Person per2 = new Person();
per.setAge(20);
System.out.println(per.getAge());
}
}
class Person{
private String name;
private int age;
public int getAge(){
return age;
}
public void setAge(int age){
this.age = age;
}
}
-> age 같은 경우 코드는 하나인데 실행되는게 두개가 될 수 있다. 각 객체에 따른 구분을 하기 위해 무조건 처음에 this 를 생성하게 된다(이 메소드를 가진 객체의 주소!)
- 끝나면 stack 영역은 삭제된다.
◎ 객체배열
Person [ ] p = new Person [ 3 ];
p [ 0 ] = new Person( );
p [ 1 ] = new Person( ); p 의 타입 -> Person[ ] (배열!)
p [ 2 ] = new Person( ); p[ n ] 의 타입 -> Person
= Person [ ] p = {new Person( ), new Person( ), new Person ("김영수", 30) };
※ 배열도 객체 -> index 가 instance 변수라 생각! default 초기화 O
※ 객체의 default 는 null 이다.
int [ ] i = { 10, 20, 30 } -> 코드의 위치에 따라 heap, stack 둘 중 하나에 위치
※ "김영수"를 찍는다면 -> p[2].name;
-> p[n].instance 멤버
※ 이클립스의 기능
새로만들기 -> file : 일반 텍스트 파일을 만드는것
class 만들기 단축아이콘 왼쪽 -> 패키지 만들기
'개발 > java basic' 카테고리의 다른 글
자바 기본 (14) - static, 싱글톤 (0) | 2020.10.05 |
---|---|
자바 기본 (13) - 가변인자, 패키지, import (0) | 2020.10.04 |
자바 기본 (11) - 생성자, 접근제한자, VO (0) | 2020.10.02 |
자바 기본 (10) - 오버로딩, 생성자 (0) | 2020.10.01 |
자바 기본 (9) - 객체와 클래스 (0) | 2020.09.30 |