일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 고정소수점
- 클래스선언
- C++
- 메서드오버로딩
- 산술연산자
- 변수
- 코딩기초
- 조건문
- 프로그래밍
- 기초코딩
- 코딩
- 포인터
- 자바코드
- Java
- 반복문
- 제어문
- 자바
- 자바클래스
- C++상수
- 자바메서드오버로딩
- 부동소수점
- this참조변수
- 자바코딩
- 포인터연산자
- 비트연산자
- 코딩독학
- C++코딩
- 1차원배열
- 증감연산자
- 2차원배열
- Today
- Total
지식아일랜드
코딩 기초 21편 _ JAVA 코딩 메모리 구조(Memoty Structure)의 종류(Stack, Heap) 예제 코드 본문
코딩 기초 21편 _ JAVA 코딩 메모리 구조(Memoty Structure)의 종류(Stack, Heap) 예제 코드
모르는게 없는 지식인 2023. 3. 30. 22:39안녕하세요~
지식아일랜드의 모르는 게 없는 지식인입니다 ㅎ
오늘은 JAVA 코딩에서 메모리 구조를 이해하기 위한 코딩을 알려드리겠습니다.
차근차근 따라오시죠!
우선 Java는 객체 지향 언어로, 모든 것이 객체로 구성됩니다.
이에 따라 Java의 메모리 구조는 크게 Stack과 Heap으로 나눌 수 있습니다.
Stack은 메서드 호출 시 사용되는 메모리 영역으로, 지역 변수와 매개 변수가 저장됩니다.
이 영역은 메서드 호출이 완료되면 자동으로 메모리에서 해제됩니다.
Heap은 객체와 배열이 할당되는 메모리 영역으로,
생성된 객체와 배열은 Garbage Collector가 메모리에서 해제될 때까지 유지됩니다.
아래는 예제 코드와 함께 Stack과 Heap의 메모리 구조를 설명해 드리겠습니다.
public class MemoryStructureExample {
public static void main(String[] args) {
int x = 5; // x는 Stack에 저장됩니다.
Person person1 = new Person("John", 25); // person1은 Heat에 저장됩니다.
Person person2 = person1; // person2는 Heap에 저장된 person1 객체를 가리킵니다.
System.out.println(x);
System.out.println(person1.gerName());
System.out.println(person2.gerName());
person1.setName("Mike"); // Heap에 저장된 person1 객체의 이름을 변경합니다.
System.out.println(person1.getName());
System.out.println(person2.getName());
}
}
class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void getName(String name) {
this.name = name;
}
}
위 코드에서 x는 int 형으로 선언되어 Stack에 저장됩니다.
Person 객체인 person1은 new 연산자를 통해 Heap에 생성되고,
person2는 person1을 가리키는 참조 변수로 Heap에 저장됩니다.
System.out.println() 메서드를 호출하여 출력되는 값은
Stack에 저장된 x의 값과 Heap에 저장된 person1과 person2 객체의 이름입니다.
person1 객체의 이름을 "Mike"로 변경한 후 출력하면,
person1과 person2 모두 변경된 이름이 출력됩니다.
이는 person2가 person1을 가리키고 있기 때문입니다.
이렇게 Java의 메모리 구조를 이용하면 객체를 효율적으로 다룰 수 있습니다.
Stack과 Heap의 차이를 이해하고 적절하게 활용하는 것이 Java 프로그래밍의 기초입니다.
어떠셨나요?
Stack과 Heap의 차이에 대해 구분이 되시나요?
내용이 길고 어려워 보일 수 있어도 계속해서 반복하시면 개념이 습득되실 거예요
그럼 오늘도 파이팅 하세요 감사합니다!
'JAVA 기초' 카테고리의 다른 글
코딩 기초 23편 _ JAVA 자바 코딩 다차원 배열(multi-dimensional array)과 2차원 배열(two dimensional array) (0) | 2023.04.24 |
---|---|
코딩 기초 22편 _ JAVA 코딩 1차원 배열(One-dimensional Arrangement) 코드와 예제 (0) | 2023.04.01 |
코딩 기초 20편 _ Java 반복문(Iteration statements)과 continue 문 개념과 예제 (0) | 2023.03.27 |
코딩 기초 19편 _ JAVA 조건문(Conditional Statements)의 종류와 예제 코드 (0) | 2023.03.25 |
코딩 기초 18편 _ JAVA 비트 연산자(Bitwise Operator) 설명과 예시 (0) | 2023.03.24 |