분류 전체보기135 [OS] 프로세스와 스레드 프로세스(Process)란? 메모리에 적재되어 실행되고 있는 프로그램의 인스턴스 각 프로세스는 독립된 메모리 영역(Code, Data, Stack, Heap)을 할당받는다. 서로 다른 프로세스는 각각 개별적으로 실행되므로 서로의 데이터에 직접적으로 접근할 수 없다. 다른 프로세스의 자원에 접근하려면 IPC(InterProcess Communication)을 활용해야 한다. 프로세스는 1개 이상의 스레드를 가지고 있다. 프로세스 구조 Code: 프로그램 코드가 CPU가 해석 가능한 기계어 형태로 저장되어 있다. Data: 전역 변수, 클래스 변수, 상수 등이 저장되어 있다. Stack: 함수 호출 시 할당되는 공간으로 함수 종료 시 소멸된다. 함수 내의 내역 변수 또한 저장된다. Heap: 동적으로 할당되.. 2023. 8. 3. [Java] 추상 클래스와 인터페이스 비교 1. 추상 클래스(abstract class) 클래스를 설계도에 비유한다면, 추상클래스는 미완성 설계도 클래스가 미완성이라는 것은 멤버의 개수에 관계된 것이 아니라, 단지 미완성 메서드(추상 메서드)를 포함하고 있다는 의미 선언부만 작성하고 구현부는 작성하지 않은 채로 남겨 둔 것 추상 클래스는 추상 메서드를 포함하고 있다는 것을 제외하고는 일반클래스와 유사하다 추상 클래스에도 생성자가 있으며 멤버변수와 메서드도 가질 수 있다 new 연산자 사용 불가 1. 1. 추상 클래스의 사용 방법 클래스 선언부에 abstract 키워드 입력 abstract 키워드를 포함한 추상 메서드를 정의한다. 추상 클래스는 상속을 통해서 자손 클래스에 의해서 완성 2. 인터페이스(interface) 추상클래스가 미완성 설계도 .. 2023. 8. 2. [Java] 생성자 라는 이름이 불러온 오해 생성자란 생성자는 '인스턴스(객체) 초기화 메서드'이다. 그래서 클래스 내의 메서드의 구조와 유사하다. 다만, 아래의 차이가 있다. 생성자는 반환값이 없다. 그러면서도 메서드 선언부에 void를 사용하지 않는다. 주로 인스턴스 변수 초기화 작업에 사용된다. 생성자에 대한 오해 생성자는 보통 '인스턴스를 생성할 때 사용하는 것'이라고도 이르러지기에 '생성자로 인스턴스를 생성할 수 있구나'라고 생각해왔다. 하지만 이는 완벽히 맞는 말은 아니었다!! (두둥탁🥁) 서두에서 생성자는 반환값을 가지지 않는다고 했다. Person person = new Person(); 위와 같이 인스턴스를 생성하곤 하는데 반환값이 있어야 변수에 그것을 할당할 것이 아닌가?? 이게 어찌된 일..? 알고보니 생성자 앞에 달려있는 세 .. 2023. 7. 19. [오늘의 발견 / Java] String의 생성 방식에 따른 비교 결과 차이 String 생성 방식의 종류 String 타입의 생성 방식에는 두 가지가 있다. literal을 이용한 방식 new 연산자를 이용한 방식 String str1 = "YOUTH"; // literal을 이용한 방식 String str2 = "YOUTH"; // literal을 이용한 방식 String str3 = new String("YOUTH"); // new 연산자를 이용한 방식 System.out.println(str1 == str2); // true System.out.println(str1 == str3); // false String 타입은 참조형 변수로서 == 비교를 하면 주소값 비교(Call by Reference)를 한다. 주소값에 들어있는 값을 비교하기 위해서는 equals() 메서드를.. 2023. 7. 17. 이전 1 ··· 6 7 8 9 10 11 12 ··· 34 다음