JAVA

2024. 9. 29. 16:47면접준비

JAVA의 장단점?

- JVM 위에서 실행되기 때문에 OS에 종속적이지 않고, 독립적으로 실행될 수 있다.

- 객체지향 언어로, 객체지행 프로그래밍이 가능하다.

 

JVM이란?

- JVM은 Java Virtual Machine의 줄임말로, OS와 Java Application 사이를 중재해주는 가상 머신입니다.

- JVM은 크게 ClassLoader, Execution Engine, Garbage Collector, Runtime Data Area로 구성돼있습니다.

 

Java Application 실행 과정

1.JVM은 OS로부터 적당한 메모리를 할당받음

2.자바 소스 코드(.java)를 자바 컴파일러(javac)에 의해 바이트코드 파일(.class)로 변환

3. Class Loader를 통해 .class 파일을 Runtime Data Area로 로딩

4. 로딩된 class 파일을 Execution Engine을 통해 해석 및 실행

 

Garbage Collector란?

동적으로 할당한 메모리 영역 중, 사용하지 않는 영역을 탐지해 해제하는 역할을 합니다.

Java에서 동적 변수를 할당하는 영역은 Heap 영역이므로 Jvm의 GC의 작동 대상은 Heap 메모리 입니다.

 

GC사용시 장점

-메모리 누수 방지

-해제된 메모리에 대해 접근하는 것을 방지

-개발자가 일일히 동적변수의 제거 선언을 하지 않아도 됨

 

==와 Equals의 차이?

==은 동일성( 메모리 내 주소값이 같은지 비교 ), equals는 동등성( 내용이 같은지 비교)

 

 

Java의 접근 제한자에 대해 설명해주세요

-public : 접근에 제한이 없음

-private : 자기 자신 클래스 내에서만 접근 가능

-default : 동일한 패키지 내에서만 접근 가능

-protected : 동일한 패키지 내에서만 접근 가능 + 상속을 이용한 접근 가능

 

 

Java의 hashcode()란?

두 객체가 동일한 객체인지 비교할 때 사용하고,  Heap 영역에 저장된 객체의 메모리 주소를 반환합니다.

 

 

Boxing과 Unboxing에 대해 설명해주세요

기본 타입의 변수를 래퍼 클래스의 인스턴스로 변경하는 과정을 박싱, 래퍼 클래스의 인스턴스를 다시 기본 타입으로 꺼내는 과정을 언박싱이라고 합니다.

 

 

Java의 static 변수란?

클래스당 하나만 생성되고, 동일한 클래스의 모든 객체들에 의해 공유됩니다. 다른 객체들이 생기기 전에 이미 생성되고, 프로그램 종료시에 사라집니다.

 

직렬화와 역직렬화

직렬화 : 자바 시스템 내부에서 사용되는 객체 또는 데이터를 외부의 자바 시스템에서도 사용할 수 있도록 바이트 형태로 데이터를 변환하는 기술

역직렬화 : 바이트로 변환된 데이터를 다시 객체로 변환하는 기술

 

추상클래스와 인터페이스

추상클래스는 abstract 키워드를 사용해서 선언한 클래스로, 한개 이상의 추상 메소드를 포함한 클래스.

추상클래스 내부에 추상메소드 외의 다른 것들도 추가가 가능하다는 것이 특징이고, 추상 클래스의 사용 주 목적은 관련성이 높은 클래스간의 코드를 공유하고 확장하고 싶은 목적입니다.

 

인터페이스는 interface 키워드를 사용해 선언하며 default와 static을 제외하고는 추상 메소드와 상수만을 포함합니다.

인터페이스 내부의 모든 메소드는 추상 메소드로, abstract public이 생략되어 있는 상태입니다.

인터페이스는 다중 상속이 가능하며 관련성이 없는 클래스들의 논리적으로 같은 기능을 자신에 맞게 구현을 강제하는데에 목적을 갖는다.

 

Wrapper Class

원시 자료형 타입의 데이터를 객체로 취급해야 하는 경우 사용하는 클래스로 기본 타입의 데이터를 객체로 변환해주는 클래스입니다.

 

오버로딩과 오버라이딩

오버라이딩 : 상위 클래스의 메소드를 재정의 하는것을 의미

 

오버로딩 : 같은 클래스 내에서 동일한 메서드 이름을 가지지만, 반환형, 매개변수의 타입 등을 다르게해 구현하는것을 의미

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

'면접준비' 카테고리의 다른 글

Spring2  (0) 2024.09.28
Spring  (0) 2024.09.19