본문 바로가기
반응형

메모리3

[Java] Process와 Thread의 차이 💡정의 프로세스: 프로세스는 독립적인 메모리 공간을 가지고 실행 중인 프로그램의 인스턴스를 나타냅니다. 각 프로세스는 운영 체제로부터 자체 메모리 및 자원(파일 핸들, 소켓 등)을 할당받아 실행됩니다. 프로세스는 서로 완전히 독립된 실행 환경을 가집니다. 스레드: 스레드는 프로세스 내에서 실행되는 작은 실행 단위로, 하나의 프로세스가 여러 스레드를 가질 수 있습니다. 스레드는 프로세스 내의 공유 메모리 공간을 사용하며, 스레드 간 통신이 더 쉽습니다. 💡메모리 및 자원 공유 프로세스: 각 프로세스는 독립적인 메모리 공간을 갖기 때문에 다른 프로세스와의 메모리 공유가 어려우며, 별도의 메커니즘(프로세스 간 통신, IPC)이 필요합니다. 스레드: 스레드는 같은 프로세스 내에서 실행되므로 프로세스 내의 메모리.. 2023. 10. 22.
[Java] Java의 GC(Garbage Collector)는 어떻게 동작할까 Java의 가비지 컬렉터(Garbage Collector, 이하 GC)는 메모리 관리를 자동화하여 개발자가 메모리 누수와 메모리 관리에 대한 걱정을 줄이는 역할을 합니다. GC는 더 이상 사용되지 않는 객체를 식별하고 해제하여 메모리를 회수합니다. Java의 GC는 다양한 알고리즘과 방식으로 동작할 수 있으며, 주요 구성 요소 및 작동 방식에 대해 설명하겠습니다. 💡객체 생성 Java 프로그램에서 객체가 생성되면 메모리 힙(heap) 영역에 저장됩니다. 이 힙 영역은 Java 프로그램의 모든 객체 인스턴스를 저장하는 곳입니다. 💡 객체 참조 객체는 변수나 다른 객체에 의해 참조됩니다. 객체가 더 이상 참조되지 않을 때 GC가 필요해집니다. 💡 Reachability(도달 가능성) GC는 도달 가능한(re.. 2023. 10. 16.
[Java] new String()과 ""(리터럴 방식)의 차이 new String() 및 ""(빈 문자열 리터럴)은 문자열을 생성하는 두 가지 다른 방법입니다. 이 두 방법 간에 중요한 차이점이 있습니다. 다음은 이 차이점을 자세히 설명합니다. 💡 메모리 할당 new String(): new String() 생성자를 사용하여 문자열을 만들면 새로운 문자열 객체가 힙(heap) 메모리에 항상 생성됩니다. 이것은 메모리를 더 많이 사용하며 문자열이 같은 내용을 가진 다른 문자열과 비교할 때 참조 비교(Reference Comparison)가 아닌 내용 비교(Content Comparison)를 수행해야 합니다. ""(빈 문자열 리터럴): 빈 문자열 리터럴(또는 문자열 리터럴)을 사용하면 문자열 풀(String Pool)에 있는 기존 문자열 객체를 재사용합니다. 따라서 .. 2023. 10. 14.
반응형