[CS] 자바 기술 면접

자바 기술 면접

  1. Java와 C/C++ 차이점

    실행 환경

    java: 컴파일 혹은 컴파일 + jar 압축

    • 자바는 링크 과정 없이 컴파일러가 바로 바이트 코드 생성

    c/c++: 컴파일 + 링크

  2. Java 장단점

    • 장점

      운영체제에 독립적: JVM

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

      자동으로 메모리 관리: JVM에서 Garbage Collector 발생

      오픈소스

      멀티스레드 구현이 쉬움

      동적 로딩 지원: 애플리케잇녀 실행 시 모든 객체 생성x 각 객체가 필요한 시점에 클래스를 동적 로딩해서 생성

    • 단점

      느림: JVM -> 번역

      -> JIT 컴파일러가 기술 적용으로 JVM 기능 향상, 속도 격차 줄어듦

      예외처리 불편

  3. 접근 제어자

    public: 모든 클래스 접근 가능

    private: 해당 클래스만

    protected: 동일한 패키지, 상속 관계 하위 클래스

    default: 동일 패키지

  4. OOP

    추상화: 구체적인 사물들의 공통적인 특징을 파악해 하나의 개념으로 다루는 것 abstract

    캡슐화: 정보 은닉 -> 외부 접근 제한

    일반화 관계: 여러 개체들이 가진 공통된 특성 부각, 하나의 개념이나 법칙 성립

    다형성: 서로 다른 클래스의 객체가 같은 메시지를 받았을 때, 각자의 방식으로 동작