본문 바로가기

끄적끄적 ( 비공개 )

포큐 c++ 정리및 질문 리스트

 

Java 언어의 기본 문법

  • Package 시스템을 사용하는 이유와 주의할점
  • 프로그램 시작시 명령어를 입력해보세요
  • 배포(jar)시 명령어를 입력해보세요 (manifest 파일 포함 빌드)
  • Manifest 파일에 필수로 들어가야할 것은?
  • 기본으로 import 되는 패키지는?
  • Java는 크로스 플랫폼인가? (최소 두가지 관점에서 예/아니요 설명)
  • 부호 없는 자료형 문제점
  • Java에서 유일하게 부호가 없는 자료형은?
  • 문자열은 몇 비트? 그 이유는?
  • “A” + “B” 혹은 문자열중 일부를 바꾸게 될 경우 내부적으로 어떻게 작동할까?
  • Package 시스템의 한계는? (3가지)
  • 모듈 시스템의 개념과 장점(4가지)
  • module-info.java에 정의되는 내용은? (2가지)

개체지향 프로그래밍(OOP)의 필요성

  • 데이터를 관리하는 방법의 발전 순서는? (3단계)
    데이터 -> ? -> ?
  • 배열 혹은 기본 자료형으로의 한계
  • 구조체의 한계

         - 구조체는 기본 지정자가  public 이다. 함수도 가질 수 잇다. 컴퓨터적 측면에서는 클래스와 동일하다. C언어와 호환성을 위해 남겨놓은 구조체를 쓰기보다는 기본 지정자가 private인 class를 사용하자.

  • OOP는 사람은 세상을 물체의 집합이라고 인지한다고 하는데 물체(object)의 특성은? (2가지)

         - 움직임이 있다. 속성이 있다.

  • C에서 데이터와 함수를 묶는 꼼수는?

          - struct 를 사용한다.

개체지향 프로그래밍

  • OOP는 매우 주관적이다. 주관성이 강한 분야에서 토론할때 피해야할 사람의 특징 5가지는?

OOP의 4대 특성

  • 4대 특성을 말하고 각각 특성에 대해서 설명하시오.

클래스와 개체

  • 클래스를 설명해보세요

참조형과 포인터

  • Java에서 Stack 메모리에 쌓이는?
  • Heal 메모리에 만들어지는 것은?

         - JAVA 는  Stack 에 개체를 생성 할 수 없다. 

         - C++ 은   Obj* o = new Obj(); //힙에 개체생성 // 연속적인 메모리를 직접 찾아야함

                          delete o;                 // 실행할 때 직접 삭제해야함 

 

                          Obj  o ;                   // 스택에 개체생성 

                                                         // 스택이 삭제되지 않고 단지 스택 포인터만 함수가 끝나면 내려간다.

                                                         // 컴파일때 이미 개체의 크기를 알게된다.

                                                         // 스택포인터 움직임을 위한 크기 측정이 런타임에 필요없으니 더 빠름

생성자

  • 선조건 후조건을 들어서 생성자를 제대로 사용하는 법을 설명하시오

              - 멤버변수 는 Obj(): mA(a) {  mB = b; }

접근 제어자(access modifier)

  • 접근 제어자를 사용해야 하는 이유는?
  • 패키지 접근 제어자가 유용한 경우 2가지는?

getter/setter 메서드

  • 함수를 통한 데이터 접근의 객관적인 장점 3가지
  • setter을 남발하게 될 경우 생기는 문제는?

캡슐화와 데이터 추상화

  • 캡슐화를 두문장으로 정리해보세요
  • 추상화를 한문장으로 정리해보세요
  • 추상화의 단점 2가지는?

유연성과 재사용성

  • 유연성이 좋은 코드가 최고일까? (3가지 관점에서 설명해보세요!)

정적(static) 멤버 변수 및 메서드

  • static을 사용했을 때 좋은 경우는?
  • java에서 개체를 생성하지 못하게 막는 방법과 다른 언어에서 제대로된 방법은?

싱글턴

  • 싱글턴 패턴이란?
  • 싱글턴은 하고 static이 못하는 것은?
  • 싱글턴의 생성 순서를 보장하는 방법 올바른 방법은?
  • 싱글턴 생성시 인자가 필요하다면? 어떻게 변형하는 방법은?

내포(nested) 클래스

  • 내포 클래스의 용도는?
  • 정적 내포 클래스와 비정적 내포 클래스의 차이점은?
  • 다음과 같은 비정적 내포 클래스(Reader)를 생성하려면? (코드로 작성) 
  • 다음 코드를 읽고 문제점을 찾으시오! 

