2022.09.05 면접 대기 때 풀었던 기술 문제들 중에 기억 나는 내용들을 정리하고 공부하기 위해 작성한다.
※ 같이 알면 좋은 내용들도 같이 포함해서 작성을 했다
PROCESS
실행 중인 하나의 프로그램을 프로세스(process)라고 한다. 하나의 프로그램이라도 실행시마다 개별 프로세스가 생성이 된다. 하나의 프로세스는 하나 이상의 스레드와 할당받은 자원(메모리 등)이 존재한다.
THREAD
프로세스 내에서 실제 작업을 수행하는 작업 단위이다. 모든 프로세스는 하나 이상의 스레드를 가지며 각각 독립적인 작업 단위를 가진다.
THREAD 장단점
장점
단점
※ 교착상태 : 다중프로그래밍 체제에서 하나 또는 그 이상의 포로세스가 수 행할 수 없는 특정시간을 기다리고 있는 상태
public class Main {
public static void main(String[] args) {
int sum = 0;
for(int i = 0; i <= 100; i++) {
sum = sum + i;
}
System.out.println(sum);
}
}
이와 같이 for문을 작성할 수 있다.
for(①초기화식; ②조건식; ③증감식) {
④실행문;
}
①초기화식이 제일 먼저 실행이 된다. 그다음 ②조건식을 평가하고 True일 경우 for문 안에 있는 ④실행문이 실행이 된다. ④실행문이 실행 완료되면 ③증감식을 실해하고 다시 ②조건식을 평가를 한다. 만약 조건이 false이면 for문은 종료된다.
클래스 내에 같은 이름의 메소드를 여러 개 선언하는 것이다.
오버로딩의 조건은 매개 변수의 타입, 개수, 순서 중 하나가 달라야 한다.
오버로딩 필요한 이유?
유사한 일을 수행하면서 인자만 다른 메소드들을 각기 다른 이름으로 주면 불편
ex) 문자용 키보드와 게임용 키보드를 따로 만들면 비효율적
java.exe로 JVM이 지가되면 JVM은 운영체제에서 할당받은 메모리 명역(Runtime Data Area)을 메소드(Method) 영역, 힙(Heap) 영역, 그리고 스택(Stack) 영역으로 구분해서 사용한다.
스택(Stack) 영역
==
10 == 10 // true
10 == '10' // true
true == 1 // true
true == '1' // true
true == 'true' // false
null == undefined // true
10 === 10 // true
10 === '10' // false
true === 1 // false
true === 'true' // false
null === undefined // false
NaN === NaN //false