Q1. 자바 데이터 타입 중 기본형과 참조형의 차이에 대해 설명해주세요.
크게 기본형과 참자바의 데이터 타입은 조형 두 가지로 나눌 수 있다
기본형은 계산을 위한 실제 값을 저장하는 반면, 참조형은 어떤 값이 저장되어 있는 주소를 값으로 갖는다.
저장 공간 - 기본형은 스택 메모리에 실제값을 저장하며 , 참조형은 힙 메모리에 실제값을 저장 후 해당 주소를 스택 메모리에 저장한다
수정여부 매개변수로 이용될 때 - 기본형 : 실제 값만 가져오는 것이기에 읽기만 가능, 참조형: 변수 값 읽고 변경 가능
기본형은 논리형, 문자형, 정수형, 실수형으로 나뉘는데 /이 때 논리형은 boolean, /문자형은 char, /정수형은 크기가 작은 순서대로 /byte, short, int, long을 쓸수 있으며 /실수형에는 float, double을 사용할 수 있다.
이에 반해 참조형은 앞서 말한 9가지 기본형을 제외한 나머지 타입을 말한다
기본형과 참조형을 선언할 때 차이점?
(변수를 선언할 때/ 기본형 변수는 타입을 적고 변수이름을 선언해주는 반면, /참조변수는 클래스이름을 적고 변수이름을 선언해준다)
(자바는 참조형 변수 간의 연산을 할 수 없으므로 실제 연산에 사용되는 것은 모두 기본형 변수이다.)
(데이터 타입 기본형, 참조형
기본형 : 객체가 아니다 int, byte, short, char, float, double
참조형 : class interface 주소 보여주고 실제값은 다른)
Q2. 클래스와 객체에 대해 설명해주세요.
클래스는 객체를 정의한 설계도이며, / 객체(오브젝트)는 설계도로 구현한 모든 대상을 말합니다
구성에 따라 비교를 해보겠습니다
클래스는 필드, 메서드, 생성자, 이너클래스로 구성된다 (의 이름은 대문자로 시작하며 내부에는 )
필드는 클래스의 속성, 메서드는 클래스의 기능, 생성자는 클래스의 객체 생성, 이너 클래스는 클래스 내부에 존재하는 또다른 클래스로서
이 중 필드, 메서드, 이너클래스를 클래스의 멤버라고 한다.
객체는 속성과 기능의 집합 (속성은 필드로, 기능은 메서드로 정의)
더 나아가 클래스의 타입으로 선언되었을 때 객체라 하고, 그 객체가 메모리에 할당되어 사용될 때 인스턴스라 한다.
Q12. List, Set, Map의 차이에 대해서 설명해주세요.
list : 순서가 있는 저장공간. 중복을 허용 (arraylist, vector, linkedlist). 배열이 가변적이라 데이터의 추가, 삭제가 쉬운 편이다 하나하나 순회하기때문에 속도 느리다
set : 순서가 없다. 중복을 허용하지 않는다. 빠른 검색속도. 인덱스 존재하지 않기 때무에 정렬하기 위해 별도의 처리(iterator)가 필요하다
map ; 순서 없고 중복 없다 키와value값을 같이 저장. key는 중복 불가, value는 중복 가능. 속도 빠르다 .인덱스 존재하지 않기 때무에 정렬하기 위해 별도의 처리(iterator)가 필요하다
꼬리질문
1.기본형과 참조형을 선언할 때 차이점?
(변수를 선언할 때/ 기본형 변수는 타입을 적고 변수이름을 선언해주는 반면, /참조변수는 클래스이름을 적고 변수이름을 선언해준다)
클래스의 타입으로 선언되었을 때 객체라 하고, 그 객체가 메모리에 할당되어 사용될 때 인스턴스라 한다.
iterator
Collection 컬렉션에 저장되어 있는 요소를 읽어오는 인터페이스인 iterator을 사용한다. hasNext 등의 메서드 등을 사용하여 각 요소에 접근하도록 하고 있다.
페어 면접 질문
1. 자바의 메모리 영역에 대해 설명해주세요.
2. 컬렉션과 스트림의 차이에 대해서 설명해주세요.
3. 제네릭에 대해서 설명하고, 컬렉션 클래스에서 왜 제네릭을 사용하는 지 설명해주세요.