책 이미지
책 정보
· 분류 : 국내도서 > 컴퓨터/모바일 > 프로그래밍 언어 > 자바
· ISBN : 9788960770072
· 쪽수 : 704쪽
책 소개
목차
1장 소개 1
1.1 예제 프로그램 5
1.2 표기법 5
1.3 이미 정의되어 있는 클래스, 인터페이스와의 관계 6
1.4 참고 문헌 6
2장 문법 8
2.1 문맥 자유 문법 8
2.2 어휘 문법 8
2.3 구문 문법 9
2.4 문법 표기법 9
3장 어휘 구조 13
3.1 유니코드 13
3.2 어휘 번역 14
3.3 유니코드 확장문자 15
3.4 라인 종결자 16
3.5 입력 요소 및 토큰 17
3.6 공백 18
3.7 주석 18
3.8 식별자 19
3.9 예약어 21
3.10 리터럴 21
3.10.1 정수 리터럴 22
3.10.2 부동 소수점 리터럴 24
3.10.3 Boolean 리터럴 27
3.10.4 문자 리터럴 27
3.10.5 문자열 리터럴 28
3.10.6 문자 리터럴과 문자열 리터럴의 확장 문자열 30
3.10.7 Null 리터럴 31
3.11 구분자 32
3.12 연산자 32
4장 타입, 값, 변수 33
4.1 타입의 종류와 값 34
4.2 기본자료형과 값 35
4.2.1 정수형과 값 36
4.2.2 정수 연산 36
4.2.3 부동소수점형, 형식, 값 38
4.2.4 부동소수점 연산자 40
4.2.5 boolean형과 boolean 값 43
4.3 참조자료형과 값 44
4.3.1 객체 45
4.3.2 Object 클래스 48
4.3.3 String 클래스 49
4.3.4 참조자료형이 동일할 경우 49
4.4 타입 변수 50
4.5 매개변수화 타입 52
4.5.1 타입 인자와 와일드카드 53
4.5.1.1 타입 인자 포함과 동등 55
4.5.2 매개변수화 타입의 구성 요소와 생성자 56
4.6 타입 삭제 56
4.7 구체화 가능한 타입 57
4.8 원형 타입 58
4.9 교차 타입 62
4.10 하위타입화 63
4.10.1 기본자료형 사이의 하위타입화 63
4.10.2 클래스와 인터페이스 타입 사이의 하위타입화 64
4.10.3 배열 타입의 하위타입화 65
4.11 타입의 사용 65
4.12 변수 67
4.12.1 기본자료형 변수 67
4.12.2 참조자료형 변수 67
4.12.2.1 힙 오염 68
4.12.3 변수의 종류 69
4.12.4 final 변수 71
4.12.5 변수의 디폴트값 72
4.12.6 타입, 클래스, 인터페이스 73
5장 형변환과 확장 77
5.1 형변환의 종류 80
5.1.1 식별 형변환 80
5.1.2 기본자료형 확장 형변환 80
5.1.3 기본자료형 축소 형변환 82
5.1.4 기본자료형 확장 및 축소 형변환 84
5.1.5 참조자료형 확장 형변환 85
5.1.6 참조자료형 축소 형변환 85
5.1.7 박싱 형변환 86
5.1.8 언박싱 형변환 88
5.1.9 비확인 형변환 89
5.1.10 캡쳐 형변환 89
5.1.11 문자열 형변환 92
5.1.12 형변환 금지 92
5.1.13 값 집합 형변환 92
5.2 할당 형변환 93
5.3 메소드 호출 형변환 99
5.4 문자열 형변환 101
5.5 캐스팅 형변환 101
5.6 수치 확장 108
5.6.1 단항 수치 확장 108
5.6.2 이항 수치 확장 109
6장 이름 113
6.1 선언 114
6.2 이름과 식별자 115
6.3 선언의 유효범위 117
6.3.1 선언 감춤 119
6.3.2 모호한 선언 121
6.4 멤버와 상속 122
6.4.1 타입 변수의 멤버, 매개변수화 타입, 원형 타입, 교차 타입 122
6.4.2 패키지의 멤버 122
6.4.3 클래스 타입의 멤버 123
6.4.4 인터페이스 타입의 멤버 124
6.4.5 배열 타입의 멤버 125
6.5 이름의 의미 결정 126
6.5.1 문맥에 따른 이름의 구문 분류 127
6.5.2 문맥상 모호한 이름의 재분류 129
6.5.3 패키지명의 의미 131
6.5.3.1 단순 패키지명 131
6.5.3.2 한정 패키지명 131
6.5.4 패키지_또는_타입명의 의미 131
6.5.4.1 단순 패키지_또는_타입명 131
6.5.4.2 한정 패키지_또는_타입명 131
6.5.5 타입명의 의미 132
6.5.5.1 단순 타입명 132
6.5.5.2 한정 타입명 132
6.5.6 표현식명의 의미 134
6.5.6.1 단순 표현식명 134
6.5.6.2 한정 표현식명 135
6.5.7 메소드명의 의미 137
6.5.7.1 단순 메소드명 137
6.5.7.2 한정 메소드명 137
6.6 접근 제어 138
6.6.1 접근 가능성 결정 138
6.6.2 protected 접근 139
6.6.2.1 protected 멤버 접근 139
6.6.2.2 protected 생성자 한정 접근 139
6.6.3 접근 제어 예제 140
6.6.4 public과 비 public 클래스 접근 예제 141
6.6.5 필드, 메소드, 생성자의 디폴트 접근 예제 142
6.6.6 public 필드, 메소드, 생성자 접근 예제 143
6.6.7 protected 필드, 메소드, 생성자 접근 예제 143
6.6.8 private 필드, 메소드, 생성자 접근 예제 144
6.7 완전한정명과 정규명 145
6.8 명명 규칙 146
6.8.1 패키지명 147
6.8.2 클래스명과 인터페이스명 147
6.8.3 타입 변수명 148
6.8.4 메소드명 149
6.8.5 필드명 150
6.8.6 상수명 150
6.8.7 지역변수명과 매개변수명 151
7장 패키지 153
7.1 패키지 멤버 153
7.2 패키지를 위한 호스트 지원 154
7.2.1 파일 시스템에 패키지 저장하기 155
7.2.2 데이터베이스에 패키지 저장하기 156
7.3 컴파일 단위 157
7.4 패키지 선언 158
7.4.1 기명 패키지 158
7.4.1.1 패키지 어노테이션 158
7.4.2 무기명 패키지 159
7.4.3 패키지의 유효성 159
7.4.4 패키지 선언의 유효범위 160
7.5 임포트 선언 160
7.5.1 단일 타입 임포트 선언 161
7.5.2 요청 타입 임포트 선언 163
7.5.3 단일 정적 임포트 선언 163
7.5.4 요청 정적 임포트 선언 165
7.5.5 자동 임포트 165
7.5.6 비정상적인 예 165
7.6 최상위 타입 선언 166
7.7 유일한 패키지명 170
8장 클래스 173
8.1 클래스 선언 174
8.1.1 클래스 제한자 175
8.1.1.1 추상 클래스 176
8.1.1.2 final 클래스 178
8.1.1.3 strictfp 클래스 178
8.1.2 제네릭 클래스와 타입 매개변수 178
8.1.3 내부 클래스와 인클로징 인스턴스 181
8.1.4 상위클래스와 하위클래스 183
8.1.5 상위인터페이스 185
8.1.6 클래스 바디와 멤버 선언 189
8.2 클래스 멤버 190
8.2.1 상속의 예 191
8.2.1.1 디폴트 접근을 갖는 상속 예제 191
8.2.1.2 public과 protected의 상속 192
8.2.1.3 private의 상속 193
8.2.1.4 접근 불가능한 클래스의 멤버에 대한 접근 193
8.3 필드 선언 195
8.3.1 필드 제한자 197
8.3.1.1 정적 필드 197
8.3.1.2 final 필드 198
8.3.1.3 transient 필드 199
8.3.1.4 volatile 필드 199
8.3.2 필드 초기화 200
8.3.2.1 클래스 변수 초기자 201
8.3.2.2 인스턴스 변수 초기자 202
8.3.2.3 초기화 중 필드 사용의 제한 202
8.3.3 필드 선언의 예 205
8.3.3.1 클래스 변수 숨김 예제 205
8.3.3.2 인스턴스 변수 숨김 예제 206
8.3.3.3 다중상속필드 예제 207
8.3.3.3 필드의 재상속 예제 209
8.4 메소드 선언 210
8.4.1 형식 매개변수 211
8.4.2 메소드 서명 213
8.4.3 메소드 제한자 214
8.4.3.1 추상 메소드 215
8.4.3.2 정적 메소드 217
8.4.3.3 final 메소드 217
8.4.3.4 native 메소드 218
8.4.3.5 strictfp 메소드 219
8.4.3.6 synchronized 메소드 219
8.4.4 제네릭 메소드 220
8.4.5 메소드 리턴 타입 221
8.4.6 메소드 throws 절 222
8.4.7 메소드 바디 224
8.4.8 상속, 오버라이딩, 숨기기 224
8.4.8.1 인스턴스 메소드 오버라이딩 225
8.4.8.2 클래스 메소드 숨기기 226
8.4.8.3 오버라이딩과 숨기기의 조건 226
8.4.8.4 오버라이드 동등한 서명을 갖는
메소드 상속하기 229
8.4.9 오버로딩 230
8.4.10 메소드 선언의 예 230
8.4.10.1 오버라이딩 예제 231
8.4.10.2 오버로딩, 오버라이딩, 숨기기 예제 231
8.4.10.3 부정확한 오버라이딩 예 232
8.4.10.4 오버로딩과 숨기기 비교 예제 232
8.4.10.5 숨겨진 클래스 메소드의 호출 예제 234
8.4.10.6 오버라이딩에 대한 예제 235
8.4.10.7 throws로 인한 부정확한 오버라이딩 예제 237
8.5 멤버 타입 선언 238
8.5.1 제한자 238
8.5.2 정적 멤버 타입 선언 238
8.6 인스턴스 초기자 239
8.7 정적 초기자 240
8.8 생성자 선언 240
8.8.1 형식 매개변수와 형식 타입 매개변수 241
8.8.2 생성자 서명 241
8.8.3 생성자 제한자 241
8.8.4 제네릭 생성자 242
8.8.5 생성자 throws 절 243
8.8.6 생성자의 타입 243
8.8.7 생성자 바디 243
8.8.7.1 명시적 생성자 호출 244
8.8.8 생성자 오버로딩 247
8.8.9 디폴트 생성자 247
8.8.10 클래스의 인스턴스화 막기 248
8.9 열거형 249
9장 인터페이스 259
9.1 인터페이스 선언 260
9.1.1 인터페이스 제한자 260
9.1.1.1 추상 인터페이스 261
9.1.1.2 strictfp 인터페이스 261
9.1.2 제네릭 인터페이스와 타입 매개변수 261
9.1.3 상위인터페이스와 하위인터페이스 262
9.1.4 인터페이스 바디와 멤버 선언 263
9.1.5 인터페이스 멤버명에 대한 접근 263
9.2 인터페이스 멤버 264
9.3 필드(상수) 선언 264
9.3.1 인터페이스 내 필드의 초기화 265
9.3.2 필드 선언의 예 266
9.3.2.1 모호하게 상속된 필드 266
9.3.2.2 여러 번 상속된 필드 266
9.4 추상 메소드 선언 267
9.4.1 상속과 오버라이딩 268
9.4.2 오버로딩 269
9.4.3 추상 메소드 선언의 예 269
9.3.3.1 오버라이딩 예제 269
9.3.3.2 오버로딩 예제 270
9.5 멤버 타입 선언 270
9.6 어노테이션 타입 271
9.6.1 미리 정의된 어노테이션 타입 278
9.6.1.1 Target 278
9.6.1.2 Retention 278
9.6.1.3 Inherited 279
9.6.1.4 Override 279
9.6.1.5 SuppressWarnings 280
9.6.1.6 Deprecated 281
9.7 어노테이션 281
10장 배열 287
10.1 배열 타입 288
10.2 배열 변수 288
10.3 배열 생성 289
10.4 배열 접근 289
10.5 배열의 간단한 예 290
10.6 배열 초기자 290
10.7 배열 멤버 292
10.8 배열의 Class 객체 293
10.9 문자의 배열은 String이 아니다 294
10.10 배열 저장 예외 294
11장 예외 297
11.1 예외의 원인 298
11.2 컴파일 시 예외 검사 298
11.2.1 표현식의 예외 분석 299
11.2.2 문장의 예외 분석 299
11.2.3 예외 검사 300
11.2.4 에러를 검사하지 않는 이유 301
11.2.5 런타임 예외를 검사하지 않는 이유 301
11.3 예외 처리 301
11.3.1 예외의 정확성 302
11.3.2 비동기 예외 처리 303
11.4 예제 304
11.5 예외 계층 306
11.5.1 로드와 링크 에러 306
11.5.2 가상머신 에러 307
12장 실행 309
12.1 가상머신 기동 309
12.1.1 Test 클래스 로드 310
12.1.2 Test 클래스 링크: 검증, 준비, 분석 310
12.1.3 Test 클래스 초기화: 초기자 실행 311
12.1.4 Test.main 호출 312
12.2 클래스와 인터페이스 로딩 312
12.2.1 로딩 절차 313
12.3 클래스와 인터페이스 링크 314
12.3.1 바이너리 표현 검증 314
12.3.2 클래스나 인터페이스 타입 준비 315
12.3.3 기호 참조 분석 315
12.4 클래스와 인터페이스 초기화 316
12.4.1 초기화 실행 시 316
12.4.2 구체적인 초기화 절차 319
12.4.3 초기화: 코드 생성의 결과 321
12.5 클래스의 인스턴스 신규 생성 321
12.6 클래스 인스턴스 종료 325
12.6.1 종료 구현 326
12.6.1.1 메모리 모델과의 상호작용 328
12.6.2 비순차적 소멸자 호출 329
12.7 클래스와 인터페이스 언로딩 330
12.8 프로그램 종료 331
13장 바이너리 호환성 333
13.1 바이너리 형태 334
13.2 바이너리 호환성과 비호환성 337
13.3 패키지 변경 338
13.4 클래스 변경 339
13.4.1 추상 클래스 339
13.4.2 final 클래스 339
13.4.3 public 클래스 339
13.4.4 상위클래스와 상위인터페이스 339
13.4.5 클래스 형식 타입 매개변수 341
13.4.6 클래스 바디와 멤버 선언 341
13.4.7 멤버와 생성자로의 접근 343
13.4.8 필드 선언 344
13.4.9 final 필드와 생성자 346
13.4.10 정적 필드 349
13.4.11 transient 필드 349
13.4.12 메소드와 생성자 선언 349
13.4.13 메소드와 생성자의 형식 타입 매개변수 350
13.4.14 메소드와 생성자의 매개변수 351
13.4.15 메소드 리턴 타입 351
13.4.16 추상 메소드 351
13.4.17 final 메소드 352
13.4.18 native 메소드 353
13.4.19 정적 메소드 353
13.4.20 synchronized 메소드 353
13.4.21 메소드와 생성자의 throws 절 353
13.4.22 메소드와 생성자 바디 353
13.4.23 메소드와 생성자 오버로딩 354
13.4.24 메소드 오버로딩 355
13.4.25 정적 초기자 355
13.4.26 열거형의 변경 355
13.5 인터페이스의 변경 356
13.5.1 public 인터페이스 356
13.5.2 상위인터페이스 356
13.5.3 인터페이스 멤버 356
13.5.4 인터페이스 형식 타입 매개변수 357
13.5.5 필드 선언 357
13.5.6 추상 메소드 선언 357
13.5.7 어노테이션 타입의 변경 358
14장 블록과 문장 359
14.1 문장의 정상 및 비정상 종료 360
14.2 블록 361
14.3 지역 클래스 선언 361
14.4 지역변수 선언문 363
14.4.1 지역변수 선언자와 타입 364
14.4.2 지역변수 선언 유효범위 365
14.4.3 지역변수에 의한 이름 감춤 367
14.4.4 지역변수 선언의 실행 368
14.5 문장 368
14.6 빈 문장 370
14.7 라벨 있는 문장 371
14.8 표현문 372
14.9 if 문 373
14.9.1 if-then 문 373
14.9.2 if-then-else 문 374
14.10 assert 문 374
14.11 switch 문 378
14.12 while 문 382
14.12.1 비정상 종료 383
14.13 do 문 383
14.13.1 비정상 종료 384
14.13.2 예제 384
14.14 for 문 385
14.14.1 기본 for 문 385
14.14.1.1 for 문의 초기화 386
14.14.1.2 for 문의 반복 386
14.14.1.3 for 문의 비정상 종료 387
14.14.2 향상된 for 문 388
14.15 break 문 390
14.16 continue 문 392
14.17 return 문 393
14.18 throw 문 394
14.19 synchronized 문 396
14.20 try 문 397
14.20.1 try-catch 실행 400
14.20.2 try-catch-finally 실행 401
14.21 도달 불가능한 문장 403
15장 표현식 409
15.1 평가, 지시, 결과 409
15.2 값으로서의 변수 410
15.3 표현식의 타입 410
15.4 FP-strict 표현식 410
15.5 표현식과 실행 시 검증 411
15.6 평가의 정상 종료 및 비정상 종료 412
15.7 평가 순서 414
15.7.1 왼쪽 피연산자 우선 평가 414
15.7.2 연산 전 피연산자 평가 416
15.7.3 괄호와 우선순위를 고려한 평가 417
15.7.4 인자 목록의 좌측 우선 평가 418
15.7.5 그 밖의 표현식에 대한 평가 순서 419
15.8 기본 표현식 419
15.8.1 어휘 리터럴 420
15.8.2 클래스 리터럴 420
15.8.3 this 421
15.8.4 한정 this 422
15.8.5 괄호 표현식 422
15.9 클래스 인스턴스 생성식 423
15.9.1 인스턴스화할 클래스의 결정 424
15.9.2 인클로징 인스턴스 결정 425
15.9.3 생성자와 인자 선택 427
15.9.4 클래스 인스턴스 생성식의 실행 시 평가 427
15.9.5 익명클래스 선언 428
15.9.5 익명 생성자 428
15.9.6 예제 : 평가 순서와 Out-of-Memory 검출 429
15.10 배열 생성식 430
15.10.1 배열 생성식의 실행 시 평가 432
15.10.2 예제 : 배열 생성 평가 순서 433
15.10.3 예제 : 배열 생성과 Out-of-Memory 찾기 434
15.1 필드 접근식 435
15.11.1 기본 표현식을 이용한 필드 접근 435
15.11.2 super를 이용한 상위클래스 멤버 접근 438
15.12 메소드 호출식 440
15.12.1 컴파일 시 단계 : 찾을 클래스나 인터페이스 결정 440
15.12.2 컴파일 시 단계 2: 메소드 서명 결정 442
15.12.2.1 잠재적 적용가능 메소드 식별 443
15.12.2.2 페이즈 1: 하위타입화을 통해 적용가능한
적합 arity 메소드 식별 445
15.12.2.3 페이즈 2: 메소드 호출 형변환을 통해
적용가능한 적합 arity 메소드 식별 446
15.12.2.4 페이즈 3: 적용가능한
가변길이 메소드 식별 446
15.12.2.5 최적 메소드 선택 447
15.12.2.6 메소드 리턴 타입과 throws 타입 450
15.12.2.7 실인자에 기초한 타입 인자 추론 451
15.12.2.8 분석되지 않은 타입 인자 추론 466
15.12.2.9 예제 466
15.12.2.10 모호한 오버로딩 예제 468
15.12.2.1 리턴 타입 무시 예제 468
15.12.2.12 컴파일 시 분석 예제 469
15.12.3 컴파일 단계 3: 적정 메소드 선택 확인 471
15.12.4 실행 시 메소드 호출 평가 473
15.12.4.1 (필요 시) 목표 참조 계산 473
15.12.4.2 인자 평가 474
15.12.4.3 타입과 메소드의 접근가능성 확인 475
15.12.4.4 호출 대상 메소드 위치 확정 476
15.12.4.5 프레임 생성, 동기화, 제어 이동 477
15.12.4.6 목표 참조와 정적 메소드 예제 479
15.12.4.7 평가 순서 예제 479
15.12.4.8 오버라이딩 예제 480
15.12.4.9 super를 이용한 메소드 호출 예제 482
15.13 배열 접근식 483
15.13.1 실행 시 배열 접근 평가 483
15.13.2 배열 접근 평가 순서 예제 484
15.14 후행 표현식 486
15.14.1 표현식명 486
15.14.2 후행 증가 연산자 ++ 486
15.14.3 후행 감소 연산자 -- 487
15.15 단항 연산자 488
15.15.1 선행 증가 연산자 ++ 488
15.15.2 선행 감소 연산자 -- 489
15.15.3 단항 덧셈 연산자 + 489
15.15.4 단항 뺄셈 연산자 - 490
15.15.5 비트 보수 연산자 ~ 490
15.15.6 논리 보수 연산자 ! 491
15.16 형변환 표현식 491
15.17 배수 연산자 492
15.17.1 곱셈 연산자 * 492
15.17.2 나눗셈 연산자 / 493
15.17.3 나머지 연산자 % 495
15.18 부가 연산자 496
15.18.1 문자열 연결 연산자 + 497
15.18.1.1 문자열 형변환 497
15.18.1.2 문자열 연결 최적화 498
15.18.1.3 문자열 연결 예제 498
15.18.2 숫자형의 부가 연산자(+와 -) 500
15.19 이동 연산자 501
15.20 관계 연산자 503
15.20.1 숫자 비교 연산자 <, <=, >, >= 503
15.20.2 타입 비교 연산자 instanceof 504
15.2 동등비교 연산자 505
15.21.1 숫자 동등비교 연산자 ==과 != 506
15.21.2 Boolean 동등비교 연산자 ==와 != 506
15.21.3 참조 동등비교 연산자 ==과 != 507
15.22 비트 연산자와 논리 연산자 507
15.22.1 정수형 비트 연산자 &, ^, | 508
15.22.2 Boolean 논리 연산자 &, ^, | 508
15.23 조건 And 연산자 && 508
15.24 조건 Or 연산자 || 509
15.25 조건 연산자 ? : 510
15.26 할당 연산자 512
15.26.1 단순 할당 연산자 = 513
15.26.2 복합 할당 연산자 519
15.27 표현식 525
15.28 상수 표현식 526
16장 명시적인 할당 527
16.1 명시적인 할당과 표현식 533
16.1.1 Boolean 상수식 533
16.1.2 Boolean 연산자 && 533
16.1.3 Boolean 연산자 || 534
16.1.4 Boolean 연산자 ! 534
16.1.5 Boolean 연산자 ?: 534
16.1.6 조건 연산자 ?: 535
16.1.7 boolean 형의 다른 표현식 535
16.1.8 할당 표현식 535
16.1.9 ++ 와 -- 연산자 536
16.1.10 나머지 표현식 536
16.2 명시적 할당과 문장 538
16.2.1 빈 문장 538
16.2.2 블록 538
16.2.3 지역 클래스 선언문 539
16.2.4 지역변수 선언문 540
16.2.5 라벨 있는 문장 540
16.2.6 표현문 540
16.2.7 if 문 541
16.2.8 assert 문 541
16.2.9 switch 문 542
16.2.10 while 문 542
16.2.11 do 문 543
16.2.12 for 문 543
16.2.12.1 초기화 부분 544
16.2.12.2 증가 부분 544
16.2.13 break, continue, return, throw 문 545
16.2.14 synchronized 문 545
16.2.15 try 문 545
16.3 명시적 할당과 매개변수 547
16.4 명시적 할당과 배열 초기자 547
16.5 명시적 할당과 열거형 상수 548
16.6 명시적 할당과 익명 클래스 548
16.7 명시적 할당과 멤버 타입 549
16.8 명시적 할당과 정적 초기자 549
16.9 명시적 할당과 생성자, 인스턴스 초기자 550
17장 스레드와 잠금 553
17.1 잠금(Locks) 554
17.2 예제 표기법 554
17.3 부적절하게 동기화된 프로그램의 동작 555
17.4 메모리 모델 557
17.4.1 공유 변수 558
17.4.2 액션 558
17.4.3 프로그램과 프로그램 순서 560
17.4.4 동기화 순서 561
17.4.5 선행(Happens-before) 순서 562
17.4.6 실행 567
17.4.7 올바르게 구성된(Well-formed) 실행 568
17.4.8 실행 및 인과관계 요구사항 568
17.4.9 식별 가능한 동작과 끝나지 않는 실행 571
17.5 Final 필드 의미론 573
17.5.1 Final 필드의 의미론 575
17.5.2 생성 중 Final 필드 읽기 576
17.5.3 Final 필드의 추후 수정 576
17.5.4 쓰기 방지(write-protected) 필드 578
17.6 워드 찢기(Word Tearing) 578
17.7 double과 long의 비 원자적(Non-atomic) 처리 580
17.8 대기 집합과 통보(Notification) 580
17.8.1 대기 580
17.8.2 통보(Notification) 582
17.8.3 인터럽션(Interruption) 582
17.8.4 대기, 통보, 인터럽션의 상호작용 583
17.9 일시 정지(sleep)와 양보(yidld) 583
18장 문법 585
18.1 자바 프로그래밍 언어의 문법 585