목차
PART 1 자바 시작하기 = 17
Lesson 01 자바란 무엇일까? = 18
STEP 01 컴퓨터와 자바의 구성을 비교해 보자 = 19
컴퓨터의 구성과 자바의 구성은 같다 = 19
자바 프로그램은 자바 가상머신에서 실행된다 = 20
STEP 02 자바 프로그램을 개발하기 위한 개발 키트 = 22
자바 소프트웨어 개발 키트를 설치하자 = 23
자바 소프트웨어 개발 환경을 설정하자 = 24
윈도우 95/98/ME에서는 어떻게 환경설정을 할까? = 25
윈도우 NT/2000/XP에서는 어떻게 환경설정을 할까? = 25
자바 개발 도구에는 어떤 것들이 있을까? = 27
자바 도큐먼트를 활용하자 = 29
연습문제 = 31
Lesson 02 자바 통합 개발 환경, 이클립스 = 32
STEP 01 이클립스란 과연 무엇인가? = 33
STEP 02 이클립스를 설치하자 = 34
이클립스는 어디에 있는가? = 34
이클립스 설치하기 = 35
이클립스의 모든 것, 워크벤치 알아보기 = 37
유용한 이클립스 자료들을 찾을 수 있는 곳 = 41
STEP 03 이클립스에서 예제 활용기 = 37
이클립스에서 예제들을 등록하자 = 37
예제 프로그램을 실행해 보자 = 40
유용한 이클립스 자료들을 찾을 수 있는 곳 = 41
연습문제 = 43
PART 2 자바 객체지향의 향기 폴폴 = 45
Lesson 03 자바 객체지향의 향기를 느끼자 = 46
STEP 01 객체지향이란 무엇일까? = 47
STEP 02 객체를 캡슐에 담다 = 50
클래스는 캡슐이다 = 50
접근을 제어하여 정보를 보호하자 = 51
객체에게 메시지를 보내다 = 52
STEP 03 클래스를 찍어내다 = 53
객체는 클래스의 인스턴스다 = 53
객체를 생성하면서 초기화 작업하기 = 54
또 다른 객체 생성자 예제 Circle 클래스 = 56
this는 무엇에 쓰는 물건인고? = 60
클래스의 인스턴스를 객체라 한다 = 62
STEP 04 클래스를 상속하다 = 63
상속(Inheritance)이란 무엇인가? = 63
상위 클래스를 상속하는 클래스를 하위 클래스라 한다 = 65
상위 자료형은 하위 자료형을 가리킬 수 있다 = 68
super는 무엇에 쓰는 물건인고? = 69
자바의 최상위 클래스 java.lang.Object = 72
STEP 05 다형성 Polymorphism 여러 형태가 존재한다 = 73
다중정의(Overloading) 여러 메소드를 같은 이름으로 정의하다 = 73
재정의(Overriding) 메소드를 상속하여 다시 정의하다 = 75
연습문제 = 77
Lesson 04 자바 프로그램에서 데이터 다루기 = 78
STEP 01 자료형과 상수를 알아보자 = 79
기본 자료형에는 무엇이 있나? = 79
정수를 나타내기 위한 자료형과 정수 상수(literal) = 80
문자를 나타내기 위한 자료형과 문자 상수 = 81
부동소수를 나타내기 위한 자료형과 부동소수 상수 = 82
true/false 값을 나타내는 boolean 자료형과 boolean 상수 = 83
데이터에 다양한 연산을 수행하는 연산자들 = 83
숫자를 더하고, 빼고, 곱하고, 나누는 산술(Arithmetic) 연산자와 부호(Sign) 연산자 = 83
숫자 1씩 증감(Increment Decrement)하는 연산자 = 84
데이터 간의 관계(Relational)를 알아보는 연산자 = 85
true/false 논리(Logical)값을 위한 연산자 = 86
데이터를 비트(Bitwise) 단위로 조작하는 연산자 = 88
변수에 값을 대입(Assignment)하는 연산자 = 89
조건(Conditional)을 따져주는 연산자 = 90
STEP 02 연산자 그들만의 우선 순위와 결합성 = 91
STEP 03 기본 자료형을 갖는 데이터의 형 변환 = 93
연습문제 = 97
Lesson 05 자바 프로그램의 구성 알아보기 = 98
STEP 01 프로그램이란 무엇인가? = 99
STEP 02 프로그램을 구성하는 기본 요소에는 어떤 것들이 있나? = 101
수식문 데이터에 대한 연산을 수행하자 = 101
식별자 변수와 메소드의 이름을 붙이자 = 102
선언문 변수와 메소드를 선언하자 = 104
주석문 프로그램에 설명을 추가하자 = 106
STEP 03 선택문을 이용하여 조건에 따라 작업하기 = 107
if 문 조건에 만족할 경우에만 작업을 수행하자 = 107
if-else문 이 작업 아니면 저 작업 둘 중 하나만 하자 = 108
다중 if-else문 각각의 조건에 맞게 작업하자 = 109
switch문 다중 if-else문을 보다 세련되게 표현하기 = 111
STEP 04 반복문을 이용하여 반복적인 작업하기 = 112
while문 당신의 조건이 만족하는 동안이라는 뜻 = 113
for문 반복 작업을 보다 세련되게 표현하기 = 114
do-while문 점점 잊어져 가는 반복문 = 115
while문 for문 do-while문 나만의 반복문 갖기 = 116
STEP 05 분기문을 이용하여 프로그램의 실행 순서 제어하기 = 117
break문을 이용하여 for, while, do-while, switch문 탈출하기 = 118
continue문을 이용하여 반복문의 처음부터 다시 시작하기 = 119
레이블 문은 break 또는 continue를 위한 위치를 지정한다 = 120
return문 메소드를 종료하고 호출한 곳으로 귀환하다 = 121
연습문제 = 123
Lesson 06 자바 객체지향의 꽃, 인터페이스 = 124
STEP 01 인터페이스(interface)란 무엇인가? = 125
STEP 02 추상적인 클래스와 메소드 선언하기 = 126
클래스를 추상화하다 = 126
메소드를 추상화하다 = 127
추상 메소드를 포함하면 반드시 추상 클래스이다 = 128
STEP 03 final 클래스와 메소드의 수정 불가 선언 = 131
final 변수는 상수를 의미한다 = 131
final 객체는 상수 객체이다 = 133
클래스와 메소드의 최종 선언 = 134
STEP 04 어게인 인터페이스 = 135
인터페이스의 개요 = 135
인터페이스의 선언과 다중 상속 = 137
연습문제 = 141
Lesson 07 자바 가상머신의 기억 체계, 메모리 모델 = 142
STEP 01 데이터의 종류에 따른 메모리 모델 = 143
STEP 02 프로그램의 실행에 따른 메모리의 변화 = 144
MemoryModelTest 클래스를 로딩할 때의 메모리 상태 = 145
자바 가상머신이 main 메소드 호출할 때의 메모리 상태 = 145
main 메소드에서 sum 메소드 호출할 때의 메모리 상태 = 146
sum 메소드에서 main 메소드로 리턴할 때의 메모리 상태 = 147
스택과 메소드의 호출 관계 = 148
STEP 03 인스턴스(객체)의 생성에 따른 메모리의 변화 = 148
자바 가상머신이 main 메소드 호출할 때의 메모리 상태 = 150
객체(인스턴스) 생성할 때의 메모리 상태 = 150
힙과 객체의 생성 = 151
STEP 04 배열 및 문자열 상수와 메모리의 변화 = 152
배열의 선언과 생성에 따른 메모리 상태 = 152
일차원 배열 및 문자열 상수에 따른 메모리 상태 = 154
배열의 생성과 값의 재할당에 따른 메모리 상태 = 155
배열의 생성과 같은 배열 객체 지정에 따른 메모리 상태 = 156
문자열 상수와 String 객체 배열에 따른 메모리 상태 = 157
다차원 배열과 메모리 모델에 따른 메모리 상태 = 158
STEP 05 명령행 매개변수 전달시의 메모리의 변화 = 160
연습문제 = 163
PART 3 자바 프로그래밍 레벨 업 = 165
Lesson 8 예외처리를 이용하여 안전한 프로그램을 작성하자 = 166
STEP 01 예외와 예외처리란 무엇인가? = 167
STEP 02 기본적인 예외처리 구문에는 무엇이 있는가? = 167
가장 단순한 예외처리 구문 try/catch 구문 = 167
완전한 예외처리 구문 try/catch/finally 구문 = 169
다양한 예외처리 기법을 익히자 = 171
STEP 03 여러 개의 예외를 처리하기 = 173
여러 개의 예외를 처리하자 = 173
여러 개의 예외를 처리하는 기법을 알아보자 = 175
모든 예외를 처리하는 만능 catch 블록을 만들어 보자 = 177
예외처리 블록과 지역 변수의 관계를 알아보자 = 178
STEP 04 중첩 예외는 어떻게 처리하는가? = 179
STEF 05 에외에는 어떤 종류가 있는가? = 182
STEP 06 에외를 던지다 = 184
연습문제 = 187
Lesson 09 패키지를 이용하여 모듈화하자 = 188
STEP 01 패키지란 무엇인가? = 189
패키지나 클래스를 import 하기 = 190
자바 기본 패키지 알아보기 = 192
STEP 02 나만의 패키지 만드는 방법 = 194
나만의 패키지를 만들자 = 194
스텝-1 : 패키지의 이름 정하기 = 194
스텝-2 : 패키지 디렉토리 구조 생성하기 = 195
스텝-3 : 소스 파일의 첫 줄에 package 선언하기 = 196
스텝-4 : 직접 제작한 패키지를 CLASSPATH 환경변수에 추가하기 = 197
스텝-5 : 패키지를 ZIP 또는 JAR 파일로 압축하기 = 197
직접 제작한 패키지 사용시 주의사항 = 198
STEP 03 자바 최상위 클래스 javalangObject = 199
java.ang.Object 클래스란 무엇인가? = 199
Object 클래스의 equals 메소드는 무엇인가? = 201
instanceof 연산자는 무엇인가? = 205
Object 클래스의 toString 메소드는 무엇인가? = 207
STEP 04 자바 시스템 클래스 java.lang.System = 208
표준 입력 출력 에러 스트림 알아보기 = 208
쓰레기 수집 기능 Garbage Collection = 210
기타 기능에는 어떤 것들이 있을까? = 211
STEP 05 문자열 데이터를 위한 java.lang.String 클래스 = 211
문자열과 String 클래스의 관계는 무엇인가? = 211
String 클래스의 주요 메소드에는 어떤 것들이 있는가? = 212
STEP 06 기본 자료형 데이터를 객체로 만들어 주는 래퍼 클래스 = 216
래퍼 Wrapper 클래스란 무엇인가 = 216
래퍼 Wrapper 클래스와 Object 클래스의 관계를 알아보자 = 217
래퍼 Wrapper 객체의 값을 기본 자료형 값으로 변환하자 = 218
STEP 07 자바 유틸리티 클래스 모음 javautil 패키지 = 220
java.util.String Tokenizer 클래스란 무엇인가 = 220
java.util.Enumeration 인터페이스란 무엇인가 = 223
java.util.Vector 클래스란 무엇인가 = 225
java.util.Hashtable 클래스란 무엇인가 = 226
연습문제 = 229
Lesson 10 자바스레드와 멀티 프로세싱 = 230
STEP 01 스레드란 무엇인가 = 231
Thread 클래스의 run 메소드를 재정의하여 스레드 구현하기 = 231
Runnable 인터페이스의 run 메소드를 구현하여 스레드 구현하기 = 234
스레드를 종료하거나 끝날 때까지 대기하기 = 236
스레드의 상태 알이보기 = 240
STEP 02 다중 스레딩(Multithreading)과 동기화 기법 = 241
다중 스레드 프로그래밍이란 = 241
다중 스레딩과 생산자소비자 문제 = 243
여러 스레드 간에 공유하는 데이터를 동기화 하자 = 245
스레드 간의 데이터 동기화를 위한 모니터 기법 = 246
wait 메소드 및 notifyAll 메소드를 이용한 효율적인 동기화 = 249
STEP 03 프로세스란 무엇인가? = 251
상호작용 명령어를 실행하기 = 254
연습문제 = 257
PART 4 자바 윈도우 프로그래밍 = 259
Lesson 11 자바 AWT 컴포넌트 모델에 대해 알아보자 = 260
STEP 01 자바 AWT란 무엇인가? = 261
자바 AWT 컴포넌트에 대해 알아보자 = 261
자바 AWT 컴포넌트의 좌표 시스템에 대해 알아보자 = 264
윈도우 컴포넌트의 테두리 영역 Insets란 무엇인가? = 265
STEP 02 자바 AWT 주요 클래스에 대해 알아보자 = 267
Dimension 클래스가 제공해 주는 기능들을 알아보자 = 267
Component 클래스가 제공해 주는 기능들을 알아보자 = 269
STEP 03 레이블과 버튼 컴포넌트에 대해 알아보자 = 272
레이블(Label) 컴포넌트에 대해 알아보자 = 272
버튼(Button) 컴포넌트에 대해 알아보자 = 274
STEP 04 항목 선택을 위한 컴포넌트에 대해 알아보자 = 276
체크박스(Checkbox) 컴포넌트에 대해 알아보자 = 276
체크박스(Checkbox) 그룹을 사용하여 라디오 버튼을 구현하자 = 277
선택(Choice) 컴포넌트에 대해 알아보자 = 279
리스트(List) 컴포넌트에 대해 알아보자 = 281
STEP 05 텍스트 컴포넌트에는 어떤 것들이 있는가? = 284
텍스트 컴포넌트란 무엇인가? = 284
텍스트필드(TextField) 컴포넌트에 대해 알아보자 = 285
텍스트영역(TextArea) 컴포넌트에 대해 알아보자 = 287
STEP 06 기타 컴포넌트에 대해 알아보자 = 289
스크롤바(Scrollbar) 컴포넌트에 대해 알아보자 = 289
캔버스(Canvas) 컴포넌트에 대해 알아보자 = 289
사용자 정의 컴포넌트를 만들어 보자 = 291
연습문제 = 293
Lesson 12 자바 AWT 이벤트 모델에 대해 알아보자 = 294
STEP 01 자바 AWT 이벤트 모델은 무엇인가? = 295
STEP 02 액션 이벤트에 대해 알아보자 = 297
액션 이벤트란 무엇인가? = 297
액션 이벤트와 액션 리스너에 대해 알아보자 = 298
액션 이벤트 처리 기법을 알아보자 = 299
액션 이벤트를 처리하기 위한 고급 기법Ⅰ = 300
액션 이벤트를 처리하기 위한 고급 기법Ⅱ = 302
STEP 03 입력 이벤트에 대해 알아보자 = 304
입력 이벤트란 무엇인가? = 304
리스너를 이용하여 이벤트를 처리하자 = 304
어댑터를 이용하여 이벤트를 처리하자 = 306
마우스 이벤트와 마우스 동작 이벤트에 대해 알아보자 = 308
리스너를 이용하여 이벤트를 처리하자 = 309
STEP 04 아이템 이벤트에 대해 알아보자 = 311
아이템 이벤트란 무엇인가? = 311
리스너를 이용하여 이벤트를 처리하자 = 312
STEP 05 윈도우 이벤트에 대해 알아보자 = 312
윈도우 이벤트란 무엇인가? = 312
리스너와 어댑터를 이용하여 이벤트를 처리하자 = 313
연습문제 = 315
Lesson 13 컨테이너 컴포넌트에 대해 알아보자 = 316
STEP 01 컨테이너(Container)컴포넌트란 무엇인가? = 317
컨테이너 컴포넌트에 대해 알아보자 = 317
STEP 02 컨테이너 컴포넌트를 위한 클래스에 대해 알아보자 = 318
컨테이너 클래스에 대해 알아보자 = 318
패널(Panel) 클래스에 대해 알아보자 = 320
윈도우(Window) 클래스에 대해 알아보자 = 322
프레임(Frame) 클래스에 대해 알아보자 = 327
다이얼로그(Dialog) 클래스에 대해 알아보자 = 329
메시지 다이얼로그 윈도우를 구현하자 = 330
STEP 03 컴포넌트들을 레이아웃 하자 = 333
레이아웃 관리자에 대해 알아보자 = 334
플로우 레이아웃(FlowLayout) 관리자에 대해 알아보자 = 335
그리드 레이아웃(GridLayout) 관리자에 대해 알아보자 = 338
보더 레이아웃(BorderLayout) 관리자에 대해 알아보자 = 340
카드 레이아웃(CardLayout) 관리자에 대해 알아보자 = 344
절대좌표(Absolute Positioning) 레이아웃에 대해 알아보자 = 347
연습문제 = 351
Lesson 14 자바 그래픽스에 대해 알아보자 = 352
STEP 01 자바 그래픽스에 대해 알아보자 = 353
자바 그래픽스(Graphics)란 무엇인가? = 353
프린트(Print) 작업에 대해 알아보자 = 361
컬러(Color)에 대해 알아보자 = 363
폰트(Font)에 대해 알아보자 = 366
커서(Cursor)에 대해 알아보자 = 373
STEP 02 이미지를 처리하자 = 375
Toolkit 클래스를 이용하여 이미지 객체를 생성한다 = 376
MediaTracker 클래스를 이용하여 이미지의 로딩 상태를 관리한다 = 379
애니메이션이란 무엇인가? = 381
update 메소드를 재정의하여 애니메이션의 깜빡임을 제거하자 = 384
더블 버퍼링(Double Buffering) 기법을 활용하자 = 385
연습문제 = 390
Lesson 15 웹에서도 자바를 즐기자 = 392
STEP 01 자바 애플릿이란 무엇인가? = 393
자바 애플릿은 어떻게 실행되는가? = 393
간단한 자바 애플릿 프로그램을 작성해 보자 = 394
자바 애플릿의 라이프사이클 메소드란 무엇인가? = 397
STEP 02 자바 애플릿을 프로그래밍 하자 = 399
자바 애플릿의 화면을 구성하자 = 399
애플릿에서 팝업 윈도우를 띄우자 = 403
STEP 03 애플릿에서 팝업 메뉴를 사용하자 = 406
애플릿에서 이미지와 사운드 출력해 보자 = 408
STEP 04 환경에 적응하는 자바 애플릿을 작성하자 = 412
HTML 페이지에 애플릿을 플러그인 하자 = 412
애플릿의 매개변수를 설정하는 방법을 알아보자 = 415
애플릿과 브라우저 사이의 통신은 어떻게 하는가? = 418
애플릿이 실행되고 있는 브라우저를 알아내자 = 421
연습문제 = 425
PART 5 데이터 관리하기 = 427
Lesson 16 자바 입출력 모델 알아보기 = 428
STEP 01 자바 데이터 스트림의 모델 = 429
데이터의 종류를 이해하자 = 429
바이트와 문자 입출력 스트림 클래스들을 알아보자 = 431
추상 바이트 입출력 스트림 클래스란 무엇인가? = 432
추상 문자 입출력 스트림 클래스란 무엇인가? = 433
STEP 02 파일과 디렉토리를 관리하자 = 435
파일을 관리하는 File 클래스에 대해 알아보자 = 435
임시 파일을 이용하자 = 440
환경구성 프로퍼티를 관리하기 = 441
STEP 03 데이터를 파일에 입출력 하자 = 443
바이트 형태의 데이터를 입출력 하자 = 443
문자 형태로 데이터를 입출력 하자 = 445
텍스트 파일의 공백라인 처리하는 기법을 알아보자 = 446
STEP 04 입출력 스트림을 사용하는 고급 기법을 알아보자 = 449
버퍼를 이용한 효율적인 데이터 입출력 = 449
버퍼를 활용한 바이트 형태의 데이터 입출력 = 450
버퍼를 활용한 문자 형태의 데이터 입출력 = 452
PrintStream 클래스와 PrintWriter 클래스 = 453
연습문제 = 456
Lesson 17 네트워크로 데이터를 주고 받자 = 458
STEP 01 TCPIP 프로토콜이란 무엇인가 = 459
IP 주소체계는? = 461
IP 주소를 위한 InetAddress 클래스 = 462
TCPIP의 서비스 창구 포트Port = 466
자바 네트워크로의 입출구 소켓 = 467
네트워크 서버를 구현하자 = 472
STEP 02 인터넷과 HTTP 프로토콜 = 477
인터넷 상의 자원의 위치 주소 URL = 477
URL 인코딩 방식을 이해하자 = 482
URL 디코딩 방식을 이해하자 = 483
URL 상의 자원을 연결하자 = 484
인터넷을 위한 HTTP 프로토콜을 이해하자 = 486
STEP 03 메일을 보내주는 SMTP 프로토콜이란? = 491
SMTP란 무엇인가? = 491
메일 보내기 기본 프로그래밍을 알아보자 = 491
메일 보내기 프로그램의 화면 레이아웃을 생성하자 = 493
SMTP 프로토콜을 이용하여 메일을 보내자 = 495
연습문제 = 497
Lesson 18 데이터베이스에 데이터를 저장하자 = 498
STEP Ol JDBC란 무엇인가 = 499
JDBC 개요와 JDBC 드라이버의 유형을 알아보자 = 499
JDBC 드라이버 유형 1 : JDBCODBC 브릿지 = 500
JDBC 드라이버 유형 2 : Native API partly 자바 드라이버 = 500
JDBC 드라이버 유형 3 : Net protocol all 자바 드라이버 = 501
JDBC 드라이버 유형 4 : Native protocol all 자바 드라이버 = 502
STEP 02 데이터베이스 작업을 위한 SQL 문법을 알아보자 = 503
CREATE SQL 문은 어떻게 사용할까? = 504
DROP SQL 문은 어떻게 사용할까? = 505
SELECT SQL 문은 어떻게 사용할까? = 505
INSERT SQL 문은 어떻게 사용할까? = 512
UPDATE SQL 문은 어떻게 사용할까? = 513
DELETE SQL 문은 어떻게 사용할까? = 514
STEP 03 데이터베이스를 생성하고 시스템에 등록해 보자 = 516
JDBC ODBC 브릿지를 이용해 보자 = 516
MS Access를 이용하여 데이터베이스를 생성하자 = 517
ODBC 데이터 원본 관리자를 이용하여 ODBC DSN으로 등록하자 = 519
STEP 04 이제 데이터베이스 프로그래밍을 해 보자 = 521
JDBC 드라이버를 로딩하자 = 522
JDBC URL에 대해 알아보자 = 523
Connetion 객체를 이용하여 데이터베이스에 연결하자 = 526
SQL 문을 실행하기 위한 Statement 객체를 생성하자 = 528
Statement 객체를 이용하여 SQL 문을 실행해 보자 = 530
ResultSet 객체를 이용하여 SQL 문의 실행 결과를 가져다 쓰자 = 531
연습문제 = 535
연습문제정답 = 536
Index = 545