ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 기술 면접 책정리(스레드, 객체지향)
    @ 16. 1 ~ 17. 1/면접관련 2016. 12. 15. 14:35

    대기 중인 스레드가 여전히 활성 상태긴 하지만, 실제로는 아무 일도 하지 않는 것을 바쁜 대기라고 한다.

    스레드에서 두 번째 스레드가 끝날 떄까지 대기하는것 외에는 아무 일도 하지 않음에도 불구하고 프로세서에 서는

    여전히 이 스레드를 실행시키기 때문에 바쁜 대기라고 부르는것이다.


    바쁜대기를 사용하게 되면 두 번째 스레드에서 진짜로 일을 처리하는 데 쓸 수 있을 소중한 프로세서 사이클을 뺏어가게 된다.



    클래스란 속성과 행동을 가진 무언가를 추상적으로 정의한 것이다.

    객체는 다른 객체 인스턴스와 다른 별도의 상태를 가지고 있는 어떤 클래스의 특정 인스턴스를 뜻한다.


    캡슐화 : 구현과 관련된 자세한 내용을 숨기는 것.


    객체지향 : 추상화, 캡슐화, 다형성, 상속성


    상속 : 어떤 클래스에서 더 특화된 버전의 클래스를 위한 행동을 제공할 수 있게 해 준다.

    다형성 : 한 행동을 여러 방법으로 구현하고 상황에 따라 적당한 구현을 선택해서 쓸 수 있도록 해주는 기능을 제공한다.


    객체지향에서의 인터페이스와 추상 클래스의 차이점

    인터페이스 : 클래스와는 별도로 일련의 연관된 메소드를 선언

    인터페이스는 데이터 멤버 및 메소드 정의가 들어있지 않은 추상 클래스하고 거의 똑같다.


    추상클래스 : 메소드를 선언하기는 하지만 모든 메소드를 정의하지는 않는 불완전하게 정의된 클래스이다.

    그 자체가 클래스이고, 데이터 멤버도 들어갈 수 있고 다른 클래스의 서브 클래스로 만들 수도 있다.

    그리고 인스턴스를 만들 수 없고..그 클래스를 상속하는 구상 서브 클래스의 인스턴스를 생성해서 써야한다.


    **결론

    일반적으로 추상클래스는 그 것을 베이스 클래스로 상속해서 더 구체적인 클래스를 만들어 쓰는 경우에 좋다.

    서로 관련이 없는 클래스에서 개념적으로 연관된 기능을 작동 시킬 수 있는 공통된 방식이 필요하지만 그 기능을 구현하는 방법은

    제각기 다른 경우에는 인터페이스가 좋다.


    가상메소드란?

    그 메소드를 실제로 호출하는 객체가 어떤 클래스인지에 따라 구현이 결정되는 메소드를 뜻한다.

    비가상 메소드는 유형에 따라 컴파일시에 어떤 메소드 정의를 사용할지 결정된다.

    특히 가상 메소드는 다형성을 활용할떄 유용하다. 같은 메소드를 호출해도 객체의 클래스에 따라 다르게 정의된 메소드가 작동하기 때문이다.


    단일상속의 제약을 보완?? : 인터페이스를 통해 코드를 공유하는 식으로 구현되진 않지만,

    서로 다른 계층 구조에 속한 클래스들끼리 같은 인터페이스를 외부에 노출시킬 수 있게 하여 부족한 부분을 어느정도 보완한다.




Designed by Tistory.