목차
제1장 자바의 천재성
   데이터 타입과 객체의 완벽한 균형 ... 15
   가비지 컬렉션을 통한 메모리 관리 ... 16
   완벽과 명료의 조화 : 멀티스레딩 모델 ... 17
   예외 처리의 언어 차원 지원 ... 18
   다형성 추구를 위한 스트림 지원 ... 19
   바이트코드를 통한 이식성과 보안 ... 20
   다양한 API 지원 ... 21
   자바 애플릿 ... 22
   혁명은 계속되고 있다 ... 23
제2장 재귀 용법을 활용한 파서
   표현 ... 27
   파싱 표현들: 문제점 ... 28
   표현 파싱하기 ... 29
   표현의 분리 ... 31
   간단한 표현 파서 ... 35
      파서 이해하기 ... 43
   파서에서 변수 처리하기 ... 45
   재귀적 용법 파서에서의 구문 검사 ... 55
   계산기 애플릿 ... 56
   시도해 볼만한 아이디어 ... 59
제3장 자바로 언어 인터프리터 구현하기
   어떤 컴퓨터 언어를 해석할 것인가? ... 63
   인터프리터에 대한 개관 ... 64
   Small BASIC 인터프리터 ... 65
   Small BASIC의 수식 파서 ... 87
      Small BASIC의 수식 ... 88
      Small BASIC의 토큰 ... 89
   인터프리터 ... 94
      InterpreterException 클래스 ... 95
      SBasic의 생성자 ... 96
      키워드 ... 97
      run() 메소드 ... 99
sblnterp() 메소드 ... 100
      할당 ... 101
      PRINT 구문 ... 102
      INPUT 구문 ... 104
      GOTO 구문 ... 106
      IF 구문 ... 108
      FOR 루프 ... 109
      GOSUB ... 113
      END 구문 ... 114
   Small BASIC의 이용 ... 115
      더 많은 Small BASIC 샘플 프로그램들 ... 116
   인터프리터의 기능 강화 및 확장 ... 118
   자신만의 언어 만들기 ... 119
제4장 자바로 다운로드 매니저 만들기
   인터넷 다운로드에 대해 이해하기 ... 122
   다운로드 매니저에 대한 개괄 ... 123
   Download 클래스 ... 124
      Download의 변수들 ... 129
      Download의 생성자 ... 129
      download() 메소드 ... 129
      run() 메소드 ... 130
stateChanged() 메소드 ... 134
      동작 메소드와 접근자 메소드 ... 135
   ProgressRenderer 클래스 ... 135
   DownloadsTableModel 클래스 ... 137
      addDownload() 메소드 ... 139
      clearDownload() 메소드 ... 140
      getColumnClass() 메소드 ... 140
      getValueAt() 메소드 ... 140
      update() 메소드 ... 141
   DownloadManager 클래스 ... 142
      DownloadManager의 변수 ... 149
      DownloadManager의 생성자 ... 149
      verifyUrl() 메소드 ... 150
      tableSelectionChanged() 메소드 ... 150
      updateButtons() 메소드 ... 151
      Action Event 처리하기 ... 152
   다운로드 매니저를 컴파일하고 실행하기 ... 153
   다운로드 매니저의 확장 ... 154
제5장 자바로 이메일 클라이언트 구현하기
   이메일의 작동 원리 ... 157
      POP3 ... 157
      IMAP ... 157
      SMTP ... 157
      이메일을 주고받기 위한 일반적인 절차 ... 158
   JavaMail API ... 158
      JavaMail의 개요 ... 159
   간단한 이메일 클라이언트 ... 160
      ConnectDialog 클래스 ... 162
      DownloadingDialog 클래스 ... 169
      MessageDialog 클래스 ... 170
      MessageTableModel 클래스 ... 178
      EmailClient 클래스 ... 183
   이메일 클라이언트 컴파일하고 실행하기 ... 203
   이메일 클라이언트 확장하기 ... 204
제6장 자바로 작성한 웹 크롤링
   웹 크롤러의 기초 ... 209
   로봇 프로토콜 ... 210
   검색 크롤러 개요 ... 211
   SearchCrawler 클래스 ... 212
      SearchCrawler에 선언된 변수들 ... 232
      SearchCrawler 생성자 ... 232
      actionSearch() 메소드 ... 233
