변수 ( nt, double, boolean, String)
static (main이 실행되기 전에 로드된다.) - 공간 분리 (class 별로 분리되어 있음)
static은 정적이고, 한 개만 메모리에 로드된다.
메서드(method) (함수) - 4가지 유형 (기본, 인수가 1개, 인수가 여러 개 있는, 리턴이 있는) - void (리턴이 없는)
1. heap
프로그램이 실행되고 있는 중간에 데이터를 불러올 때 그 데이터가 만들어지는 영역이다.
package jvm;
// 번호, 이름, 나이
class Student {
int no;
String name;
int age;
void show() { // 함수 호출 (부르지 않으면 나오지 않음)
System.out.println(no);
System.out.println(name);
System.out.println(age);
System.out.println();
}
}
public class Heap01 {
public static void main(String[] args) {
Student s1 = new Student(); // new가 되면, static이 붙지않는 모든(변수, 메서드)가 heap에 로드 된다.
s1.no = 1;
s1.name = "홍길동";
s1.age = 20;
s1.show();
Student s2 = new Student(); // new 했기 때문에 s1과 같을 수 없음, 다른 공간임
s2.no = 2;
s2.name = "임꺽정";
s2.age = 24;
s2.show();
Student s3 = new Student();
s3.no = 3;
s3.name = "이춘향";
s3.age = 30;
s3.show();
}
}

2. stack (자료구조)
First In Last Out = FILO
한 쪽 끝에서 데이터가 들어오면 나중에 들어온 데이터부터 빠져나가는 형식이다.
즉, 먼저 들어온 데이터는 마지막에 나가는 것

package jvm;
public class Stack01 {
static void m1() {
int a = 1;
m2(); // 7번라인 - 이 순간엔 변수 a와 b가 떠 있다.
}
static void m2() {
int b = 1;
}
public static void main(String[] args) {
System.out.println("10번 라인");
m1();
System.out.println("12번 라인");
}
}
StackOverFlow Error
Stack 영역의 메모리가 지정된 범위를 넘어갈 때 발생한다.
- 오류는 위에서 터져서 밑으로 내려 오는 것이다.
package jvm;
public class Stack02 {
static void m1() {
int a = 1;
m1(); // 재귀 함수
}
public static void main(String[] args) {
m1();
}
}

3. pueue
- First In First Out = FIFO
- 한쪽 끝에서 데이터가 들어오면 반대 쪽 끝에서 데이터가 나가는 형식이다.
- 즉, 선입선출

package jvm;
public class Queue01 {
static void m1() {
int n1 = 1;
System.out.println("🚒");
System.out.println("🏍️️");
System.out.println("🚲");
m2(); // 16번 라인으로 점프(이동)
System.out.println("🚅");
System.out.println("✈️");
}
static void m2() {
int n2 = 2;
System.out.println("🍕");
System.out.println("🍔");
System.out.println("🌭");
System.out.println("🥚");
System.out.println("🧀");
}
public static void main(String[] args) {
System.out.println("main 시작");
m1(); // 호출 하면 내가 생각한 순서: 소방차->오토바이->자전거->피자->햄버거->핫도그->계란->치즈->기차->비행기
System.out.println("main 종료");
}
}

4. 참조 자료형

Share article