전체 글846 GC GC란? 가바지 컬렉션은 자바의 메모리 관리 방법 중 하나로 JVM의 Heap 영역에서 동적으로 할당했던 메모리 중 필요 없게 된 메모리 객체를 모아 주기적으로 제거하는 프로세스 입니다. C/C++ 언어에서는 GC가 없어 직접 메모리 할당과 해제를 해주어야 했지만, Java에서는 GC가 대신 메모리 관리를 해주기 때문에, 개발자 입장에서 메모리 누수 문제에 대해 관리하지 않고, 개발에만 집중할 수 있습니다. STW(Stop-The-World) GC는 메모리가 언제 해제되는지 정확하게 알 수 없어 제어하기 힘들며, GC가 동작하는 동안에도 다른 동작을 멈추기 때문에 오버헤드가 발생되는 문제점이 있습니다. 이를 Stop-The-World 라 합니다. GC를 수행하기 위해 JVM이 프로그램 실행을 멈추는 현상.. 2023. 8. 12. JVM Java 플랫폼 종속이지 않게 설계한 이유와 장단점 C/C++ 등 컴파일러가 기계어 코드로 변환할 때 프로그램이 실행할 대상 컴퓨터의 CPU와 운영체제 종속적인 코드로 변환됩니다. 그러면 다른 플랫폼에서는 다시 컴파일 하여 플랫폼에 맞도록 코드를 수정해야 합니다. 이를 플랫폼 종속성이라 합니다. 하지만 Java는 플랫폼 종속성을 피하고 “Write Once, Run Anywhere”라는 철학을 지향하여 설계되었습니다. Java 코드를 한번 작성하면, 어떤 환경의 OS에서라도 JVM만 설치되어 있으면 동일한 실행 환경을 제공하며 동일한 실행 결과를 기대할 수 있습니다. 장점으로는 특정 플랫폼에 종속되지 않고 애플리케이션 배포가 가능하고, 코드를 한 번만 작성하면 다양한 플랫폼에서 동일한 실행 결과를 얻을 .. 2023. 8. 11. 백준 8980 8980번: 택배 문제 아래 그림과 같이 직선 도로상에 왼쪽부터 오른쪽으로 1번부터 차례대로 번호가 붙여진 마을들이 있다. 마을에 있는 물건을 배송하기 위한 트럭 한 대가 있고, 트럭이 있는 본부는 1번 마을 왼쪽에 있다. 이 트럭은 본부에서 출발하여 1번 마을부터 마지막 마을까지 오른쪽으로 가면서 마을에 있는 물건을 배송한다. 각 마을은 배송할 물건들을 박스에 넣어 보내며, 본부에서는 박스를 보내는 마을번호, 박스를 받는 마을번호와 보낼 박스의 개수를 알고 있다. 박스들은 모두 크기가 같다. 트럭에 최대로 실을 수 있는 박스의 개수, 즉 트럭의 용량이 있다. 이 트럭 한대를 이용하여 다음의 조건을 모두 만족하면서 최대한 많은 박스들을 배송하려고 한다. 조건 1: 박스를 트럭에 실으면, 이 박스는 받는 .. 2023. 8. 11. OS 스케줄러 스케줄러 역할이 뭔가요? 스케줄러는 컴퓨터 시스템에서 프로세스들의 실행을 관리하고, 리소스 할당 및 우선순위 결정을 조정하는 역할을 수행합니다. 모든 프로세스는 CPU를 필요로 하는데, 프로세스들에게 공정하고 합리적으로 CPU 자원을 배분하는 것을 스케줄링 이라 합니다. 프로세스 마다 우선순위를 기준으로 먼저 처리할 프로세스를 결정하여 효율적으로 처리합니다. 우선순위를 부여하는 기준이 뭔가요? 프로세스 종류마다 입출력장치를 이용하는 시간과 CPU를 이용하는 시간의 양에는 차이가 있습니다. 입출력 집중 프로세스는 입출력 작업이 많은 프로세스이고, CPU 집중 프로세스는 CPU 작업이 많은 프로세스 입니다. 입출력 집중 프로세스는 실행 상태보다 입출력을 위한 대기 상태에 더 많이 머무르고, CPU 집중 프로.. 2023. 8. 9. CPU CPU가 뭔가요? CPU는 컴퓨터 시스템에서 핵심적인 역할을 담당하는 부품으로, 프로그램을 실행하거나, 데이터를 처리하는 역할을 수행합니다. CPU의 구성요소를 설명해주세요 CPU는 3가지로 구성됩니다. 연산 장치 제어 장치 레지스터 위 3개로 구성되어 있으며, 구성장치들은 내부 버스로 연결되어 있습니다. 연산 장치는 산술연산과 논리연산을 수행합니다. ALU는 연산을 처리하고 결과를 레지스터에 저장합니다. 제어장치는 명령어 해석 및 실행의 조정을 담당하는 부분으로, 명령어의 흐름을 관리하고 다른 하드웨어 구성 요소와 제어 신호를 보내거나 받아 상호작용 합니다. 레지스터는 고속 기억 장치로, CPU 내의 데이터를 일시적으로 저장하거나 조작하는데 사용합니다. CPU의 동작과정을 설명해주세요 처리해야할 데이터.. 2023. 8. 9. 2023.08.08 TIL Java String 클래스 String 클래스는 final로 선언되어 있기 때문에 상속이 불가능하다. Object 를 상속받고 있고, Serializable, Comparable, CharSequence를 구현한다. Serializable 인터페이스는 구현해야 하는 메서드가 하나도 없는 인터페이스이다. 이 인터페이스를 구현하면, 해당 객체를 파일로 작성하거나 다른 서버에 전송 가능한 상태가 된다. Comparable 인터페이스는 compareTo() 라는 메서드가 있다. 이 메서드는 매개 변수로 넘어가는 객체와 현재 객체가 같은지를 비교하는데 사용한다. 이 메서드의 리턴 타입은 int이다. 즉 객체의 순서를 처리할 때 용이하게 사요된다. CharSequence 인터페이스는 해당 클래스가 문자열을 다루기.. 2023. 8. 9. 이전 1 ··· 16 17 18 19 20 21 22 ··· 141 다음