윤준영, 더불어 성장하는 개발자    카테고리    태그

2주차 강의 복습

기본 • 참조 자료형

  • 기본 자료형 : 실제 값을 저장하며, 모든 값 타입은 메모리 스택에 저장됨
  • 참조 자료형 : 주소를 저장하고 이를 참조해서 값을 가져옴

  • 코드 영역 : 실행 할 프로그램의 코드가 있는 공간
  • 데이터 영역 : 프로그램의 데이터를 저장할 공간 (전역, static 변수는 이곳에 저장)
    • 전역변수와 static 변수는 이곳에 저장됨
  • 힙 영역 : 사용자에 의해 할당 및 해제되는 메모리 영역으로 모든 객체는 힙 영역에 저장
    • 힙 영역에 있는 오브젝트들을 가리키는 포인터 변수는 스택 영역에 저장
    • 스택 영역과 달리 객체의 호출이 끝나더라도 삭제하지 않음
    • 삭제되지 않은 객체들은 가비지 컬렉터에 의해 정리됨
  • 스택 영역 : 함수 호출 시 생성, 호출 종료 시 삭제됨
    • 기본 자료형은 스택 영역에 값을 저장함
    • 지역변수는 이곳에 저장됨

문자열

1
String a = "123";
  • 문자열 리터럴 방법으로 생성하면 상수 풀에 문자열이 저장됨
  • 같은 문자를 할당하면 동일한 주소값을 가짐
    1
    
    String b = new String("abc");
    
  • 인스턴스 생성 방식으로 생성하면 인스턴스가 힙 메모리에 저장됨
  • 문자열 리터럴 방법과는 달리 문자열이 같더라도 다른 참조 값을 가짐

    문자열의 여러가지 메서드

    1
    2
    3
    4
    
    String example = "1234567";
    System.out.println(example.equals("123")); // 거짓
    System.out.println(example.charAt(1)); // 2
    System.out.println(example.substring(1, 4)); // 234
    

배열

  • 배열은 참조 변수에 속하므로 스택 영역에 저장
  • 스택 영역에 저장된 주소값은 힙 영역에 저장된 실제 값을 참조함

== 연산자와 equals()

  • == 연산자는 두 문자열이 메모리 상의 동일한 객체인지 비교함
  • equals()는 문자열이 같은지 비교함

ArrayList

  • 객체 배열을 구현한 클래스로 배열의 길이가 가변적인 특징을 갖음
  • 데이터 사이에 빈 공간을 허용하지 않음
  • ‘ArrayList<타입> 객체명 = new ArrayList<>()’ 으로 선언
    • 제네릭스 : 자료형을 미리 명시해줌으로써 형 변환을 하게 해줌

Wrapper 클래스

  • Wrapper 클래스는 기본 자료형을 객체로 다루기 위해 사용하는 클래스
  • 기본타입을 객체화하는 것을 박싱, 객체를 기본타입화 하는 것을 언박싱이라 함

static 변수

  • static 변수는 클래스에 고정된 멤버변수로 객체를 생성할 필요 없이 바로 접근이 가능함

Call By Value, Call By Reference

Call By Value

  • 메서드 호출 시 인자 값이 복사본으로 전달됨
  • 메서드 내에서 인자 값을 변경해도 호출된 측의 변수에 영향을 미치지 않음

Call By Reference

  • 객체의 주소값이 인자 값으로 전달됨
  • 메서드의 인자값이 변경되면 호출된 측의 변수에도 영향을 미침

wavetimer 프로젝트 회고

3주차 강의 복습

Comments powered by Disqus.

바로가기