[CS 면접 지식 -Java] 동일성과 동등성, equals()와 ==의 차이
·
면접 준비/Java
동일성과 동등성은 객체를 비교할 때 중요한 방식이다.자바에서는 두 개의 객체 또는 값을 비교할때 equals()또는==를 통해 구분할 수 있다. 1. equals와 ==의 차이equals()는 객체의 내용을 비교하는 반면, ==는 객체의 참조주소를 비교한다. 따라서 두 객체의 내용이 같더라도 서로 다른 객체라면 equals()는 true를 반환할 수 있지만 ==는 false를 반환한다. 2. 동등성(Equality) 동등성은 논리적으로 객체의 내용이 같은지 비교한다. 이때 사용하는 equals()메서드는 클래스에서 오버라이드하여 어떤 값을 비교할 것인지 설정할 수 있다.이때 중요한건 객체의 equals뿐만 아니라 hashCode도 오버라이드를 해줘야 한다는 점이다.그 이유는 해시값을 사용하는 자료 구조는..
[CS 면접 질문 / OS]프로세스와 스레드
·
면접 준비/OS
프로세스와 스레드프로세스에는 사용자가 보는 공간에서 사용자와 상호작용하며 실행되는 포그라운드 프로세스 가 있고, 사용자가 눈에는 보이지 않지만 뒤에서 조용히 수행되는 백그라운드 프로세스가 있다.백그라운드 프로세스 중에는 데몬이라는 프로세스가 존재하는데 우리가 흔히 아는 서비스를 말한다.이 두가지 프로세스 유형은 동일한 구조를 갖고 있다.이 부분은 자바와 JVM을 공부하면서 들어봤을 만한 내용일 것이다. 코드 영역실행 가능한 명령어가 저장되는 공간텍스트 영역이라고도 부른다.CPU가 읽고 실행할 명령어가 담겨 있기 때문에 쓰기가 금지되어 있는 읽기 전용 공간데이터 영역프로그램이 실행되는 동안 유지할 데이터가 저장되는 공간데이터 영역에 저장되는 데이터는 정적 변수 또는 전역 변수가 대표적이다.BSS 영역BSS..
[CS지식/ OS] 커널과 시스템 콜
·
면접 준비/OS
시스템도 일종의 프로그램이다.운영체제도 하나의 프로그램이기 때문에 프로그램이 실행되기 위해서는 반드시 메모리에 적재되어야 한다.운영체제는 매우 특별한 프로그램이므로 메모리 내의 커널 영역이라는 공간에 따로 적재되어 실행된다.반대로 사용자 응용 프로그램은 사용자 영역이라는 공간에 적재된다.운영체제의 기능을 사용하기 위해서는 커널 영역에 적제된 운영체제 코드를 실행해야 한다.시스템 콜운영체제의 서비스를 제공받기 위한 수단(인터페이스)호출 가능한 함수의 형태웹 브라우저, 게임과 같은 응용 프로그램들은 CPU, 메모리에 직접 접근할 수 없다.특정 자원에 접근하거나 조작하는 운영체제 코드를 실행해야 한다.운영체제가 자신의 코드를 실행한 응용 프로그램의 자원 접근 및 조작을 대신한다.말로는 어려우니 이미지를 통해 ..