잡다한 이야기

개발자 기술 면접 정리

kaleb 2023. 1. 25. 16:45
728x90

안녕하세요 미어캣입니다. 오늘은 개발자 취업 준비를 했을 때 제가 나름대로 정리한 기술면접 내용들을 정리하려고합니다.  

나중에 제가 또 쓸 수도..?


Java의 특징

  • 객체지향 프로그래밍 언어
  • 장점 : JVM위에서 동작하기 때문에 모든 운영체제에서 실행이 가능함
  • 단점 : JVM 위에서 동작하기 때문에 실행 속도가 느림

??? : java란 무엇인가요?

 

객체 지향 언어(OOP; object oriented programming)의 특징

  • 객체 : 클래스를 메모리에 실체화 시킨 인스턴스
  • 객체 지향 언어 : 객체 끼리의 관계를 맺고 다수의 객체가 함께 수행될 수 있게 하는 방식
  • 객체 지향 프로그래밍 : 모든 데이터를 객체로 취급하여, 객체의 기능을 사용하여 요청을 처리하는 방식
  • 특징 : 캡슐화, 추상화, 상속성, 다형성

 

Java에서 제공되는 원시타입의 종류

  • 정수형 : byte(1), short(2), int(4) long(8)
  • 실수형 : float(4), double(8)
  • 문자형 : char(2)
  • 논리형 : boolean(1)

 

클래스와 객체

  • 클래스 : 설계도 혹은 틀로 객체를 생성함
  • 객체 : 클래스를 기반으로 생성된 고유의 이름과 상태와 같은 것
  • 객체에 메모리가 할당되어 실제로 활용되는 실체를 인스턴스 라고 함

 

생성자(Constructor)

객체가 생성될 때 호출되는 메소드

 

 

오버라이딩과 오버로딩(국밥)

  • 오버라이딩 : 상위 클래스의 메소드를 하위 클래스에서 재정의 하는 방식
  • 오버로딩 : 매개 변수의 개수나 타입을 달리하여 같은 이름의 메소드를 여러 개 정의 하는 방식

 

예외처리방식

  • Try-catch-finally 방식 : try안에 객체의 자원을 전달하고 catch 를 통해서 예외 발생시 처리하는 방식을 전달 후 . wfinally를 통해 자원을 해제 시킵니다.
  • Try-with-resource : try-catch-finally의 문제접을 보완한 방식으로, 자원의 자동 해제기능이 있음

 

추상클래스와 인터페이스

추상클래스 : 클래스 내 추상 메소드가 하나 이상 포함되어있거나 abstract으로 정의된 경우

인터페이스 : 모든 메소드가 추상 메소드로만 이루어져 있는 것

공통점: 객체의 생성이 불가능함, 사용하기 위해서는 확장/구현을 통해서 해야함

차이점 :

  • 추상 클래스는 다중 상속이 불가능, 인터페이스는 다중 상속이 가능
  • 인터페이스의 경우 구현하는 모든 클래스에 특정한 메소드가 반드시 존재하도록 강제함이 있음

 

싱글톤 패턴

  • 단 하나의 인스턴스를 생성하여 사용하는 디자인 패턴
  • 예시 : 스프링의 빈등록 방식, 스프링 컨테이너는 모든 빈을 싱글톤으로 관리

 

가비지 컬렉션(Garbage Collection)

JVM의 메모리 관리 기법으로 필요없어진 메모리의 영역을 회수하여 메모리 누수를 관리해줍니다.

 

 

자바의 메모리 영역

  • 메소드(Method) : 전역변수와 static 변수를 저장, 프로그램의 시작부터 종료까지 메모리에 남아 있음(JVM이 동작하여 클래스가 로딩될 때 생성)
  • 스택(Stack) : 지역변수와 매개변수 데이터의 값이 저장, 메소드가 호출될 때 메모리에 할당되고 종료하면 해제됨(런타임시 할당)
  • 힙(Heap) : 생성되는 객체, 배열 등이 저장, 가비지 컬렉션에 의해 메모리가 관리(컴파일 시 할당)

 

접근제한자(사골)

  • public : 접근 제한이 없음(같은 프로젝트 내 어디서든 사용 가능)
  • protected: 해당 패키지 내, 다른 패키지에서 상속받아 자식 클래스에 접근 가능
  • default : 해당 패키지 내에서만 접근이 가능
  • private: 해당 클래스에서만 접근이 가능

??? : 제한 범위가 큰 순에서 작은 순으로 말해보세요

Static

  • Static 키워드를 사용한 변수나 메소드는 클래스가 메모리에 올라갈 때 자동으로 생성되어 객체의 생성 없이 바로 사용 가능
  • 모든 객체가 메모리를 공유해야하고 프로그램이 종료될 때 까지 메모리에 값이 유지된 채로 존재

 

컬렉션 프레임워크

  • List : 순서가 있는 데이터의 집합, 중복을 허용
  • Set : 순서가 없는 데이터의 집합, 중복을 허용하지 않음
  • Map : 키와 값이 한 쌍, 키를 기준으로 중복을 허용하지 않고 순서가 없음

??? : 각각의 특징을 말해보세요

제네릭

제네릭은 데이터의 타입을 하나로 지정하지 않고 사용할 때 마다 포괄적으로 지정

제네릭을 통해 에러를 사전에 방지할 수 있음

 

 

상속과 구현

상속 : 상위 객체의 특징을 하위 객체이 물려줌

구현 : 상위의 객체에서는 선언만하고 오버라이딩을 통해 하위 객체에서 정의하여 사용

 

프로세스와 스레드

  • 프로세스 : 컴퓨터에서 실행되고 있는 프로그램의 인스턴스
  • 스레드 : 프로세스 내에서 작업을 수행하는 최소의 단위

 

== 와 eqauls()의 차이

== : 연산자로서 주소 값을 비교

equals() : 메소드로 실제 값을 비교합니다.

 

 

Web Server와 WAS(Web Application Server)의 차이

  • Web Server : 웹 브라우저 클라이언트로 부터 HTTP 요청을 받아 정적인 컨텐츠(HTML, CSS 등)을 처리, Apache 등이 있다
  • WAS : Web Server + Container의 개념으로 JSP 등 다양한 동적인 컨텐츠를 처리, Tomcat 등이 있습니다.

 

세션과 쿠키

세션 : 세션은 서버에 저장되는 데이터입니다.(Session → S)

쿠키 : 쿠키는 클라이언트 로컬에 저장되는 데이터(Cookie → C)

 

Parameter와 Argument의 차이점

파라미터: 함수 혹은 메서드 정의에 사용되는 값

아규먼트: 함수 혹은 매서드가 호출될때 전달되는 실제 값

 

 

할 수 있습니다. 중꺽마

 


 

반응형

'잡다한 이야기' 카테고리의 다른 글

풍성한 한가위 되세요  (0) 2023.01.19