Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

UpDown Dev Story

자바의신 정리해 봅시다 요약 1장~10장 본문

Java

자바의신 정리해 봅시다 요약 1장~10장

updown 2021. 6. 27. 04:53

http://www.yes24.com/Product/Goods/42643850

 

자바의 신 세트 - YES24

성능 전문가로 널리 알려진 저자가 십수 년의 자바 개발 경험을 바탕으로 현장에서 꼭 필요한 기초지식을 정리한 책이다. 현장 중심으로 자바의 기본서를 다시 정의한 책이다. 독자가 생각하며

www.yes24.com

해당 책을 읽고 내용을 정리해보고 있습니다

정리내용

정리해 봅시다

1장 프로그래밍이란 무엇인가?

​1. 클래스가 뭔가요?

  • 클래스는 Java의 가장 작은 단위이며 상태와 행동을 가지고 있다. 클래스 안에 변수를 선언하면 이를 상태라 하고 메소드를 선언하면 행동이라고 볼 수 있다.​

2. 메소드가 뭔가요?

  • 메소드는 클래스 내에서 행동에 속하는 부분으로 특정한 작업을 수행하는 단위이다. 매개변수로 값을 받을 수 있고 값을 받지 않아도 된다. 메서드 내에 작성된 코드에 따라 특정한 행동을 수행한 후 리턴타입에 따라 값을 반환하기도 하고 리턴타입이 void인 경우에는 작업만 수행하고 행동을 마친다.
  • 메소드는 클래스에 소속되어야 하며 접근제어자 리턴타입 메소드이름(매개변수){}의 형식에 따라 만들 수 있다.

3. 메소드의 매개 변수(parameter)는 어디에 적어주나요?

  • 메소드의 이름 옆의 소괄호 안 에 매개 변수를 적어 준다
  • 접근제어자 리턴타입 메소드이름(매개변수){}

4. 메소드 이름 앞에 꼭 적어줘야 하는 건 뭐죠?

  • 접근 제어자. 접근 제어자에는 public, protected, default, pricvate 등이 있고 각각의 접근 제어자는 모두 다른 접근 권한을 가지고 있다.​
public : 모든 곳에서 접근 가능
protected : 같은 패키지에 있는 클래스와 상속 관계에 있는 클래스만 접근 가능
default : 같은 패키지에 있는 클래스만 접근 가능
private : 현재 클래스에서만 접근 가능

5. 클래스가 갖고 있어야 한다고 한 두 가지가 뭐죠?

  • 상태(state)와 행동(behavior).

6. 메소드에서 결과를 돌려주려면 어떤 예약어를 사용해야 하나요?

  • 리턴 타입에 void가 아닌 리턴 타입을 지정해주고 return 예약어를 통해 결과를 반환할 수 있다.

 

2장 Hello God Of Java

1. main() 메소드의 메소드 이름 앞에는 어떤 예약어들이 들어 가나요?

public static void main(String[] args) {

}
  • public static void

2. main 메소드의 매개 변수에는 어떤 값이 들어가나요?

  • String[] args

3. 만약 여러분들이 만든 클래스에 main() 메소드가 없다면, java 명령어로 그 클래스를 수행할 수 있나요?

  • "실행을 목적으로 하는" 클래스는 반드시 main 메소드가 있어야 실행된다.

4. System.out.println() 메소드는 어떤 용도로 사용하나요?

  • System.out.println()에 매개 변수로 주어진 값을 콘솔 창에 출력하고 한칸 띄우기 위해 사용함.

5. //는 무엇을 하는 데 사용하는 기호인가요?

  • 한줄 주석

6. /*로 시작하고, */로 끝나는 사이에 있는 소스들은 어떻게 되나요?

  • 컴파일되지 않는다

7. 메소드를 선언할 때 반드시 꼭 있어야 하는 세 가지는 무엇인가요?

  • 리턴 타입, 메소드명, 메소드 내용

 

3장 자바를 제대로 알려면 객체가 무엇인지를 알아야 해요

1. 클래스와 객체의 차이점을 말해 주세요.

  • 클래스는 설계도, 객체는 설계도를 바탕으로 만들어낸 구체적이고 실질적인 건축물에 비유할 수 있을 것 같다. 붕어빵 틀과 붕어빵. 클래스는 그 자체로 어떤 작업을 수행하지 않고 객체를 생성해서 사용할 수 있다.

2. 객체를 생성하기 위해서 꼭 사용해야 하는 예약어는 뭐라고 했죠?

  • new
클래스 클래스이름 = new 생성자();
Profile profile = new Profile();