search() 메소드 ... 236
showError() 메소드 ... 239
      updateStats() 메소드 ... 239
      addMatch() 메소드 ... 241
      verifyUrl() 메소드 ... 241
      isRobotAllowed() 메소드 ... 242
      downloadPage() 메소드 ... 245
      removeWwwFromUrl() 메소드 ... 246
      retrieveLinks() 메소드 ... 247
searchStringMatches() 메소드 ... 254
      crawl() 메소드 ... 255
   검색 크롤러 컴파일하고 실행하기 ... 258
   나만의 웹 크롤러를 개발하자 ... 261
제7장 자바로 HTML 렌더링하기
   JEditorPane으로 HTML 렌더링하기 ... 264
   하이퍼링크 이벤트의 처리 ... 265
   미니 웹 브라우저 만들기 ... 266
      MiniBrowser 클래스 ... 267
      MiniBrowser의 변수들 ... 274
      MiniBrowser의 생성자 ... 274
      actionBack() 메소드 ... 275
      actionForward() 메소드 ... 276
      actionGo() 메소드 ... 276
showError() 메소드 ... 277
      verifyUrl() 메소드 ... 277
showPage() 메소드 ... 278
      updateButtons() 메소드 ... 280
      hyperlinkUpdate() 메소드 ... 281
   미니 웹 브라우저를 컴파일하고 실행하기 ... 282
   HTML 렌더링의 가능성 ... 283
제8장 자바를 활용한 통계 및 그래프 기법
   표본, 모집단, 분산, 변수 ... 287
   기본 통계학 ... 287
      평균(Mean) ... 288
      중앙값(median) ... 288
      최빈값(mode) ... 289
   분산과 표준 편차 ... 291
   회귀식 ... 293
      상관 계수 ... 295
   Stats 클래스 전체 보기 ... 298
   그래프 그리기 ... 301
      데이터 단위 크기 조정 ... 302
      Graphs 클래스 ... 303
      그래프와 final 인스턴스 변수들 ... 308
      Graphs 생성자 ... 310
paint() 메소드 ... 312
bargraph() 메소드 ... 316
scatter() 메소드 ... 316
      regplot() 메소드 ... 317
   통계 어플리케이션 ... 317
      StatsWin 생성자 ... 323
      itemStateChanged() 핸들러 ... 324
      actionPerformed() 메소드 ... 325
shutdown() 메소드 ... 326
      createMenu() 메소드 ... 326
      DataWin 클래스 ... 326
      완성된 프로그램 만들기 ... 327
   간단한 통계 애플릿 만들기 ... 330
   시도해 볼만한 아이디어 ... 333
제9장 재무 애플릿과 서블릿
   대출 상환 금액 계산하기 ... 336
      RegPay 필드들 ... 341
      init() 메소드 ... 342
      actionPerformed() 메소드 ... 345
paint() 메소드 ... 345
      compute() 메소드 ... 347
   투자의 미래 가치 계산하기 ... 347
   미래 가치를 만들어내기 위해 필요한 초기 투자 비용 계산하기 ... 352
   원하는 연금을 위해 필요한 초기 투자 비용 계산하기 ... 357
   주어진 투자에 대해 최대 연금 계산하기 ... 362
   대출 잔액 계산하기 ... 367
   재무 서블릿 만들기 ... 372
      Tomcat 사용하기 ... 372
      RegPay 애플릿을 서블릿으로 변환하기 ... 374
      RegPayS 서블릿 ... 374
   시도해 볼만한 아이디어 ... 379
제10장 AI 기반의 문제 해결
   표현 방식과 용어 ... 382
   조합 폭발 ... 384
   탐색 기술들 ... 386
      탐색 방법 평가하기 ... 386
   문제 ... 387
      그래픽 표현 ... 388
   Flightlnfo 클래스 ... 390
   깊이 우선 검색 ... 391
      깊이 우선 검색의 분석 ... 403
   너비 우선 검색 ... 403
      너비 우선 검색의 분석 ... 406
   추론적 방법 추가하기 ... 407
      언덕 오르기 검색 ... 408
      언덕 오르기 방식의 분석 ... 414
      최소 비용 검색 ... 415
      최소 비용 검색의 분석 ... 416
   다수의 해결책 찾기 ... 417
      경로 제거 방식 ... 417
      노드 제거 방식 ... 418
   최적의 해결책 찾기 ... 425
   잃어버린 키 문제로 되돌아가기 ... 431
찾아보기 ... 435
닫기