Machine

    [Ubuntu 명령어] 2. cd

    cd : Change Directory 디렉토리를 이동하는 명령어이다. 처음 리눅스를 다루면 cd가 많이 헷갈리는데 친숙하지 않은 디렉토리 구조 때문에 그렇다. sy@sy:~/ *sy를 자신의 사용자 명으로 치환바꾸어 생각하자. 먼저 terminal을 키면 위와 같은 문자가 뜨는데 이 시작점은 User의 기본 디렉터리이다. 기본 디렉터리에서 ls를 이용해서 폴더와 파일을 출력해보면 과 같은 유저에 속한 폴더들이 있다. Desktop(바탕화면), Downloads(다운로드), Music(음악) 등. 디렉토리 이동 이 폴더 중 하나로 이동하려면 cd 명령어를 이용하면 된다. 의 명령어를 이용해, 이 중 Desktop 폴더로 이동해보자. sy@sy:~$ cd [이동할 디렉터리] 이동할 디렉토리를 치는 것만으로..

    [Ubuntu 명령어] 1. ls

    ls : List 디렉토리에 있는 폴더와 파일을 출력(List)한다.

    [Heap] JVM의 String과 String Pool(String Constant Pool) 알아보기 : String Pool은 어떻게 String을 최적화 하는가? - Kotlin 예제 포함

    목표 String이 Heap 메모리 상에서 어떻게 저장되는지 확인한다. 개요 JVM에서 변수를 저장하게 선언하면 해당 변수는 Heap Area에 저장된다(그림1 참조). String도 Heap Area에 저장되는 것은 마찬가지인데 String은 많이 쓰이는 변수인 만큼 조금 특이한 방식으로 저장된다. *이것에 익숙하지 않다면 먼저 JVM의 메모리 사용 방식을 보고 오자 String은 우리가 가장 많이 쓰는 클래스 중 하나이다. String을 효율적으로 사용하기 위해 JVM상에서 String을 다른 객체들과 차별되게 저장되도록 해놓았는데, 그것이 바로 Heap Area 상의 String Constant Pool이다. 예를 들어 다음과 같은 코드가 실행된다고 해보자 val stringA1 = "A" val ..

    [메모리] JVM의 메모리 사용 방식 : JVM의 Static Area와 Heap Area를 중심으로 Kotlin/JVM의 메모리 사용방식을 이해하기

    목표 각 Memory Area가 어떤 역할을 하는지 이해한다. JVM의 메모리 구조 JVM은 Runtime에 Data를 올려놓는 공간인 Runtime Data Area를 가지고 있다. 이 공간은 총 5가지로 나뉘는데, 뒤의 PC Register과 Native Method Stack 영역은 Low Level의 Operation을 하기 위한 메모리 공간 이므로 이 장에서는 앞의 세가지 'Method Area(Static Area)', 'Heap Area', 'Stack Area'만 다룬다. Method Area(Static Area) - 정적 영역 Heap Area - 힙 영역 Stack Area - 스택 영역 Method Area(Static Area) 개요 Method Area는 우리가 보통 정적(Sta..