3. 객체를 생성하기 위해서 사용하는 메소드 같이 생긴 클래스 이름에 소괄호가 있는 것을 뭐라고 하나요?

  • 생성자. 기본 생성자는 직접 만들어주지 않아도 컴파일 할 때 자동으로 만들어진다.
public class Test {
	public Test() {
	}
}

4. 객체의 메소드를 사용하려면 어떤 기호를 객체 이름과 메소드 이름 사이에 넣어주어야 하나요?

  • .

5. 여러분들이 메소드를 사용하기 위해서는 어떤 것을 만들어야 하나요?

  • 객체 , 인스턴스

6. 5번 문제에서 만들어야 하는 것은 어떤 예약어를 사용하고, 클래스의 무엇을 사용해야 하나요?

  • new 예약어와 클래스의 생성자를 통해 객체를 만들어 객체가 가지고 있는 메소드를 사용할 수 있다.

 

4장 정보를 어디에 넣고 싶은데

1. 네 가지 종류의 변수는 어떻게 구분할 수 있나요?

  • 지역 변수 : 중괄호 안에서 선언된 변수
  • 매개 변수 : 메소드에 넘겨주는 변수
  • 인스턴스 변수 : 메소드 밖에, 클래스 안에 선언된 변수.
  • 인스턴스 변수 앞에 static을 붙이면 클래스 변수다.
  • 클래스 변수 : 인스턴스 변수 중 static 예약어를 사용한 변수​

2. 변수의 이름을 지을 때 대문자로 시작해도 되나요?

  • 변수의 이름을 지을 때 대문자로 시작해도 컴파일 과정에서 에러가 발생하지는 않으나 camelCase 카멜 표기법에 따라 변수 이름을 짓는 것이 보편적이다. 값이 변하지 않는 상수의 경우 대문자로 짓는 것이 일반적이다.

3. 자료형에는 기본 자료형과 어떤 자료형이 있나요?

  • 참조 자료형. 참조 자료형은 new 예약어를 이용해 생성한다. String은 제외.

4. 기본 자료형에는 몇가지가 있나요?

  • 8가지. byte, short, int, long, char, float, double, boolean.

5. 기본 자료형 중 정수형에는 어떤 것들이 있나요?

  • byte, short, int, long, char

6. byte는 몇 비트(bit)로 되어 있나요?

  • 8비트

7. byte는 왜 만들었을까요?

  • ​-

8. int와 long 중 어떤 타입이 더 큰 숫자를 처리할 수 있나요?

  • long이 더 큰 숫자를 처리할 수 있다. int는 2의 32승 만큼의 숫자를, long은 2의 64승 만큼의 숫자를 표현할 수 있다.

9. 소수점을 처리하는 타입은 어떤 것이 있나요?

  • float, double. float은 32비트, double은 64비트로 표현할 수 있다.

10. char는 정수형인가요?

  • char는 정수형이지만 보통 문자를 처리할 때 사용한다.

11. a라는 것을 char로 정의할 때 어떤 기호로 감싸주어야 하나요?

  • 홑따옴표 ''

12. true와 false 두개의 값만을 가지는 타입은 어떤 것인가요?

  • boolean

5장 계산을 하고 싶어요

1. 값을 할당할 떄 사용하는 연산자의 기호는 무엇인가요?

  • =

2. 기본적인 덧셈, 뺼셈, 곱셈 나눗셈, 나머지를 계싼할 때 사용하는 연산자의 기호는 무엇인가요?

  • +, -, *, /, %

3. +=는 무엇을 할 때 사용하는 연산자 인가요?

  • int a=a+1; 을 int a += 1; 로 나타내 줄수 있게 해주는 복합대입 연산자

4. 여러분들이 연산의 순서를 모르거나 확실히 하고 싶을때에는 어떤 끼호를 사요해야 하나요?

  • ()

5. ==와 !-의 차이는 무엇인가요?

  • ==은 같은지 비교, !=는 다른지 비교

6. < <=의 차이는 무엇인가요?

  • <는 미만, <=는 이하

7. ! 연산자는 어떤 타입에 사용할 수 있나요?

  • boolean

8. ? : 로 표시하는 삼항 여산자의 ? : 뒤에 명시에 주는 값은 무엇을 의마하나요?

  • ? 앞의 조건이 true일 경우 ?과 : 사이의 값을 리턴하고 false일 경우 : 뒤의 값을 리턴한다
  • (조건식) ? true일 경우 : false일 경우

9. 자바는 형 변환을 한다고 했는데, short의 값을 ㅣong에 할당할 때에는 어떤것을 해 주어야 하나요?

  • (long)으로 형 변환을 해주어야 한다
  • long a = 1L;
    short b = (short)a;

