본문 바로가기

개인 공부

면접 준비하면서 공부(1)

728x90
반응형

요즘 취준 준비를 하면서 면접에서 받았던 질문들과 따로 공부하면서 보기 위해 정리

 

1. 절차지향과 객체지향의 차이

절차 지향은 위에서 아래로 순차적으로 처리가 되게끔 하는 프로그래밍 기법입니다. 객체지향은 특정 기능을 하는 코드 뭉치를 객체로 바라보는 기법입니다. 중복 코드를 줄이고 코드를 재사용하는데 용이한 기법입니다.

 

2.   데이터 타입이란

말 그대로 데이터의 타입입니다. 데이터가 어떻게 사용되고 표현될지를 결정하고, 컴퓨터가 이 데이터를 어떻게 다룰지 결정됩니다.

 

3. 변수란 

변수란 값을 저장할 수 있는 메모리 공간을 뜻합니다.

 

4. 벨류(primitive, 기본) 타입과 레퍼런스 타입

기본 타입은 정수, 실수, 문자, 논리 값(리터럴)을 직접 저장하는 타입을 말합니다. 참조 타입은 기본 타입을 제외한 모든 것으로, 객체의 주소 값을 참조하는 타입입니다. 기본 타입은 jvm stack 영역에 저장되고, 참조 타입은 heap 영역에 저장됩니다.

 

5. 왜 문자형이 char 타입과 스트링 타입으로 나눠져 있는이유

자바에서 char배열이 아닌 String클래스를 이용해서 문자열을 처리하는 이유는 편의성과 연관이 있다고 생각합니다. String클래스가 char배열에 여러 가지 기능을 추가하여 확장한 것이기 때문입니다

String 내부적으로 char 배열을 사용합니다 모든 문자열을 char[]로 저장해서 사용하면 편의성이 많이 떨어지기 때문에 String으로 문자열을 저장합니다.

 

6. 벨류 타입과 레퍼런스 타입이 스택 영역과 힙 영역에 저장될 것인데, 힙 영역과 스택 영역이란?

힙 영역은 객체와 배열이 생성되는 영역입니다. 힙 영역에 생성된 객체와 배열은 jvm 스택 영역의 변수나 다른 객체의 필드에서 참조합니다. 아무도 참조를 안 하면 jvm은 가비지 컬렉터를 실행시켜 해당 객체를 제거합니다. Jvm 스택 영역은 각 스레드마다 하나씩 존재하며, 스레드가 시작될 때 할당됩니다. Jvm 스택은 메서드가 실행될 때마다 프레임을 추가합니다. 프레임 안에는 로컬 데이터 영역이 있고 기본 타입 변수와, 참조 타입 변수가 추가되거나 제거됩니다.

 

7.스택 영역이 있는 이유?

스택 영역은 해당 스레드가 종료되면 사라집니다. 모든 데이터를 힙에 저장하면 메모리 부족 현상이 발생할 것입니다.

 

8.. equals비교와 ==의 차이?

Equals는 다른 인스턴스 여도 값이 같으면 true를 반환합니다. ==같은 인스턴스인지를 검사합니다.

 

9.. equals에서 두 객체가 같다는 것을 어떻게 알 수 있을까?

내부적으로 hashCode 메소드를 기반으로 두 객체가 같은지 판단합니다. String의 경우 hashCode 함수가 주소 값이 아닌 문자열을 해싱한 값을 리턴합니다

728x90
반응형