[IT] 신입 개발자 기술 면접 질문 정리 3 - Java

2024. 6. 27. 23:57·IT Notes
728x90
728x90

* 취준생 시절 면접 때 직접 들었던 질문 위주로 정리했고, 예상 질문으로 제가 준비했던 것들도 있습니다.

 

- 인성 면접 : https://young0105.tistory.com/347
- 기술 면접 1 : https://young0105.tistory.com/348
- 기술 면접 2 : https://young0105.tistory.com/349
- 기술 면접 4 : https://young0105.tistory.com/351

 


● 메서드 오버라이딩 vs 메서드 오버로딩

  - 메서드 오버라이딩 : 부모 클래스의 메서드를 자식 클래스가 재정의해서 사용하는 것

  - 메서드 오버로딩 : 같은 이름의 메서드가 서로 다른 매개변수를 갖도록 여러 번 선언해서 사용하는 것

 

● 다형성

  - 하나의 타입에 여러 객체를 대입할 수 있게 해서 다양한 형태로 동작하게 하는 것

  - 자료형을 다양한 형태로 바라봄으로써, 같은 코드에서 다양한 실행 결과가 나타날 수 있게 함

  - https://young0105.tistory.com/43

 

● 다형성 활용 경험

 

● 객체 지향 프로그래밍

  - 객체와 객체 간의 관계를 형성하거나 상호작용시킴으로써 프로그램을 구현하는 방법론

 

● SOLID 원칙

  - https://young0105.tistory.com/274

  // 특정 원칙의 예시를 들어 보라는 경우도 있었음

 

● 캡슐화

  - 객체의 데이터를 외부에서 직접 접근할 수 없도록 숨기고, 함수를 통해서만 접근 가능하게 함

 

● 추상화

  - 클래스를 정의할 때, 불필요한 부분을 생략하고 객체의 속성 중 중요한 것들에만 중점을 두어 개략화함

 

● 변수

  - 값을 저장할 수 있는 메모리 공간

 

● 자료형

  - https://young0105.tistory.com/7

  // 각 자료형이 몇 byte인지 묻는 경우도 있었음

 

