- 자바 데이터 타입 중 기본형과 참조형의 차이에 대해 설명해주세요.
기본형 참조형 차이
기본형 - 값을 직접적으로 할당
참조형
기본형타입의 데이터가 몇바이트로 저장되는지?
byte - 1바이트
shot -2바이트
int , long - 4바이트 / 8바이트
실수형
floot 4 디폴트
double 8
불리언 1바이트
케릭터 2바이트
기본형과 참조형으로 바꿔쓰는 레퍼클래스란 뭔지?
기본형은 널값을 저장못한다는등 제한이 있지만
널값을다룬다거나 제네릭클래스같은경우 래퍼타입으로 감싸서
스트링클래스는 참조형이지만 자주 사용하기 때문에 인스턴스를 사용
- 클래스와 객체에 대해 설명해주세요.
클래스의 정의 클래스란 객체를 정의해 놓은것
클래스의 용도 클래스는 객체를 생성하는데 사용
객체의 정의 실제로 존재하는 것. 사물 또는 객체
객체가 가지고 있는 기능과 속성에 따라 다름
클래스 제품설계도 ,붕어빵틀 객체 제품,붕어빵
객체 = 속성(변수) + 기능(메서드)
속성 > 크기 길이 높이 색상 볼륨 채널 등
기능 > 켜기 끄기 볼륨 높이기, 볼륨 낮추기, 채널변경하기 등
객체 : 모든 인스턴스를 대표하는 일반적 용어
인스턴스 : 특정 클래스로부터 생성된 객체(예:TV인스턴스)
즉 클래스가 설계도이고 인스턴스(객체) 제품이면 인스턴스는 제품을 사용할수있는것이고 인스턴스화는 제품을 생성하는것을 말한다
- 생성자에 대해 설명해주세요.
생성자는 객체를 생성하는 역할을 하는 클래스의 구성요소로서, 인스턴스가 생성될 때 호출되는 인스턴스 초기화 메서드라 정리할수 있습니다. 종종 생성자가 인스턴스를 생성하는 역할을 한다는 오해가 발생하는데 이것은 사실이 아니고, 인스턴스 생성을 담당하는 것은 new키워드이며 생성자는 인스턴스 변수들을 초기화 하는데 사용되는 특수한 메서드라 할 수 잇습니다.생성자는 메서드와 비슷한 구조를 가지고 있지만 크개 두가지 부분에서 큰 차이를 가집니다.
첫번째는 생성자의 이름은 반드시 클래스의 이름과 같아야 합니다 만약 클래스 이름과 생성자의 이름이 다르다면 그 메서드는 더이상 생성자로서의 기능을 수행할 수 없습니다.
두번째로 생성자는 리턴타입이 없습니다 메서드에서의 리턴값이 없을 때 표시하는 void 키워드를 사용하지도않고 리턴타입 자체가 존재하지 않기때문에 void를 쓰지도않습니다. 생성자의 기본구조는 [ 클래스명(매개변수){ } ] 입니다.
생성자도 오버로딩이 가능하므로 한 클래스 내에 여러 개의 생성자가 존재할 수 있습니다.
- 메서드 오버라이딩과 메서드 오버로딩의 차이는 무엇인가요?
메서드 오버로딩은 하나의 클래스 안에 같은 이름의 메서드를 여러개 정의한것을 의미합니다. 보통 하나의 메서드에 하나의 기능만 구현해야하는데, 같은 이름의 메서드가 여러 기능을 구현하기 때문에 오버로딩이라는 용어를 사용합니다.
무조건 같은 메서드명을 사용한다고해서 오버로딩이 되는것은 아닙니다.
오버로딩이 성립하기 위해서는 두가지 조건이 성립되어야합니다.첫번째는 메서드의 이름이 같아야하고 두번째로는 매개변수의 개수 또는 타입이 달라야합니다. 참고로 반환타입은 오버로딩이 성립하는데 영향을 주지 못합니다.
오버로딩의 장점은 하나의 메서드로 여러경우의 수를 해결할 수 있다는 점입니다.
메서드 오버라이딩은 상위 클래스가 가지고 있는 멤버변수가 하위 클래스로 상속되는 것처럼 상위 클래스가 가지고 있는 메서드도 하위 클래스로 상속되어 하위 클래스에 사용할 수 있습니다 또한 하위 클래스에서 메서드를 재정의해서 사용할 수 있습니다.
메서드 오버라이딩을 사용할 때 세가지 조건을 반드시 만족시켜야합니다.
1.메서드의 선언부(메서드이름 ,매개변수, 반환타입)이 상위클래스의 선언부 완전히 일치해야합니다.
2.접근 제어자의 범위가 상위 클래스의 메서드보다 같거나 넓어야 합니다.
3.예외는 상위 클래스의 메서드보다 많이 선언할 수 없습니다.
즉 부모클래스의 메서드는 무시하고 자식 클래스의 메서드 기능을 사용하겠다와 같습니다.
장점으로는 모든 객체를 상위 클래스 타입 하나로 선언하면 간편하게 배열로 선언하여 관리할 수 있다는 편리성이 있습니다.
- 자바의 메모리영역에 대해 설명해주세요.
- static키워드에 대해 설명하고, static을 언제 사용해야하는지 설명해주세요.
- 자바 객체지향 프로그래밍(OOP)에 대해 설명해주세요.
- 자바 접근 제어자의 특징과 종류에 대해 설명해주세요.
- 추상클래스와 인터페이스의 차이는 무엇인지 설명해주세요.
추상클래스
인터페이스
- 이너클래스의 장점에 대해 설명해주세요.
- OOP의 장점과 단점에 대해 설명해주세요.
OOP란 (object-oriented-programing)객체지향 프로그래밍의 약자로써,핵심 개념으론 캡슐화 상속 추상화 다형성이 있습니다.
객체지향 언어 = 프로그래밍 언어 + 객체지향 개념(규칙) 으로 이루어 져있습니다.
- List,Set,Map의 차이에 대해 설명해주세요. list는순서가유지됨
List인터페이스는 배열과 같이 객체를 일렬로 늘어 놓은 구조를 가지고잇습니다. 객체를 인덱스로 관리하기때문에 객체를 저장하면 자동으로 인덱스가 부여되고 인덱스로 객체를 검색,추가,삭제 할수 있는등 여러 기능을 제공합니다.리스트는 순서가 있기때문에 사이즈가 정해져있고, 우리가 사이즈를 정할수도있습니다. 리스트는 순서대로 하나하나 쌓이게되고 다 차면 새롭게 늘어납니다.
Set은 요소의 중복을 허용하지 않고 저장 순서를 유지하지 않는 컬렉션입니다.. set은해쉬값으로 만들기때문에 사이즈가 정해지지지않습니다.
Map인터페이스는 키와 값으로 구성된 객체를 저장하는 구조를 가지고있습니다 여기서 객체를 entry객체라고하는데, 엔트리객체는 키와 값을 각각 key객체와 밸류 객체로 저장합니다. 키와 값이 저장되는 위치를 결정하므로 사용자는 그 위치를 알 수 없고 삽입되는 순서와 위치 또한 관계가 없고, 많은 양의 데이터를 검색하는데 뛰어난 성능을 보입니다.
리스트는 중첩이
- 컬렉션과 스트림의 차이에 대해 설명해주세요.
'앞으로 공부할것들' 카테고리의 다른 글
테스트코드 작성관련 (0) | 2022.09.19 |
---|---|
paging, 페이징이란?(+단편화) (0) | 2022.09.19 |
스프링 웹소켓 채팅 관련 (0) | 2022.09.18 |
JPA와 연관관계 (0) | 2022.09.18 |
spring jpa에 원하는 값 내려주기 (0) | 2022.09.17 |