10. 반대로 long 값을 short에 할당할 때에는 어떤것을 해 주어야 하나요?

  • (short)으로 형 변환을 해주어야 한다 // intellij 에서 해보니 그냥 넣어도된다

11. 9와 10의 경우 중 어떤 경우가 기존 값이 사라지고, 엉뚱한 값으로 바뀔 수 있나요?

  •  

6장 제가 조건을 좀 따져요

1. if 문장의 소괄호 안에는 어떤 타입의 결과가 제공되어야 하나요?

  • boolean

2. if 조건에 맞지 않는 모든 경우를 처리할 때 사용하는 예약어는 뭔가요?

  • else

3. switch를 사용할 수 있는 기본 자료형의 타입에는 어떤 것들이 있나요?

  • long을 제외한 정 수 및 Enum이 사용가능 하다 JDK 7 부터는 String도 사용 가능

4.switch블록 안에서 비교 대상값 앞에 사용하는 예약어는 무엇인가요?

  • case

5. switch 조건을 빠져나가도록 하는 예약어는 무엇인가요?

  • break

6. switch 조건들에 맞지 않을 때 기본 처리를 하기 위한 예약어는 무엇인가요?

  • default

7. while 문의 소괄호 안에는 어떤 형태의 결과가 제공되어야 하나요?

  • boolean

8. while 문을 무조건 한번은 실행하게 하려면 어떻게 해야 하나요?

  • do-while 문 사용

9. while문을 마음대로 빠져나가게 하려면 어떤 예약어를 사용하면 되나요?

  • break

10. while문의 중간에 while문의 소괄호 점검 구문으로 건너뛰도록 할 때 사용하는 예약어는 무엇인가요?

  • continue

11. for루프의 소괄호안의 가장 첫 구문(첫 세미 콜론 앞의 문장)은 for루프가 수행되는 동안 몇 번 수행되나요?

  • 1번

12. for루프의 소괄호 안의 중간에 있는 구문은 어떤 타입의 결과가 제공되어야 하나요?

  • boolean

13. for루프의 소괄호 안의 마지막에 있는 구문에서는 어떤 작업을 수행하나요?

  • index를 증가하거나 감소하는 작업을 수행

7장 여러 데이터를 하나에 넣을 수는 없을까요?


1. 배열을 선언할 때 어떤 기호를 변수명의 앞이나 뒤에 사용해야 하나요?

  • []
  •         int[] arr = new int[1];
            int arr1[] = new int[1];


2. 배열의 첫번째 위치는 0인가요? 1인가요?

  • 0

3. 배열을 선언할 때 boolean 배열의 크기만 지정했다면 boolean 배열의 [0] 위치에 있는 값은 무엇인가요?

  • false

4. ArrayIndexOutOfBoundsException 이라는 것은 언제 발생하나요?

  • 선언한 배열의 크기를 벗어나는 index에 접근하려고 했을때

5. 중괄호를 이용하여 배열을 초기화 할 때 중괄호 끝에 반드시 어떤 것을 입력해 주어야 하나요?

  • ;

6. 2차원 배열을 정의할 때에는 대괄호를 몇 개 지정해야 하나요?

  • 2개

7. 배열을 쉽게 처리해주는 for 문의 문법은 어떻게 되나요?

int[] arr = new int[1];
for (int value : arr) {
	System.out.println(value);
}



8. 자바 프로그램에 데이터를 전달해 주려면 클래스 이름 뒤에 어떻게 구분하여 나열하면 되나요?

  • 공백으로 구분하면 된다
java ArrayMain a b c d e


9. 자바 프로그램이 시작할 때 전달 받는 내용은 어떤 타입의 배열인가요?

  • String[]

 

8장 참조 자료형에 대해서 더 자세히 알아봅시다

1. 생성자는 반드시 만들어야 하나요?

  • X

2. 만약 매개변수가 있는 생성자를 만들고, 매개변수가 없는 기본 생성자를 호출하면 어떻게 될까요?

  • 기본생성자가 아닌 다른 생성자를 만들면 컴파일러가 기본 생성자를 자동으로 생성해주지 않기때문에 컴파일 에러가 발생

3. 생성자의 개수는 제한이 있나요?

  • X

4. 인스턴스의 변수와 매개변수나 메소드 내에서 생성한 변수와 구분하기 위해서 사용하는 키워드는 무엇인가요?

  • this

5. 메소드 선언시 리턴 타입으로 지정한 데이터를 넘겨줄 때 사용하는 키워드는 무엇인가요?

  • return

6. 메소드 선언시 아무 데이터도 리턴 타입으로 넘겨주지 않겠다는 것을 지정하는 키워드는 무엇인가요?

  • void