상속

  • OOP에서 상속이란? (한줄로 요약)
  • 상속에서 부모와 자식이 있을 때 어느 개체부터 초기화를 할까요?
  • 부모 생성자를 호출하는 방법은?

RTTI(run time type identification) 기능

  • RTTI 기능이 무엇인가요?
  • RTTI이 가능한 이유는 무엇인가요?
  • instanceof연산자는 무엇이고 사용할때 주의할점은?
  • RTTI 기능의 단점

Object 클래스

  • Object 클래스에 대해서 설명

 

함수안에서 힙 생성 하면 안되는 이유

  • 함수안에서 힙생성 new 한후에 return 해주는 것은 메모리 누수를 유발한다.
  • Factory .create()  패턴을 이용해서  사용해주자.  ( create 라는 이름이  delete 를 사용해야 한다는 의무를 상기 시켜 주기 때문이다. )

다중 상속

  • Java에는 다중 상속이 존재할까요?
  • 다중 상속의 위험성은?
  • 다중 상속이 발생하는 이유는?
  • Java에서 다중상속의 해결 방법은? (2가지)

(+a) OOP 또는 상속이 어려운 이유 (주의할점)

  • 사람이 상속이 어려운 이유는?
  • 상속을 이해하는 두가지 관점?

재사용성의 중요성

  • 프로그래밍에서의 의의 3가지와 각각의 중의할 점은?
  • 모델링 실력을 높이는 방법은?

상속 vs 컴포지션

  • 둘중 선택시 4가지 기준은?
  • 상속이 유리한 경우는?
  • 컴포지션이 유리한 경우는?

깊은 상속의 문제는?

  • has-a와 is-a의 차이는?

다형성이란? (한줄설명)

  • 오버라이딩이란?
  • 다형성의 장점

이른, 늦은 바인딩

  • 이른 바인딩이란?
  • 늦은 바인딩이란?
  • Java의 기본 동작은?
  • Java에서 이른 바인딩 하는 방법은?

Object class

  • toString()는?
  • equals()는? 주의할점은?
  • hashcode()는? 사용되는 곳은?

추상 메서드/클래스

  • 추상 메소드가 필요한 이유는?
  • 추상 클래스가 필요한 이유는?
  • 구체 클래스와의 차이점은?

인터페이스

  • 인터페이스를 다른 말로는?
  • 인터페이스의 접근 제어자는?
  • 클래스는 다중상속이 안되고 인터페이스는 되는 이유는?
  • 하지만 다중 인터페이스라도 생길 수 있는 문제는?
  • 인터페이스의 핵심은?

어노테이션

  • Java 어노테이션이란?

Object.clone()

  • 올바른 사용 방법은?

의존성이란?

  • 의존성에 대한 오해와 진실은?

결합도

  • 결합도란?
  • 결합도가 높다는 판단 기준은?
  • 결합도를 낮추는 방법 2가지는?

구현 vs 인터페이스

  • 구현 vs 인터페이스를 적절하게 사용하는 판단 기준은? (4가지)
  • 디커플링의 단점은? 3가지
  • 실용적인 인터페이스 사용 판단 기준은?

디자인 패턴

  • 디자인 패턴 학습지 주의 사항은?
  • 팩토리 메서드는? (장점은?)
  • 빌더 패턴는? (장점은?)
  • 플루언트 인터페이스란?
  • 빌더 패턴이 잘 못 사용된 예 그리고 해결 방법은?
  • 래퍼 어뎁터 패턴은? (사용 이유는?)
  • 프록시 패턴은? )(장점 단점은? (3가지 경우를 이야기!))
  • 프록시 패턴 문제점 그리고 해결 방안?
  • 책임 연쇄?
  • 옵저버, 구독 발행?
  • 옵저버 패턴의 메모리 누수가 발생 위험은?

예외

  • catch 블록 작성할때 주의 사항은?
  • checked와 unchecked의 차이는?
  • 예외의 단점은?
  • 예외를 절대 XXX용으로 사용하면 안된다! XXX는?
  • 오류상황을 처리 방법 4가지는?
  • 상황별 예외 처리 방법은?
    • 예측 + 수정 쉬운
    • 예측 + 수정 어려운
    • 예측 못함

SOLID 정신? (뜻과 비판)

  • SRP 단일 책임
  • OCP 개방 -폐쇄
  • LSP 리스코프 치환
  • ISP 인터페이스 분리
  • DIP 의존 역전

'끄적끄적 ( 비공개 )' 카테고리의 다른 글

안드로이드 5일차  (0) 2022.12.02
day3정리  (0) 2022.11.02
기술면접 질문 정리  (0) 2022.05.12
취업전 해보고 싶은것  (0) 2020.09.24
스프링 프로젝트를 하면서 느끼는 점들  (0) 2020.07.01