항해99 3기

2021.12.17 면접 질문 준비(수정필요) - Java

na_o 2021. 12. 19. 23:53
728x90
  • java의 장단점
    • 장점
      운영체제에 독립적이다.
      JVM에서 동작하기 때문에, 특정 운영체제에 종속되지 않는다.
      객체지향 언어이다.
      객체지향적으로 프로그래밍 하기 위해 캡슐화, 상속, 다형성 등 여러 언어적 지원을 하고있다.
      자동으로 메모리 관리를 해준다.
      JVM에서 Garbage Collector라고 불리는 데몬 쓰레드에 의해 GC(Garbage Collection)가 일어난다. 
      GC로 인해 별도의 메모리 관리가 필요 없으며 비지니스 로직에 집중할 수 있다. (참고)
    • 단점
      비교적 속도가 느리다.
      자바는 한 번의 컴파일링으로 실행 가능한 기계어가 만들어지지 않고 JVM에 의해 기계어로 번역되고 실행하는 과정을 거치기 때문에 
      C나 C++의 컴파일 단계에서 만들어지는 완전한 기계어보다는 속도가 느리다. 그러나 JVM의 기능이 향상되어 속도의 격차가 많이 줄어들었다.
      예외처리가 불편하다.
      프로그래머 검사가 필요한 예외가 등장한다면 무조건 프로그래머가 선언을 해줘야 한다.
    • https://gmlwjd9405.github.io/2017/10/01/basic-concepts-of-development-java.html

  • OOP의 4가지 특징
    • 추상화
      구체적인 사물들의 공통적인 특징을 파악해서 이를 하나의 개념(집합)으로 다루는 것
    • 캡슐화
      정보 은닉(information hiding)으로: 필요가 없는 정보는 외부에서 접근하지 못하도록 제한하는 것
    • 일반화 관계
      여러 개체들이 가진 공통된 특성을 부각시켜 하나의 개념이나 법칙으로 성립시키는 과정
    • 다형성
      서로 다른 클래스의 객체가 같은 메시지를 받았을 때 각자의 방식으로 동작하는 능력
    • https://gmlwjd9405.github.io/2017/10/01/basic-concepts-of-development-java.html

  • 객체지향 프로그래밍과 절차지향 프로그래밍의 차이
    • 절차지향 프로그래밍
      • 실행하고자 하는 절차를 정하고, 이 절차대로 프로그래밍하는 방법
        목적을 달성하기 위한 일의 흐름에 중점을 둔다.
    • 객체지향 프로그래밍
      • 실세상의 물체를 객체로 표현하고, 이들 사이의 관계, 상호 작용을 프로그램으로 나타낸다.
        객체를 추출하고 객체들의 관계를 결정하고 이들의 상호 작용에 필요한 함수(메서드)와 변수(필드)를 설계 및 구현하다.
        연관되어 있는 변수와 메서드를 하나의 그룹으로 묶어서 그룹핑 합니다
    • https://gmlwjd9405.github.io/2017/10/01/basic-concepts-of-development-java.html
 

[기술 면접 질문] 기술 면접 예상 질문 대비하기 - Java편 - Heee's Development Blog

Step by step goes a long way.

gmlwjd9405.github.io