● final 변수 vs static 변수

  - final : 변하지 않는 값을 저장하는 '상수'를 선언할 때 사용하는 키워드

  - static : 해당 클래스를 기반으로 만들어진 여러 객체들이 공유하는 하나의 변수가 필요할 때 사용하는 키워드

     (https://young0105.tistory.com/40)

 

● 클래스 vs 객체

  - 클래스 : 객체를 정의하는 설계도

  - 객체 : 클래스를 기반으로 실제 메모리에 생성된 구체적인 대상

  - https://young0105.tistory.com/13

 

● 상속

  - 부모 클래스의 멤버변수/메서드를 자식 클래스가 물려 받을 수 있게 하는 것

  - 부모 클래스의 기능을 유지하면서 새로운 기능을 추가하는 방식으로 기능을 확장할 수 있음

  - https://young0105.tistory.com/42

 

● 상속 == 확장인가?

 

● 인터페이스

  - 기능을 명시적으로 선언하는 설계도이자, 강제성이 있는 약속

  - 해당 인터페이스를 구현하는 클래스가 어떤 메서드를 반드시 구현해야 하는지를 지시함

  - https://young0105.tistory.com/65

 

● 추상 클래스

  - https://young0105.tistory.com/46

  // 인터페이스와 추상 클래스를 비교해서 설명할 수 있어야 함

 

● 컬렉션 프레임워크 비교

  - List : 순서가 있는 데이터들을 저장하는 것

  - Set : 순서가 없는 데이터들을 저장하는 것

  - Map : key와 value의 쌍으로 이뤄진 데이터들을 저장하는 것

  - https://young0105.tistory.com/96

 

● 힙 메모리 vs 스택 메모리

  - https://young0105.tistory.com/27

 

● int 타입과 Integer 타입의 차이를 힙 메모리 관점에서 설명하기

 

● JVM

  - 자바 가상 머신의 약자

  - 컴파일러에 의해 변환된 .class 파일을 운영체제에 특화된 코드로 변환하여 실행하는 역할을 하는 가상의 실행 환경

  - 장점 : Java 코드는 어떤 플랫폼에서든 실행 가능함 (이식성)

  - 단점

    · 이식성을 위해 그러한 단계를 거쳐야 하기 때문에 다른 언어에 비해 실행 속도가 느림

    · 메모리 이슈

 

● 제네릭 프로그래밍

  - 다양한 자료형이 적용될 수 있는 클래스를 만드는 것

  - 변수의 이름과 기능이 동일하면서, 자료형만 달라지는 변수들을 사용할 때 고려할 수 있음

 

● Call by Value vs Call by Reference

  - Call by Value

     : 값을 할당할 때, 값 자체를 넘겨주는 방식

  - Call by Reference

      : 값이 담긴 변수의 주솟값을 넘겨주는 방식

      → 기존 변수의 값이 변경되면, 주솟값을 넘겨받은 변수의 값도 변경됨

 

● 깊은 복사 vs 얕은 복사

  - 깊은 복사 : 객체의 주솟값을 복사

  - 얕은 복사 : 객체의 실제 값을 복사

 

● 싱글톤 패턴

  - 프로그램 내에서 해당 클래스의 객체가 단 하나만 생성되도록 하는 디자인 패턴

  - https://young0105.tistory.com/186

 

● 프로토타입 패턴

  - 원본 객체를 새로운 객체에 복사하고, 필요에 따라 수정해서 사용하는 디자인 패턴

 

● 어댑터 패턴

  - 호환되지 않는 클래스들을 함께 이용할 수 있도록 중간에서 맞춰주는 역할을 하는 인터페이스를 생성해서 사용하는 디자인 패턴

  - https://young0105.tistory.com/166

 

● 빌더 패턴

  - 객체를 생성하는 클래스와 객체를 표현하는 클래스를 분리하는 디자인 패턴

  - 멤버변수가 많은 객체를 다룰 때, 빌더 패턴을 사용해서 가독성을 높이고 실수를 방지할 수 있음

  - https://young0105.tistory.com/159

 

● 배열 vs 리스트

  - 배열 : 선언 시에 크기 지정

     → 정해진 크기의 메모리를 먼저 할당받아 사용함

    · index를 이용할 수 있기 때문에, 리스트에 비해 검색 속도가 빠름

    · 특정 요소가 삭제되면 빈 공간이 생기게 됨 (메모리 낭비)

  - 리스트 : 선언 시에 크기 지정 X

     → 요소를 유연하게 관리할 때 사용

 

● 가비지 컬렉션

  - https://young0105.tistory.com/275

 

● 웹 컨테이너 vs 웹 서버 vs WAS

  - 웹 컨테이너

    ·  JSP와 서블릿이 실행될 수 있는 환경을 제공하는 컴포넌트

    · 서블릿을 찾아서 실행하고, 서브릸으로부터 결과를 받아 클라이언트에게 전달함

  - 웹 서버

    · 클라이언트에서 전송된 HTTP 메시지를 다루는 서버

    · 정적 리소스 요청만 처리 가능

  - WAS (웹 애플리케이션 서버)

    · 웹 서버가 처리하지 못하는 동적 리소스 요청을 처리해서 동적인 컨텐츠를 제공하는 서버

  - https://young0105.tistory.com/153

 

● 자료 구조 - 스택과 큐의 차이

  - 스택 : (후입선출) 가장 나중에 입력된 자료가 가장 먼저 출력되는 자료 구조

  - 큐 : (선입선출) 가장 먼저 입력된 자료가 가장 먼저 출력되는 자료 구조

  - https://young0105.tistory.com/95

 

● 스택 오버플로우

  - 스택형 자료 구조에서 오버플로우가 발생하는 것

  - 오버플로우

    : 저장 용량을 초과하는 양의 데이터가 입력되었을 때 발생하는 현상

    · 기존 자료 중 일부가 지워지는 문제를 일으킬 수 있음

 

● 프로세스 vs 쓰레드

  - 프로세스 : 메모리를 할당받아 실행되고 있는 프로그램

    · 하나의 프로세스는 여러 개의 쓰레드를 가질 수 있음

  - 쓰레드 : 하나의 프로세스 안에서 실제 작업을 수행하는 작업 단위

  - https://young0105.tistory.com/90

 

● 접근 제어 지시자

  - public : 같은 프로젝트 내 어디에서든지 접근 가능

  - protected : 같은 패키지 내부거나, 다른 패키지라도 상속 관계라면 접근 가능

  - default : 같은 패키지 내부에서만 접근 가능

  - private : 같은 클래스 내부에서만 접근 가능

 

● 업 캐스팅과 다운 캐스팅

  - 업 캐스팅

     : 다형성을 통해 자식 클래스를 부모 클래스 타입으로도 바라볼 수 있다는 것을 활용해서, 부모 클래스 타입으로 변수를 선언하고, 자식 클래스의 생성자로 인스턴스를 생성하는 것

  - 다운 캐스팅

     : 부모 클래스의 참조를 자식 클래스의 참조로 변환하는 것

  - https://young0105.tistory.com/43

 

● 생성자, getter, setter 메서드 손코딩

public class 클래스명 {

    // 기본 생성자
    public 클래스명() {}

    // 사용자 정의 생성자
    public 클래스명(자료형 매개변수1, 자료형 매개변수2, ...) {
        this.멤버변수1 = 매개변수1;
        this.멤버변수2 = 매개변수2;
        ...
    }

    // getter
    public 반환자료형 get변수() {
        return this.멤버변수;
    }

    // setter
    public void set변수(자료형 매개변수) {
        this.멤버변수 = 매개변수;
    }	

}

 

● JRE (Java Runtime Environment)

  - 자바 애플리케이션을 실행하는 데 필요한 소프트웨어 구성요소들

 

● JDK (Java Development Kit)

  - 자바 프로그램을 개발, 컴파일, 실행하기 위한 환경 및 도구

 

● enum 타입

320x100
반응형
저작자표시 비영리 변경금지 (새창열림)

'IT Notes' 카테고리의 다른 글

[IT] 신입 개발자 기술 면접 질문 정리 4 - Spring Boot 등  (0) 2024.06.30
[IT] 신입 개발자 기술 면접 질문 정리 2 - HTML, CSS, JavaScript  (0) 2024.06.22
[IT] 신입 개발자 기술 면접 질문 정리 1 - SQL  (0) 2024.06.22
[IT] 신입 개발자 인성 면접 질문 정리  (0) 2024.06.22
[Zapier(재피어)] 구글 스프레드시트에 신규 데이터 입력 시 자동 메일 발송  (0) 2024.04.05
'IT Notes' 카테고리의 다른 글
  • [IT] 신입 개발자 기술 면접 질문 정리 4 - Spring Boot 등
  • [IT] 신입 개발자 기술 면접 질문 정리 2 - HTML, CSS, JavaScript
  • [IT] 신입 개발자 기술 면접 질문 정리 1 - SQL
  • [IT] 신입 개발자 인성 면접 질문 정리
스응
스응
    반응형
    250x250
  • 스응
    이서영의 개발 블로그
    스응
  • 전체
    오늘
    어제
  • 글쓰기 관리
    • 분류 전체보기 (385)
      • Java (134)
        • Base (54)
        • Spring Boot (37)
        • JSP (16)
        • Swing (GUI) (20)
        • Design Pattern (7)
      • C# (13)
      • PHP (18)
      • SQL (27)
      • Vue.js (9)
      • Tailwind CSS (4)
      • TypeScript (7)
      • HTML & CSS (27)
      • JavaScript (26)
      • jQuery (10)
      • Android (3)
      • - - - - - - - - - - - - - - (0)
      • Hotkeys (5)
      • CS (30)
      • IT Notes (13)
      • Error Notes (17)
      • Team Project (24)
        • Airlines Web Project (12)
        • University Web Project (6)
        • Strikers 1945 GUI Project (6)
      • My Project (18)
        • Library Web Project (8)
        • Pet Shopping Mall GUI Project (10)
      • etc. (0)
  • 블로그 메뉴

    • Home
    • Write
  • 링크

    • 깃허브
  • 공지사항

  • 인기 글

  • 태그

    typeScript
    php
    Android
    jQuery
    티스토리챌린지
    git
    HTML
    개발일지
    Hotkeys
    SEO
    Swing
    면접
    CSS
    SQL
    Wordpress
    SpringBoot
    jsp
    Codeigniter
    http
    vuejs
    js
    java
    errorNote
    zapier
    tailwindcss
    SWAGGER
    cs
    오블완
    C#
  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.0
스응
[IT] 신입 개발자 기술 면접 질문 정리 3 - Java
상단으로

티스토리툴바