7. 메소드 선언에 static 이 있는 것과 없는 것의 차이는 무엇인가요?

  • 객체생성

8. 필자가 엄청나게 중요하다고 한 것 중 메소드의 이름은 같으나 매개변수를 다르게 하는 것의 명칭은 무엇인가요?

  • 오버로딩

9. 기본 자료형을 매개변수로 넘겨 줄 때 Pass by value인가요? 아니면 Pass by reference인가요?

  • Pass by value

10. 참조 자료형을 매개변수로 넘겨 줄 때 Pass by value인가요? 아니면 Pass by reference인가요?

  • Pass by reference

11. 매개변수의 수가 가변적일 때 메소드 선언시 타입과 변수 이름 사이에 어떤 것을 적어줘야 하나요?

  • ...

9장 자바를 배우면 패키지와 접근 제어자는 꼭 알아야 해요

1. 패키지를 선언할 때 사용하는 예약어는 무엇인가요?

  • package

2. 패키지 선언은 클래스 소스 중 어디에 위치해야 하나요?

  • 가장 위에

3. 패키지를 선언할 때 가장 상위 패키지의 이름으로 절대 사용하면 안되는 단어는 무엇인가요?

  • java

4. 패키지 이름에 예약어가 포함되어도 되나요?

  • 중간에라도 예약어가 패키지의 이름으로 선언되어도 안된다

5. import는 클래스 내에 선언해도 되나요?

  • import는 클래스 선언 전에 명시되어 있어야만 한다.

6. 같은 패키지에 있는 클래스를 사용할 때 import를 해야 하나요?

  • 같은 패키지 내의 클래스와 java.lang 패키지에 있는 클래스는 별도로 import할 필요가 없다.

7. 특정 패키지에 있는 클래스들을 모두 import할 때 사용하는 기호는 무엇인가요?

  • *

8. 클래스에 선언되어 있는 static한 메소드나 변수를 import하려면 어떻게 선언해야 하나요?

  • import static

9. 접근 제어자 중 가장 접근 권한이 넓은 (어떤 클래스에서도 접근할 수 있는) 것은 무엇인가요?

  • public

10. 접근 제어자 중 가장 접근 권한이 좁은 (다른 클래스에서는 접근할 수 없는) 것은 무엇인가요?

  • private

11. 접근 제어자 중 같은 패키지와 상속관계에 있는 클래스만 접근할 수 있도록 제한하는 것은 무엇인가요?

  • protected

12. Calculate.java라는 자바 소스가 있을 경우, 그 소스 내에는 Calculate라는 클래스외에는 ( )으로 선언된 클래스가 있으면 안된다. 여기서 괄호 안에 들어가야 하는 것은 무엇인가요?

  • public

10장 자바는 상속이라는 것이 있어요

1. 상속을 받는 클래스의 선언문에 사용하는 예약어는 무엇인가요?

  • extends

2. 상속을 받은 클래스의 생성자를 수행하면 부모의 생성자도 자동으로 수행된다.

  • O

3. 부모 클래스의 생성자를 자식 클래스에서 직접 선택하려고 할 때 사용하는 예약어는 무엇인가요?

  • super

4. 메소드 Overriding과 Overloading을 정확하게 설명해 보세요.

  • 오버로딩(Overloading) : 같은 이름의 메서드 여러개를 가지면서 매개변수의 유형과 개수가 다르도록 하는 기술
  • 오버라이딩(Overriding) : 상위 클래스가 가지고 있는 메서드를 하위 클래스가 재정의해서 사용

5. A가 부모, B가 자식 클래스라면 A a=new B(); 의 형태로 객체 생성이 가능한가요?

  • O

6. 명시적으로 형변환을 하기 전에 타입을 확인하려면 어떤 예약어를 사용해야 하나요?

  • instanceof

7. 위의 문제에서 사용한 예약어의 좌측에는 어떤 값이, 우측에는 어떤 값이 들어가나요?

  • instanceof의 왼쪽에는 참조변수를 오른쪽에는 타입(클래스명) // 이 문제 안풀림 이상함 ㅋㅋ

8. instanceof 예약어의 수행 결과는 어떤 타입으로 제공되나요?

  • boolean

9. Polymorphism이라는 것은 뭔가요?

  • 다형성(polymorphism)이란 하나의 객체가 여러 가지 타입을 가질 수 있는 것을 의미합니다.다형성은 상속, 추상화와 더불어 객체 지향 프로그래밍을 구성하는 중요한 특징 중 하나입니다. 자바에서는 이러한 다형성을 부모 클래스 타입의 참조 변수로 자식 클래스 타입의 인스턴스를 참조할 수 있도록 하여 구현하고 있습니다.
Comments