1. 참조 자료형(Reference type)과 기본 자료형(Primitive type)의 차이를 정리해 주세요.
- 참조 자료형은 내가 마음대로 만들 수 있지만, 기본 자료형은 정해져 있다.
기본 자료형 : byte, short, int, long, char, float, double, boolean
참조 자료형 : 기본 자료형을 제외한 나머지 타입 모두를 말함. Calculator, Car 클래스 등등
- byte형을 왜 만들었을까? (-128 <= byte <= 127)
그냥 int나 long 타입처럼 큰 공간을 주고 사용하라고 하면 편할텐데...
동영상과 이미지를 저장할 때, 저장 데이터가 모두 int타입일 경우라면,
단순히 숫자 하나를 표현하기 위해 32개의 0과 1을 표시하기 위한 공간이 필요함.
즉, byte 대비 4배의 저장공간이 더 필요하게 된다.
그래서, 많은 부분에서 데이터를 저장할 때, byte 값들을 조합해서 사용한다.
그래야 적은 공간에 보다 많은 내용을 저장할 수 있다.
3. 생성자는 무엇을 하는 데 사용하는 것이며, 별도로 만들지 않아도 자동으로 생성되는 생성자에 대해서 정리해주세요.
자바의 생성자는 자바 클래스의 객체(또는 인스턴스)를 생성하기 위해 존재한다.
생성자는 메소드와 비슷하게 생겼지만,
리턴 타입이 없고, 클래스와 같은 이름으로 되어 있다는 것이 메소드와 다르다.
생성자에 리턴 타입이 없는 이유는 생성자의 리턴 타입은 클래스의 객체이기 때문이며,
클래스와 이름이 동일해야 컴파일러가 "아~얘가 생성자구나" 하고 알아 차릴 수 있기 때문이다.
public class ReferenceString {
public ReferenceString() {} => 생성자
public static void main(String args[]) {
ReferenceString reference = new ReferenceString(); => 객체 생성
}
}
번외) 생성자가 없더라도 객체를 얻을 수 있는 클래스가 존재한다.
4. Overloading은 무엇인가요? public void setData(int a)라는 메소드를 원하시는 대로 Overloading 해주세요.
메소드를 생성자처럼 이름만 같고 매개변수 다르게끔 여러개 만들 수 있는 것.
ex) System.out.println()에 메소드에 int만 넘기거나, long만 넘기거나, String만 넘겨줘도 된다.
같은 역할을 하는 메소드는 같은 메소드 이름을 가져야 한다.
5. 다른 패키지에 선언된 클래스를 사용하기 위한 import는 어디 위치에 선언해야 하며, static import는 무엇인지 정리해주세요.
6. 클래스란 무엇인가요? 다음의 단어들이 포함되는 문장을 작성하고, 주어진 단어의 의미도 같이 정리해주세요. (속성, 상태)
7. instanceof 라는 연산자의 용도를 정리해 주세요.
Object tempObject = new Object();
if(tempObject instanceof 타입) {
//선언문...
}
=> 객체의 타입을 점검할 때 사용된다.
8. 어떤 클래스를 상속받아 확장을 하면, 부모 클래스의 어떤 것들을 사용할 수 있는지 정리해 주세요.
부모 클래스의 public, protected로 선언되어 있는 변수나 메소드를 가져와 그대로 사용할 수 있다.
9. 변수를 final로 선언하는 것이 어떤 의미가 있는지 정리해 주세요.
변수에 final을 사용하면 그 변수는 "더 이상 바꿀 수 없다" 라는 말이다.
예를 들어, 1월에 대한 날짜수를 JANUARY_DATE 라는 변수에 31이라는 값을 할당해 놓으면,
누구나 이 변수를 가져다가 쓸 수 있다.
10. 클래스를 final로 선언하는 것이 어떤 의미가 있는지 정리해 주세요.
클래스가 final로 선언되어 있으면 상속을 해 줄 수 없다.예를 들어, String 클래스는 불변한 클래스인데, String 클래스를 누간가 상속 받아서 toString() 메소드에서무조건 1을 리턴하게 한다면 String이라는 클래스에 대한 기본 속성을 변경하는 것이다.더 이상 확장해서는 안되는 클래스, 누군가 이 클래스를 상속 받아서 내용을 변경해서는 안되는 클래스를 선언할 때 final을 선언한다.
11. 변수를 static으로 선언하는 것이 어떤 의미가 있는지 정리해 주세요.
12. 메소드를 static으로 선언하는 것이 어떤 의미가 있는지 정리해 주세요.
static 메소드는 객체를 생성하지 않아도 바로 사용할 수 있게 만든 것이다.
'Java' 카테고리의 다른 글
자바의 컴파일 과정을 이해해보자 (0) | 2021.07.30 |
---|---|
[JAVA] 15. JIT(Just In time) (0) | 2021.05.18 |
[JAVA] 14. Function Interface (0) | 2021.05.11 |
[JAVA] 13. 쓰레드(Thread) (0) | 2021.05.04 |
[JAVA] 12. 자바 컬렉션(Map편) (0) | 2021.04.30 |