목차
제1장 자바 시작하기
1. 컴퓨터 인터넷에서 JDK 다운로드 = 21
2. JAVA 개발자 킷(JDK) 설치 = 22
3. 매킨토시 플래트 홈에서의 JDK 설치 방법 = 26
4. 썬 솔 라이스 컴퓨터 위에서의 JDK 설치 = 27
5. PC를 위한 자바 통합 개발환경 = 28
6. Applet HTML 페이지 = 29
7. Applet의 초기 설정 = 30
8. Applet의 위치를 명시하기 위한 코드베이스 이용 = 30
9. Applet을 이용한 자바 애플릿 실행 = 31
10. 넷스케이프 네비게이터 인스톨하기 = 31
11. 자바에 대한 넷스케이프 구성 = 32
12. 넷스케이프를 이용한 자바애플릿 실행 = 32
13. Microsoft의 인터넷 Explorer를 다운로드하기 = 33
14. 인터넷 Explorer 설치 = 33
15. JAVA를 위해 인터넷 Explorer 구성하기 = 33
16. 인터넷 Explorer를 이용한 자바 Applet 실행 = 34
17. Untrusted JAVA Applet 윈도우 경고 = 34
18. ClassFramatError 예외를 이해하기 = 35
19. 초기화되지 않은 넷스케이프의 Applet = 35
20. JAVE, J++, OpenJBulder(Latte), afe를 이해하기 = 36
21. JAVA에서 문서를 얻는 방법 = 37
22. 전산 프로그램 개발과정의 이해 = 37
23. 파일 유형들에 대한 이해 = 38
24. JAVA의 시스템 콘솔 이해 = 38
25. ASCⅡ 원시파일 만들기 = 39
26. HTML 원시파일 만들기 = 40
27. 자바컴파일러를 이용한 자바 컴파일 = 40
28. JAVAC 컴파일러를 이해하기 = 41
29. javac_g는 무엇인가? = 42
30. 윈도우즈와 유닉스 위에서 자바원시코드를 컴파일하기 = 42
31. 컴파일러 경고와 에러를 이해하기 = 43
32. JAVAC 출력을 최적화하기 = 43
제2장 자바 맛보기
1. 자바의 탄생 배경, 영향 및 그 전망 = 45
1) 배경 = 45
2) 자바가 소프트웨어 개발기술에 대한 영향 = 46
3) 컴퓨터 업계에서 자바에 대한 평가 = 46
4) 자바의 응용전망 = 47
2. 자바의 특징 = 47
1) 자바언어 = 48
2) 자바 애플릿 = 50
3) 풍부한 패키지 = 50
3. Hello Java 프로그램 = 51
1) 자바 애플릿과 응용 = 55
2) 간단한 자바 애플릿의 구조 = 55
3) "Hello world" 자바 애플릿 = 56
4) "Hello world" 애플릿 실행 = 57
5) 간단한 자바응용의 구조 = 57
6) JAVA 응용 프로그램 실행 = 58
7) JAVA 인터 프리터 = 58
8) 코드 블록에 대한 이해 = 59
9) JAVA는 대소문자를 구별 = 60
10) 문자 에러 = 61
11) 프로그램 컴파일 과정 = 61
12) 클래스 파일 유형 = 61
13) CLASSES.ZIP 파일을 이해하기 = 62
14) import문 = 62
15) 자바 키워드 = 63
16) 변수(Variables) = 65
17) 자바의 변수와 자료형 = 65
18) 자바 리터럴 = 67
19) 자바에서 유니코드 = 69
20) 원시적 데이터유형 불리안(boolean) = 69
21) 변수선언문에서 초기값을 할당하기 = 70
22) 원시적인 데이터유형을 캐스트할 필요가 없는 경우 = 71
23) 문자와 문자열 리터럴에서의 에스케이프 시퀀스 = 71
24) System.out.println을 가지고 원시적인 데이터유형을 나타내기 = 72
25) 우선순위와 결합성 = 73
26) 특정한 업무를 수행하는 함수 = 74
4. 객체지향 프로그래밍 = 76
1) 하나의 클래스 변수인 객체 = 76
2) 객체지향 프로그래밍에 대한 이해 = 76
3) 추상화에 대한 이해 = 77
4) 캡슐화(capsulation)에 대한 이해 = 77
5) 상속(inheritance)에 대한 이해 = 77
6) 메소드에 대한 이해 = 78
7) 메소드 싸인을 이해하기 = 79
8) 생성자 메소드에 대한 이해 = 79
9) 오버로딩 생성자 메소드 = 81
10) 다형성에 대한 이해(1) : 오버로딩 유형 = 82
11) 다형성에 대한 이해(2) : 오버라이딩 유형 = 82
12) 추상화에 대한 이해 = 84
13) 자바에서의 상속 = 85
14) 인터페이스 이해하기 = 86
15) 전역상수들에 대한 인터페이스 이용 = 89
16) 상속을 선택하는 시점을 이해하기 = = 89
17) 포함관계(Containment)를 선택하기 = 89
18) 메소드와 클래스의 확장을 제한하기 = 90
19) 메소드와 클래스 확장을 강화하기 = 90
20) 콜백(callback) 메소드를 만들기 위해 인터페이스를 이용 = 91
연습문제 = 94
제3장 변수와 자료형
1. 데이터 유형 = 97
2. 상수와 변수 = 98
1) 상수 = 98
2) 변수 = 99
3. 정수형 데이터 = 101
1) 정수형 상수 = 101
2) 정수형 변수 = 102
3) 정수형 변수의 정의 = 102
4. 부동소수점(실수형) 데이터 = 103
1) 실수형 상수 = 103
2) 실수형 변수 = 103
3) 실수형 변수 정의 = 103
5. 문자형 데이터 = 104
1) 문자형 상수 = 104
2) 문자열 상수 = 104
6. 불리안(boolean) 형 데이터 = 105
7. 예제 프로그램 = 105
8. 각 클래스의 수치 데이터간의 혼합연산 = 106
1) 강제 데이터 유형의 전환 = 108
제4장 자바의 연산자와 수식
1. 산술 연산자 = 110
2. 관계 연산자 = 112
3. 부울 논리 연산자 = 113
4. 비트 연산자 = 114
1) 보수 = 115
2) ∼연산자 = 115
3) & 연산자 = 116
4) 비트 연산자(Ⅰ) = 116
5) 비트 연산자(^) = 118
6) 좌 쉬프트 연산자(<<) = 118
7) 우 쉬프트 연산자(》) = 118
8) 크기가 같지 않은 데이터의 비트 연산 = 118
9) 비트 연산의 응용 = 118
5. 치환 연산자 = 120
1) 치환연산자(=) = 120
2) 복합 치환연산자 = 122
6. 조건 연산자 = 123
7. 수식 = 123
제5장 자바의 제어문
1. 분기문 = 126
1) 조건문 if-else = 126
2) 조건문 switch = 127
3) 순환문 while = 129
4) 순환문 do-while = 130
5) 순환문 switch = 131
제6장 자바의 배열
1. 1차원 배열 = 133
1) 1차원 배열의 정의 = 133
2) 1차원 배열 원소의 호출 = 134
3) 1차원 배열의 초기화 = 135
4) 1차원 배열에 대한 예제 프로그램 = 136
2. 다차원 배열 = 138
1) 2차원 배열의 정의 = 138
2) 2차원 배열의 조회 = 138
3) 2차원 배열의 초기화 = 139
4) 2차원 배열에 대한 프로그램 = 139
5) 다차원 배열 = 141
3. 다차원 배열 선언 = 141
1) 다차원 배열 만들기 = 142
2) 다차원 배열을 통한 루핑(looping) = 142
3) 불균형 배열을 이해하기 = 143
4) 다차원 배열을 초기화하기 = 144
4. 특정한 값에 대한 배열을 탐색하기 = 144
5. 이진 탐색의 이해 = 146
1) 이진 탐색 이용 = 146
6. 배열을 분류하기 = 148
7. 버블소트 = 148
8. 퀵소트(Quick sort) = 150
9. 원시 데이터 유형의 계열에 대해서 arraycopy를 이용 = 151
10. 원객체의 배열에 대한 ArrayCopy를 이용하기 = 153
11. 한 배열 안에서 서로 다른 객체를 저장하기 = 155
제7장 객체·클래스·패키지·인터페이스
1. 객체지향 프로그램 설계 = 157
1) 객체 클래스와 정보 = 158
2) 상속 = 158
3) 오버로딩 = 158
2. 클래스 = 159
1) 클래스 선언 = 159
2) 클래스체 = 159
3) 멤버변수 = 160
4) 메소드 = 161
5) 메소드 다시 쓰기 = 162
6) 생성자 = 164
7) finalize() 메소드 = 165
3. 객체 = 165
1) 객체의 생성 = 165
2) 객체의 사용 = 166
3) 객체 소멸 = 167
4. 슈퍼클래스, 서브클래스의 상속 = 167
1) 서브 클래스 만들기 = 167
2) 멤버변수의 은닉과 메소드의 오버라이딩 = 168
3) Super = 169
4) 실행시의 오버로딩 = 169
5) final 클래스와 메소드 = 169
6) abstract 클래스와 메소드 = 170
7) java.lang.Object 클래스 = 170
5. 패키지 = 171
1) package 문 = 172
2) import 문 = 172
3) 컴파일과 실행 패키지 = 172
6. 인스턴스 멤버와 클래스 멤버 = 173
1) 인스턴스 변수와 클래스 변수 = 173
2) 인스턴스 메소드와 클래스 메소드 = 173
7. 인터페이스 = 175
1) 인터페이스의 정의 = 176
2) 인터페이스의 실현 = 177
3) 인터페이스 클래스형 = 178
제8장 문자열과 입출력 스트림
1. String = 179
1) 사용자 메소드 = 180
2) 기본방법 = 181
2. StringBuffer = 183
1) 생성자 = 183
2) 기본메소드 = 184
3. 스트림 입출력 연산 = 187
1) 입출력 스트림에 대한 이해 = 187
2) 파일 클래스 이용 = 187
3) FilelnputStream을 이용하여 한 파일을 읽어내기 = 188
4) 입력 스트림으로부터 바이트를 읽어들이기 = 188
5) 스트림을 닫기 = 190
6) 입력 스트림으로부터 읽어 들일 때 바이트를 스킵하기 = 190
7) DataFileInputStream을 이해하기 = 191
8) DataInputStream을 이용하여 한줄을 읽기 = 192
9) LineNumberInputStream과 함께 줄 번호 추적하기 = 193
10) SequenceInputStream을 이해하기 = 194
11) FileOutputStream을 이용하여 파일에 수록하기 = 195
12) 출력 스트림에 바이트들을 수록하기 = 196
13) 데이터 출력 스트림 이용 = 196
14) 랜덤 액세스 파일 이용 = 197
15) SEEK로 랜덤 액세스 파일안에 정보를 찾기 = 197
16) PrintStream에 대한 이해 = 199
17) 바이트 배열 Input / Output 스트림을 이용 = 200
18) StringBufferInputStream 이용 = 201
19) 스트림 버퍼된 입출력 스트림 = 202
20) pushbackInputStream 이용 = 203
21) PrintStream과 함께 프린터 작성 = 203
22) 파일 클래스를 이용하여 파일 경로 정보 얻기 = 204
23) 디렉토리에서 파일을 리스트하기 = 204
24) 메소드 list에서 파일이름 Filter를 이용 = 205
25) 파일의 크기를 얻기 = 206
26) 파일 수정시간 얻기 = 207
27) 디렉토리 만들기 = 208
28) 파일이 경로에서 모든 디렉토리 만들기 = 208
29) 파일 이름을 바꾸기 = 209
30) 파일의 Read와 Write, 엑세스를 결정하기 = 209
31) 파일을 삭제 = 210
32) 순환적 디렉토리 리스트 = 210
제9장 예외처리
1. 예외처리 = 214
1) 실행시 예외 = 214
2) 예외 포착 = 215
제10장 멀티스레드
1. 스레드(Thread) = 217
1) 스레드 본체 = 218
2) 스레드의 상태 = 218
3) 기타 = 221
2. 스레드 몸체의 구조 = 222
1) 구조 스레드 몸체 상속을 통하여 = 222
2) 인터페이스를 통하여 스레드 몸체를 구성 = 224
3. 동기화와 공유 = 225
1) 생산자·소비자 문제 = 225
4. 스레드 큐에 대한 이해 = 232
5. 다른 스레드와 함께 시간을 공유 = 232
6. 스레드를 일시중지하고 다시 회복시키는 방법 = 233
7. 스레드 사이의 데이터 공유를 동기화하기 = 235
8. 데이터를 동기화하기 위한 또 다른 방법 = 237
9. 동기화된 데이터를 기다리기 = 238
10. 스레드 그룹 = 239
1) 동기화 = 241
11. 애니메이션(animation) = 247
1) 수행가능한 인터페이스 = 247
12. 애니메이션을 조정하기 위한 스레드 사용 = 249
제11장 그래픽
1. 그래픽 클래스 개념 = 253
2. 좌표 시스템 = 254
3. 그래픽 객체 얻기 = 255
4. 기하학적 요소 = 256
1) 선 = 257
2) 사각형 = 258
3) 다각형 = 260
4) 오벌(Oval) = 261
5) 호(Arc) = 261
5. 텍스토와 폰트 = 262
1) 폰트 객체 생성 = 262
2) 문자와 문자열 그리기 = 263
3) 폰트에 관한 정보를 얻기 = 264
6. 색깔(Color) = 265
1) Color 객체 이용 = 266
2) 현재 색의 테스트와 설정 = 267
7. 애플릿과 그래픽 = 268
1) 애플릿 클래스 계층구조 = 268
2) 애플릿 매개 변수 = 268
3) 애플릿과 브라우저와의 통신 = 269
제12장 역동적 데이터 구조
1. 링크 리스트 = 271
1) 단일 링크 리스트의 중간에 항목을 삽입 = 274
2) 단일 링크 리스트로부터 항목을 삭제 = 274
2. 이중 링크 리스트 = 275
1) 이중 링크 리스트의 중간에 항목을 삽입 = 277
2) 이중 링크 리스트의 중간에 있는 항목을 삭제 = 278
3) 링크 리스트를 파일에 저장 = 279
4) 파일로부터 링크 리스트를 적재 = 279
3. 큐(Queues) = 281
4. 이진 트리 = 282
5. 해쉬 테이블 = 282
1) 해쉬 테이블 저장 용량과 코드 인수 설정 = 284
2) 열거형(Enumeration)을 이용해서 해쉬 테이블 원소들을 액세스 = 284
6. 스택(stack) = 285
1) 자바에서 스택을 이용 = 286
2) 스택에서 한 항목을 탐색 = 287
3) 스택에 기반을 둔 계산기 = 288
4) 열거형(Enumeration) 인터페이스 구현 = 291
제13장 네트워크
1. 네트워크의 기초개념 = 293
1) 클라이언트 서버 애플리케이션 = 294
2) 소켓 = 296
3) 인터넷 주소 = 297
4) 애플릿 내의 링크 만들기 = 299
2. 자바에서의 네트워크 = 299
1) 인터넷 = 300
2) TCP / IP = 300
3) 프로토콜 = 301
4) 포트(port) 번호 = 305
5) URL(Universal Resource Locator) = 306
6) 브라우저에 HTML 문서를 디스플레이 하기 위한 여러 가지 방식 = 309
7) 애플릿의 HTML 페이지의 URL을 얻기 = 309
8) 애플릿의 코드베이스의 URL 얻기 = 310
9) 애플릿의 코드베이스의 URL 얻기 = 311
10) 인터넷을 통한 파일 읽기 = 311
11) 컨텐츠 유형과 서브타입 = 312
12) 서버와 폰트 사이의 관계 = 315
13) 서버가 멀티스레딩을 해야 하는 이유 = 316
14) 클라이언트가 멀티스레딩을 해야 하는 이유 = 317
15) 단일 파일 안에서 클라이언트 서버 = 318
16) 채트(chat) 영역 = 318
제14장 데이터 베이스와 연결 : JDBC 327
1. 기초사항 = 335
1) JDBC = 336
2) SQL = 336
3) JDBC 서브 프로토콜 이름은 무엇인가? = 338
4) JDBC URL을 명시하는 방법 = 338
5) SQL 질의어를 만드는 방법 = 341
6) ResultSet를 이용하여 Query의 결과들을 얻기 = 341
7) SQL은 자바 데이터 유형 사상을 이해하기 = 342
8) 규모가 큰 데이터 원소들을 읽기 위한 InputStream을 이용하기 = 343
9) PreparedStatement를 이용하기 = 344
10) 메소드 setxxx를 이해하기 = 345
11) Right setxxx 메소드를 선택하기 = 346
12) 매개변수에 NULL을 호출하기 = 346
13) 데이터 절사를 이해하기 = 347
14) java SQL.Numeric 패키지를 이해하기 = 347
15) java SQL.Date 패키지를 이해하기 = 347
16) java.sql.timestamp 클래스에 대한 이해 = 348
2. JDBC 프로그래밍 = 345
1) 데이터베이스 URL = 349
2) 데이터베이스와 연결 = 349
3) 질의문 수행 = 350
4) 데이터베이스 만들기 = 352
5) 메타데이터(Meta data) = 353
제15장 자바 스크립트
1. 자바스크립트(JavaScript) = 355
2. 자바스크립트 값, 변수와 리터럴 = 356
1) 값 = 357
2) 데이터 유형변환 = 357
3) 변수 범위 = 359
4) 리터럴 = 359
3. 수식과 연산자 = 360
1) 수식 = 361
4. 자바스크립트 연산자 = 361
1) 산술 연산자 = 362
2) 관계 연산자 = 363
3) 논리 연산자(TRUE 또는 FALSE) = 364
4) 비트별 연산자 = 364
5) 우선순위 = 366
6) 조건식 = 367
7) 문자열 연산자 = 367
8) 자바 스크립트 명령문 = 368
5. 조건문 = 368
6. 루프(loop) = 370
1) for( ) = 370
2) While( ) = 370
7. 주석 = 371
8. 함수 = 372
9. 객체와 속성 = 372
10. 문서 객체 = 373
11. 이벤트 처리 = 374
12. 윈도우 열고 닫기 = 375
13. 객체 처리 명령문과 연산자 = 376
1) 키워드 this = 376
2) 연산자 new = 377
3) for ... in = 378
4) with = 379
제16장 그래픽 프로그래밍
1.
1) 성탄나무 그리기 = 382
2) 다각형 그리기 = 382
3) 촛불 그리기 = 383
4) 구형, 원, 사다리꼴 등을 출력하는 프로그램 = 383
5) 글씨체를 변경하는 프로그램 = 384
6) 화면에 "Hello World Cup"을 출력하기 = 384
7) 폰트를 골라서 원하는 위치에 문자열을 나타내기 = 385
8) 색깔을 사각형으로 출력하는 프로그램 = 386
9) 색깔 조정하기 = 386
2. 배경그림+그림 = 387
제17장 추상윈도우 툴킷(AWT)
1.
1) 문자들을 화면에 나타내기 = 389
2) 색을 가지고 그리기 = 391
3) 사전정의된 색깔 이용 = 392
4) 새로운 색깔 만들기 = 393
5) 간단한 막대차트 만들기 = 394
6) 파이차트 그리기 = 396
7) 두 직사각형이 교차하는지를 점검 = 397
8) 점이 다각형안에 있는지를 점검 = 398
9) 메소드 getGraphics 이용 = 400
10) 직사각형 모양의 클리핑 영역 설정하기 = 400
11) 그래픽 객체를 복사하기 위한 메소드 create 이용 = 401
12) 라벨(label)을 만들기 = 403
13) 명령어 버튼 만들기 = 404
14) 버튼의 라벨 변경 = 405
15) Checkbox와 CheckboxGroup = 406
16) Checkbox 만들기 = 408
17) 옵션버튼 그룹을 만들기 위한 CheckboxGroup 이용 = 410
18) 체크박스 그룹(옵션버튼) 상태를 얻기 = 411
19) 텍스트 필드 만들기 = 413
20) 텍스트 필드에 엔터(Enter)키를 탐지하기 = 414
21) 텍스트 영역을 만들기 = 415
22) 콤보박스와 TextArea = 416
23) 대소문자 = 418
24) List 컴포넌트 = 419
25) Font의 형태 = 421
26) 동적 컴포넌트 = 425
27) Scrollbar 컴포넌트 = 427
28) Canvas 객체를 테스트 해보는 프로그램 = 432
29) 메뉴 만들기 = 436
30) 서브메뉴 만들기 = 437
31) 구구단 곱셈 연산 프로그램 = 439
32) Dialog box = 440
33) 버튼을 Enable과 disable 하기 = 443
34) OK 버튼으로 누른 다음 시작하기 = 444
35) 대화박스 만들기 = 444
36) 대화박스 응용 = 446
37) 마우스 포인터 위치 구하기 = 448
제18장 이벤트 처리 프로그래밍
1. 버튼 위에 GOOD, SUN의 글자가 출력되는 프로그램 = 451
1) 새로운 윈도우를 열고 닫기 = 453
2) 직선 그리기 = 456
3) 글자색 변경 = 458
제19장 입·출력 스트림 프로그래밍
1. 입력스트림으로부터 바이트 읽어들이기 = 461
1) DataInputStream을 이용하여 한 줄을 읽어 들이기 = 463
2) LineNumberInputStream과 줄 번호를 출력하기 = 464
3) 출력 스트림에 바이트를 출력하기 = 465
4) String BufferInputStream을 이용하기 = 467
5) mark와 reset 메소드를 이용하여 데이터를 다시 읽기 = 467
6) 디렉토리 만들기 = 469
7) 파일의 경로에 모든 디렉토리 만들기 = 470
제20장 멀티 스레드 프로그래밍
1. 스레드 우선순위 변경 = 471
1) Thread를 이용하여 글자를 출력하기 = 473
2) Thread 사용하기 = 474
3) 스레드 최소 우선순위(0)에서 최대 우선순위(7)까지 출력하기 = 476
4) 스레드가 Alive 상태인가 아닌가를 화면에 나타내 주기 = 477
5) Thread를 이용하여 화면에 두 개의 Oval 움직이기 = 478
6) 두 개의 스레드가 서로 실행권을 빼앗기 = 479
7) 동영상 애니메이션 = 480
2. 시간을 화면에 나타내기 = 482
제21장 멀티미디어 프로그래밍
1.
1) 텍스트 애니메이션 스크롤 하기 = 485
2) 원이 움직이는 프로그램 = 487
3) 이미지 이동 프로그램 = 489
4) 소리나는 프로그램 = 490
5) 피아노 프로그램 = 491
6) 애니메이션과 사운드를 동시에 즐길 수 있는 프로그램 = 493
7) 오디오 프로그램 = 495
8) 프리젠테이션 = 496
9) 아날로그 시계 = 498
제22장 네트워크 프로그래밍
1.
1) 애플릿의 HTML 페이지의 URL을 얻기 = 503
2) 애플릿의 코드베이스(CodeBase)의 URL를 얻기 = 504
3) 인터넷을 통하여 파일을 읽어내기 = 505
4) 학교 홈페이지 접속 = 506
5) Link 연결 = 507
6) Socket을 응용한 간단한 server 프로그램 = 510
7) 자바응용 프로그램에서 E-mail을 보내기 = 511
8) 간단한 Chatapplet을 만드는 프로그램 = 513
9) Connect 프로그램 = 515
10) URL를 이용하여 연결시켜 데이터 얻기 = 517
11) 홈페이지에 접속하는 프로그램 = 519
12) E-mail 전송 프로그램 = 520
제23장 데이터베이스 프로그래밍
1. 데이터베이스에 연결 = 523
2. SQL 질의어를 만드는 방법 = 524
3. ExecuteQuery = 525
보충
1. 자바의 클래스 계층도 = 527
2. java-lang과 java-applet 클래스 라이브러리 = 536
3. 클래스 object = 543
4. 접근 지정자 = 549