참조 타입

Java

목록 보기
5/26
post-thumbnail

메모리 영역 구조

★ JVM 메소드 메모리 구조 등 모르겠으면 이 강의 다시 듣기

  • 메소드 영역
    - JVM을 시작할 때 생성
    • 로딩된 클래스 바이트 코드 내용을 분석 후 저장
    • 모든 스레드가 공유
    • ✔ 메소드 영역에는 클래스 코드들이 올라간다!! 알아야 함
  • 힙 영역
    - JVM을 시작할 때 생성
    • ✔ 객체/배열 저장
    • 사용되지 않는 객체는 GC가 자동 제거
  • JVM 스택
    - 스레드별로 생성
    - 메소드를 호출할 때 마다 Frame을 스택에 추가(push)
    - 메소드가 종료되면 Frame을 제거(pop)
    - ✔ 변수들이 생성된다
    ✔ 변수는 스택 영역에 생성되고 객체는 힙 영역에 생성된다!

    훠우 메모리 사용 영역 개 어렵다
  • 배열저장 방법 (배열은 그 값을 저장하는게 아니라 그 번지들을 참조한다)
  • 객체 저장 방법 = 힙에 저장

참조변수의 ==, != 연산

  • 기본타입 : 변수의 값이 같은지 조사
  • 참조타입(배열, 열거, 클래스, 인터페이스 경우) : 동일한 객체를 참조하는지를 조사

Null과 NullPointerException

  • nummpointerException은 null인 객체를 참조하려고 할 때 발생

String 타입

  • 문자열을 저장하는 클래스 타입
  • 문자열 리터럴이 동일하다면 String 객체를 공유 (번지가 같음)
  • But!! new 연산자를 사용해 String 객체를 새성할 경우 서로 다른 번지를 리턴
String A= "김희주"
String B= "김희주"
A == B (O)
String A = new String ("김희주");
String B = new String ("김희주");
A == B (X)
  • 그래서 문자열 객체의 내용이 같은지를 비교하려면 .equals() 메소드 이용

0개의 댓글