본문 바로가기

두두의 IT/Computer Science

Java 지식

728x90

1. JVM과 JAVA 프로그램 실행과정을 설명해보세요
- JVM이란 JAVA Virtual Machine의 약자로, 자바 프로그램을 자바 API를 기반으로 실행하는 역할을 함
- JAVA 프로그램 실행 과정은 
- 프로그램이 실행되면 JVM이 OS로부터 해당 프로그램이 필요로 하는 메모리를 할당받고,
- 자바 바이트코드로 변환된(.class) 파일을 class 로더를 통해 JVM에 로딩한다.
- 로딩된 class 파일은 execution engine을 통해 해석되고 실행된다
- 필요시 garbage collection을 수행해서, 불필요하게 할당된 메모리를 해제한다.

2. Garbage Collection이 필요한 이유
- java 프로그램은 메모리를 명시적으로 지정해서 해제하지 않기 때문에, Garbage Collection Mechanism을 통해, 경우에 따라 더 이상 필요없는 객체를 찾아 치우는 작업을 수행한다.
(ppt 참고 garbage collection 동작 방식)

 

3. Overriding vs Overloading
- Overriding : 상위 클래스에 존재하는 메서드를 하위 클래스에 맞게 재정의하는 것(메서드 이름 및 파라미터 수 동일)
- Overloading : 두 메서드가 같은 이름을 가지고 있으나, 파라미터 수나 자료형이 다른 경우

4. interface와 abstract
- interface : 상수와 메소드 선언 집합, 정의된 메소드를 implements 받은 곳에서 모두 구현을 강제함. JAVA는 단일 상속만을 지원하기 때문에, 추상 클래스를 상속받은 클래스는 다른 클래스를 상속받을 수 없음. 그러나 인터페이스는 인터페이스끼리 상속이 가능하므로, 여러 인터페이스 상속이 가능함
- abstract : 추상 클래스는 추상 메소드를 1개 이상 가지고 있는 클래스를 의미. 기존 메소드 이외에 추상 메서드를 상속시켜서, 반드시 구현이 필요한 내용인 추상 메서드를 상속받은 클래스에서 구현시키는 것이 주 목적. 추상 메소드를 1개 이상 가진 클래스는 객체 생성이 안되므로, 추상 클래스를 상속 받은 클래스의 객체 생성을 위해서는 추상 메서드를 구현해야 함 (추상 메서드 구현을 강제함)

5. 디자인 패턴이 무엇인지, 그리고 싱글톤에 대해서 간단히 설명하세요.
- 디자인 패턴은 공통적인 소프트웨어 코드 작성 문제를 해결하는데 도움이 될 수 있는 코드 패턴을 의미함
- 싱글톤은 전체 프로그램에서 단 1개의 객체를 생성해서 공유할 수 있는 코드 패턴

 

1. 객체와 클래스의 차이점에 대해 설명해주세요

 

2. JAVA 메모리 영역에 대해 설명해주세요

 

3. private, protected, public, default 키워드에 대해 설명해주세요

 

4. 객체지향 5대 원칙에 대해 설명해주세요

어려움
Java 프로그램을 작성할 경우 간혹 GC 문제로 인해 프로그램이 정상적으로 실행되지 않는 경우가 있음

'두두의 IT > Computer Science' 카테고리의 다른 글

웹(Frontend, Javascript) 기본 지식  (0) 2022.08.30
Python 지식  (0) 2022.08.29
CS 기본 지식  (0) 2022.07.19
[DB] RDBMS 질의어  (0) 2022.07.02
[DB] 데이터 독립성  (0) 2022.07.02