[2022.09.05] 면접 질문

Max·2022년 9월 5일
0

Interview

목록 보기
1/1
post-thumbnail

2022.09.05 면접 대기 때 풀었던 기술 문제들 중에 기억 나는 내용들을 정리하고 공부하기 위해 작성한다.
※ 같이 알면 좋은 내용들도 같이 포함해서 작성을 했다

Thread 단점 설명

  • PROCESS

    • 실행 중인 하나의 프로그램을 프로세스(process)라고 한다. 하나의 프로그램이라도 실행시마다 개별 프로세스가 생성이 된다. 하나의 프로세스는 하나 이상의 스레드와 할당받은 자원(메모리 등)이 존재한다.


  • THREAD

    • 프로세스 내에서 실제 작업을 수행하는 작업 단위이다. 모든 프로세스는 하나 이상의 스레드를 가지며 각각 독립적인 작업 단위를 가진다.


  • THREAD 장단점

    • 장점

      • 빠른 프로세스 생성
      • 작은 메모리 사용
      • 쉬운 정보 공유
    • 단점

      • 교착상태에 빠질 수 있다

        ※ 교착상태 : 다중프로그래밍 체제에서 하나 또는 그 이상의 포로세스가 수 행할 수 없는 특정시간을 기다리고 있는 상태


for문의 형식과 흐름

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문은 종료된다.


오버로딩(Overloading)과 오버라이딩(Overriding) 설명

  • 오버로딩(Overloading)
    • 클래스 내에 같은 이름의 메소드를 여러 개 선언하는 것이다.

    • 오버로딩의 조건은 매개 변수의 타입, 개수, 순서 중 하나가 달라야 한다.

    • 오버로딩 필요한 이유?

      • 유사한 일을 수행하면서 인자만 다른 메소드들을 각기 다른 이름으로 주면 불편

      • ex) 문자용 키보드와 게임용 키보드를 따로 만들면 비효율적


  • 오버라이딩(Overriding)
    • 상속받은 서버 클래스에서 슈퍼 클래스의 메소드를 같은 이름, 같은 반환값, 같은 인자로 메소드 내의 로직들을 새롭게 정의 하는 것이다.
    • 같은 이름이지만 구현하는 클래스마다 다른 역할을 하는 메소드를 정의한다.

Java 메모리 영역을 설명

java.exe로 JVM이 지가되면 JVM은 운영체제에서 할당받은 메모리 명역(Runtime Data Area)을 메소드(Method) 영역, 힙(Heap) 영역, 그리고 스택(Stack) 영역으로 구분해서 사용한다.

  • 메소드(Method) 영역
    • 코드에서 사용되는 클래스(~.class)들을 클래스 로더로 읽어 클래스별로 런타임 상수풀(Runtime constant pool), 필드(field) 데이터, 메소드(method) 데이터, 메소드 코드, 생성자(Constructor) 코드 등을 분류해서 저장한다.
    • JVM이 지삭할 때 생성되고 모든 스레드가 공유하는 영역이다.

  • 힙(Heap) 영역
    • 객체와 배열이 생성된다.
    • 스택 영역의 변수나 다른 객체의 필드에서 참조한다.
    • 참조하는 변수나 필드가 없는 객체는 쓰레기 수집기(GC : Garbage Collector)가 힙 영역애서 자동으로 제거한다.

  • 스택(Stack) 영역

    • 각 스레드마다 하나씩 존재하며, 스레드가 시작될 때 할당된다.
    • 지역변수, 파라미터, 리턴 값, 연산에 사용되는 임시 값이 생성되는 영역이다.
    • Method정보, 메소드 호출 시 사용하는 지역변수 데이터 등을 저장한다.
    • 기본 타입 변수는 스택영역에 직접 값을 가진다.
    • 참조타입 변수는 힙 영역이나 메소드 영역의 객체 주소를 가진다.

    Javascript에서 '==' 와 '===' 차이점

  • ==

    • 연산자를 이용하여 서로 다른 유형의 두 변수의 값을 비교한다.
    • 두 피연산자의 값의 타입이 다를 경우 자동으로 일부 피연산자의 타입을 변환 후 값을 비교한다.
10 == 10 // true
10 == '10' // true
true == 1 // true
true == '1' // true
true == 'true' // false
null == undefined // true

  • ===
    • 엄격한 비교를 한다. 값과 자료형을 비교한다.
    • 타입이 다르면 false
10 === 10 // true
10 === '10' // false
true === 1 // false
true === 'true' // false
null === undefined // false
NaN === NaN //false
profile
co_der

0개의 댓글