반응형
스터디를 진행하다 보니 기초지식이 너무 부족하다는 생각이 들었습니다.
그래서 조금씩 스스로 정리를 해보고자 합니다.
part1. 그래서 new 연산자는 무엇인가!?
- new 연산자 : 클래스 타입의 인스턴스(객체)를 생성해주는 역할을 담당.
- new 연산자를 통해 메모리(Heap영역)에 데이터를 저장할 공간을 할당받고 그 공간의
참조값(reference value / 해시 코드)을 객체에게 반환하여 주고 이어서 생성자를 호출하게 된다.
음? 무슨 말이지? 조금 더 풀어보자.
new 연산자로 생성된 객체는 똑같은 값을 가지고 있는 객체가 있어도 서로 다른 메모리를 할당하기
때문에 서로 다른 객체로 분류된다.
public class Main {
public static void main(String[] args) {
String str = new String("string"); // string 문자열 값을 가지고 있는 String 객체 생성
}
}
new 연산자를 사용해서 string이라는 문자열 값을 담고 있는 String 객체를 생성했다.
Stack -> Heap
String str -> "string"
변수는 Stack 영역에 할당. new String으로 생성된 문자열 값이 Heap 영역의 메모리 공간을 할당받아
str이라는 변수가 그 메모리 주소를 가리키고 있다. -> 다른 말로 참조라고 함.
new 연산자는 객체를 생성할 때 사용하고 Heap이라는 메모리 영역에 각각의 새로운 메모리 공간을
할당해 주는 역할을 한다.
new 연산자로 생성한 객체들의 메모리 주소가 다르게 나오는 것도 이 때문이다.
반응형
'programming > JAVA' 카테고리의 다른 글
비전공자를 위한 이해할 수 있는 IT지식 - 책을 읽으며 정리 중 (0) | 2022.03.19 |
---|---|
변수, 변수의 용도 등 - 업데이트 중 (0) | 2022.03.18 |
[JAVA] static (0) | 2022.03.17 |
[JAVA] 변수, 코드, 키워드, 메인, 메인메서드 (0) | 2022.03.02 |
[JAVA] JAVA의 특징 (0) | 2021.07.23 |