본문 바로가기

카테고리 없음

221110 목요일 TIL

1. 오늘 한 것

  • 알고리즘 특강
    • 재귀 탈출 조건 = 터미널 컨디션
    • 공간복잡도는 변수의 개수보다 데이터의 크기가 더 중요하다
      • 공간복잡도보다는
        • 시간복잡도가 더 중요하다
        • 실제 인풋이 얼만큼 올지 예상하는게 더 중요
    • 어떤 자료구조를 선택할지는 4가지를 고려해야 한다
      • 1. 삽입시간 2. 삭제시간 3. 검색시간 4.정렬여부
      • 모든걸 만족하기는 힘들다. 상황에 맞는 '최선의 선택'이 중요
 

스택과 힙의 이해

포인터 변수 = 스택

brindle-pizza-5b5.notion.site

  • 메모리의 구성
    • Static, Stack, Heap 등으로 구분되고
      데이터 자료형에 따라서 해당 공간에 할당된다
    • Static area
      하나의 JAVA 파일은 크게 필드(field), 생성자(constructor), 메소드(method)로 구성된다
      필드에서 생성된 전역변수와 static이 붙은 정적변수는 Static 영역에 데이터가 저장된다
      Static 영역의 데이터는 프로그램의 시작부터 종료가 될 때까지 메모리에 남아있게 된다
      전역변수를 무분별하게 많이 사용하다 보면 메모리가 부족할 우려가 있어 필요한 변수만 사용할 필요가 있다
    • Stack area
      메소드 내에서 정의하는 기본 자료형에 해당되는 지역변수의 값이 저장되는 공간
      변수에 새로운 데이터가 할당되면 이전 데이터는 지워진다
      메소드가 종료되면 메모리에서 해제된다
      for문 내에서 정의한 지역변수는 for문이 종료되면 해제된다
      - 스택은 두 개의 레지스터에 의해 관리된다
      EBP 레지스터 : 스택의 바닥. 즉 메모리 주소가 가장 큰 값.
      ESP 레지스터 : 스택의 가장 윗부분. 즉 메모리 주소가 가장 작은 값. push 와  pop에 의해 변한다.
      빠르다, 따로 해제할 필요가 없다, 균일한 메모리 사용, 크기가 정해지면 변경이 어렵다
    • Heap area
      클래스 변수 = new 클래스()
      참조형 데이터 타입의 객체(인스턴스), 배열 등은 Heap area에 데이터가 저장된다
      실제 데이터가 저장된 Heap area의 참조값을 new 연산자를 통해 리턴받아 Stack area에 저장한다
      즉, 실제 데이터를 갖고 있는 Heap 영역의 참조 값을 Stack 영역의 객체가 갖고 있다
      가비지컬렉션 : 메모리 관리를 위해 JVM(자바 가상머신)에 의해 알아서 해제된다
      상대적으로 느리다, 가비지 컬렉터, 메모리 파편화, 크기가 정해져도 이후에 수정 가능
    • Data area : global과 static 변수가 저장됨. R전용 RW용 영역으로 구분됨.
    • BSS area : 전역 데이터 영역 초기화 되지 않은 static 변수가 저장되는 공간. RW용
 

[JAVA/자바] 메모리 구조(static, stack, heap)

이번 글은 자바(JAVA)를 사용하는 입장에서 알아야 할 메모리 구조 및 특징에 대해서 알아보려고 한다....

blog.naver.com

 

[DataStructure] 동적 배열 (Dynamic Array)

#동적 배열 (Dynamic Array) #1 동적 배열이란? #2 resize() #3 append() #4 재할당 * 개인적인 공부 내용을 기록한 글 이기에, 잘못된 내용이 있을 수 있습니다. #1 동적 배열이란? 동적 배열 (Dynamic Array) 는 가

novlog.tistory.com

  • 동적 배열
    • resize()를 통해 크기변경 가능
      • 원하는 사이즈만큼 새로 할당한 후 기존 원소들 복사
    • append()를 통해 원소 추가 가능
      • 원소개수 size가 배열공간의 크기 capacity에 도달하면 다시 resize() 한다
      • 원소개수에 비례하여 할당
    • 표준 라이브러리로 제공되므로 직접 구현할 일은 없지만, 동작 원리를 알고 사용할 것

2. 취침 전 목표

  • TIL 정리

3. 내일 할 것

  • 알고리즘 특강
  • 왕초보 강의 8강씩 수강
  • 진도표대로 완강

4. 느낀점

  • TIL 작성시 리스트 등 기능들과 단축키 사용을 하니 편하긴 한데...
    의도대로 보기좋게 되지는 않는다...

5. 메모

null