카테고리 없음

기술 면접

jineric 2023. 2. 20. 14:26

Java의 특징

  • Java는 객체지향 프로그래밍 언어
  • 기본 자료형을 제외한 모든 요소들이 객체로 표현되고, 객체 지향 개념의 특징인 캡슐화, 상속, 다형성이 잘 적용된 언어
  • 장점
    • JVM(자바가상머신) 위에서 동작하기 때문에 운영체제에 독립적이다.
    • GabageCollector를 통한 자동적인 메모리 관리가 가능하다.
  • 단점
    • JVM 위에서 동작하기 때문에 실행속도가 상대적으로 느리다.
    • 다중 상속이나 타입에 엄격하며, 제약이 많다

 

JVM의 역할

JVM은 스택 기반으로 동작하며, Java Byte Code를 OS에 맞게 해석해주는 역할을 하고 가비지 컬렉션을 통해 자동적인 메모리 관리를 해준다

 

Java의 컴파일 과정

  • 개발자가 .java 파일을 생성
  • build를 한다
  • Java compiler의 javac의 명령어를 통해 바이트코드(.class)를 생성한다
  • Class Loader를 통해 JVM 메모리 내로 로드를 한다
  • 실행엔진을 통해 컴퓨터가 읽을 수 있는 기계어로 해석한다

Java에서 제공하는 원시 타입들에 무엇이 있고 몇바이트를 차지하는지?

  • 정수형 byte, short, int long 실수형 float, double 문자형 char 논리형 boolean
  • 정수형 1, 2, 4, 8, 실수형 4, 8, 문자형 2, 논리형 1 바이트를 차지

오버라이딩(Overriding) 과 오버로딩(Overloading)

  • 오버라이딩은 상위 클래스에 있는 메소드를 하위 메소드에서 재정의한다
  • 오버로딩은 매개변수의 개수나 타입을 다르게 하여 같은 이름의 메소드를 여러개 정의하는 것

객체지향 프로그래밍(OOP)

 

  • 실생활에서 사용하는 모든것은 객체
  • 객체 지향 프로그래밍은 프로그램 구현에 필요한 객체를 파악하고 상태와 행위를 가진 객체를 만들고 각각의 객체들이 역할이 무엇인지를 정의하여 객체들 간의 상호작용을 통해 프로그램을 만드는 것