[패스트캠퍼스 수강 후기] {코딩테스트인강} 100% 환급 챌린지 45회차 미션

2020. 12. 2. 22:16IT공부/자료구조&알고리즘 연습

기술 예상 질문

[ Programming ]

1.      프로그램이란 ?

컴퓨터가 사람 일을 할 수 있게 해주는 것

컴퓨터에 처리되는 작업의 순서를 논리적으로 명령어로 작성하는 것

2.     객체 지향 프로그래밍 언어 특징?

캡슐화

데이터와 데이터를 처리하는 함수를 하나로 묶는 것

캡슐화된 객체들은 재상용이 용이

정보 은닉

캡슐화에서 가장 중요한 개념

다른 객체에게 자신의 정보를 숨기고 자신의 연산만을 통해 접근 허용

추상화 = 모델화

불필요한 부분을 생략하고 객체의 속성 중 가장 중요한 것에만 중점을 두어 개략화

데이터의 공통된 성질을 추출해 슈퍼 클래스를 선정

상속성

이미 정의된 상위 클래스의 모든 속성과 연산을 하위 클래스가 물려받는 것

하위 클래스는 상위 클래스의 모든 속성과 연산을 자신의 클래스 내에서 다시 정의하지 않고서도 즉시 사용 가능

3.     객체지향 언어 장점

코드의 재사용이 높아 새로운 코드를 작성할 떄 기존의 코드를 이용해 쉽게 작성 가능

코드의 관리가 용이해 코드간의 관계를 이용해 적은 노력으로 쉽게 코드 변경 가능

제어자와 메서드를 이용해 데이터를 보호하고 올바른 값을 유지하도록 하며 코드의 중복을 제거해 코드의 불일치로 인한 오동작 방지

 

 

4.     자바의 데이터 타입인 Primitive Type & Reference Type

Primitive Type

변수에 값 자체를 저장해

Boolean, byte, char, short, int, float, long, double 8가지

Reference Type

메모리 상에 객체가 있는 위치를 저장

클래스 타입, 인터페이스 타입, 배열 타입, 열거타입

5.     배열과 컬렉션의 차이점

배열은 단 하나의 자료형만 저장 가능

고정된 크기

컬렉션은 복수의 자료형 저장 가능

가변적 크기

6.     다형성

하나의 객체를 여러가지 타입으로 선언할 수 있다

= 하나의 객체를 다양한 시선(타입) 으로 바라볼 수 있다

다양한 타입으로 객체를 바라보게 된면 호출할 수 있는 메서드 역시 타입에 따라 달라져

ex) Mouse m = new WheelMouse ( );

-      실제 객체가 WheelMouse이지만 컴파일러는 Mouse 타입의 메소드가 정상적으로 호출되고 있는지에만 관심을 가져

여러 가지 데이터를 다룰 수 있는 특성

조상 클래스의 인스턴스를 이용해 자손 타입의 클래스를 다뤄

메서드 오버로딩을 통해 동일 이름의 메서드를 이용해 다양한 형태 파라미터 다뤄

7.     Multi Thread

1개의 응용프로그램이 스레드로 불리는 처리 단위를 복수로 생성해 복수의 처리를 병행

 

 

 

스레드를 1개 이상 여러 개 만들어서 돌린다

컴퓨터의 CPU 자원을 활용해 각각의 스레드가 동시에 업무를 수행한다

각각의 스레드는 개별 실행하는 프로그램이지만 서로 생성한 클래스를 공유해 사용할 수 있다는 점이 별도의 프로그램을 돌리는 것과 차이가 있습니다.

8.     Java에서 멀티트레드를 구현하는 방법

Thread 클래스를 이용한 멀티스레드

Ruunable 인터페이스 상속

다중 상속이 된다

 

 

 

 

9.     Java 컬렉션의 대표 프레임워크  

자바에서 배열을 사용하다 보면 크기가 고정적이라서 크기를 넘으면 데이터를 저장 불가

데이터를 삭제하면 해당 인덱스의 데이터는 비어있어 메모리가 낭비됩니다

따라서 이러한 문제점을 해결하기 위해 널리 알려져 있는 자료구조를 바탕으로 객체나 데이터들을 효율적으로 관리할 수 있는 자료구조들이 컬렉션 프레임워크

List

순서가 있는 데이터 집합 = 데이터 중복 허용

구현 클래스 – ArrayList , LinkedList, Stack, Vector

Set

순서를 유지하지 않는 데이터의 집합

데이터의 중복을 허용하지 않는다

구현클래스 – HashSet, TreeSet

Map

키와 값의 쌍으로 이루어진 데이터의 집합

순서는 유지

 

10.  컬렉션에서 제네릭이 추가된 이유는??

컬렉션은 여러 개의 데이터 타입 요소값이 저장되다 보니 원하는 자료형 타입 요소값을 추출하기 어렵다

따라서 지정한 자료형 타입 한가지만 저장하기 위해서 나온 것이 제네릭

 

11.  접근제어자의 종류와 특성은?

private – 같은 클래스 내에서만 접근 가능

default – 같은 패키지 내에서만 접근 가능

protected – 같은 패키지 내에서 그리고 다른 패키지의 자손 클래스에서 접근가능

public -  접근 제한 없다

접근 허용 범위 public > protected > default > private

 

 

 

12.  try / catch

try – 예외를 감지하는 곳

catch – try에서 감지한 예외를 처리하는 부분

public void A ( )  {

                       try{

                       System.out.println(10/0) ;

                       System.out.println(“”);

                       }

                       catch (Exception e) { catch(어떤 예외?)  -Exception은 모든 예외

                                  System.out.println(“예외 처리” );

                       }

            }

여기서 예외가 발생한 시점인 10/ 0에서 예외가 발생해 바로 catch 구문으로 넘어가 예외처리를 하므로 이라는 글자가 출력되지 않고 예외처리출력

catch Exception을 매개변수로 사용

Exception은 모든 예외를 나타내는 것

하지만 각각의 예외마다 처리하는 방식이 다를 수 있으므로 예상되는 예외를 매개변수에 넣어서 각각 알맞게 처리해줘야 한다

finallytry / catch 구문을 수행하고 반드시 수행되는 구문

public void A( ) {

            try {

                       System.out.println (“1”);

                       System.out.prinln( 10/ 0);

                       System.out.println(“2”);

           

강의에 대해 정확하게 알고 싶다면 

https://bit.ly/2FgOONG