목차 일부
역자 서문 ... 6
서문 ... 21
1장. 컴파일, 실행, 디버깅
기본을 세우자 ... 39
01. 자바 컴파일과 실행 : JDK ... 40
02. 컬러 하이라이팅 에디터를 이용한 편집과 컴파일 ... 45
03. IDE를 이용한 컴파일, 실행, 테스트 ... 46
04. 이 책에서 클래스 사용하기 ... 51
05. ...
더보기
목차 전체
역자 서문 ... 6
서문 ... 21
1장. 컴파일, 실행, 디버깅
기본을 세우자 ... 39
01. 자바 컴파일과 실행 : JDK ... 40
02. 컬러 하이라이팅 에디터를 이용한 편집과 컴파일 ... 45
03. IDE를 이용한 컴파일, 실행, 테스트 ... 46
04. 이 책에서 클래스 사용하기 ... 51
05. jr을 이용한 자동 컴파일 ... 52
06. make를 이용한 자동 컴파일 ... 53
07. Ant를 이용한 자동 컴파일 ... 55
08. 애플릿 실행 ... 58
09. 디프리케이션 경고 처리 ... 60
10. ifdef가 없는 조건적인 디버깅 ... 63
11. 출력의 디버깅 ... 65
12. 디버거 이용 ... 66
13. 단위 테스트 ... 69
14. 자바 클래스 파일 디컴파일하기 ... 72
15. 다른 사람이 자신의 클래스를 디컴파일하지 못하게 하기 ... 75
16. 판독 가능한 역추적 구하기 ... 76
17. 더 많은 자바 소스 찾기 ... 78
18. 프로그램 : 디버그 ... 80
2장. 자바 환경 다루기
모든 것은 환경의 지배를 받는다 ... 81
01. 환경 변수 얻기 ... 82
02. 시스템 속성 ... 84
03. JDK 배포판에 의존적인 코드 작성 ... 86
04. 운영체제에 의존적인 코드 작성 ... 88
05. 효율적인 CLASSPATH 사용 ... 90
06. 확장 API 혹은 패키지 API 사용 ... 94
07. 명령행 인자 파싱 ... 95
3장. 문자열
문자열 가지고 놀기 ... 101
01. 문자열을 서브 문자열로 분해하기 ... 104
02. StringTokenizer를 이용한 문자열 분해 ... 105
03. String과 StringBuffer ... 109
04. 한 번에 한 문자씩 문자열 처리하기 ... 110
05. 문자열 정렬 ... 112
06. 유니코드 문자와 문자열 사이의 변환 ... 115
07. 단어나 문자를 이용하는 문자열 뒤집기 ... 117
08. 탭의 확장과 압축 ... 118
09. 대소문자의 제어 ... 123
10. 들여쓰기한 텍스트 문서 ... 125
11. 출력 불가능한 문자 입력 ... 127
12. 문자열 끝에 있는 공백 제거하기 ... 129
13. 쉼표로 분리된 데이터 파싱 ... 130
14. 프로그램 : 간단한 텍스트 포맷터 ... 136
15. 프로그램 : Soundex 이름 비교 ... 138
4장. 정규 표현식으로 패턴 매칭하기
패턴은 이럴 때 쓴다 ... 143
01. 정규 표현식 ... 146
02. RE를 어떻게 사용하는가? ... 149
03. 자바에서 정규 표현식 사용하기 ... 151
04. 대화식 RE 테스트 ... 153
05. 일치하는 텍스트 찾기 ... 154
06. 일치하는 텍스트 바꾸기 ... 156
07. 나타나는 모든 패턴 출력 ... 157
08. 패턴을 포함하는 행 출력 ... 160
09. match()와 subst()에서 대소문자 제어하기 ... 162
10. RE 미리 컴파일하기 ... 163
11. 텍스트에서 새로운 행과 일치시키기 ... 164
12. 프로그램 : 데이터 마이닝 ... 166
13. 프로그램 : 전체 Grep ... 169
5장. 숫자형
숫자형의 변신 ... 175
01. 문자열이 유효한 수인지 확인하기 ... 178
02. 큰 숫자형을 작은 숫자형에 저장하기 ... 180
03. 부동 소수점형을 이용하지 않고 정수형 소수 구하기 ... 181
04. 부동 소수점형의 정확도 구하기 ... 183
05. 부동 소수점형 비교하기 ... 185
06. 부동 소수점형 수의 라운딩 ... 188
07. 수 포맷팅 ... 189
08. 2진수, 8진수, 10진수, 16진수 사이의 변환 ... 192
09. 정수형 연산 ... 193
10. 로마숫자를 이용한 작업 ... 195
11. 정확한 복수형 포맷팅 ... 200
12. 난수의 생성 ... 202
13. 더 좋은 난수의 생성 ... 203
14. 삼각 함수 계산 ... 205
15. 로그 구하기 ... 206
16. 행렬의 곱셈 ... 207
17. 복소수의 이용 ... 209
18. 매우 큰 숫자형 다루기 ... 211
19. 프로그램 : TempConverter ... 214
20. 프로그램 : 숫자형 회문 ... 218
6장. 날짜와 시간
시간은 관리할 때 가치가 있다 ... 223
01. 오늘 날짜 찾기 ... 225
02. 특정 포맷으로 날짜와 시간 출력하기 ... 226
03. 다른 포맷으로 날짜 표시하기 ... 229
04. YMDHMS를 Calendar나 기원후 시간으로 변환하기 ... 229
05. 문자열을 날짜로 파싱하기 ... 230
06. 기원후 시간을 DMYHMS로 변환하기 ... 233
07. Date나 Calendar에서 더하거나 빼기 ... 234
08. 두 날짜 차 ... 236
09. 날짜 비교 ... 237
10. 주/월/년 중 몇 번째 날 혹은 몇 번째 주인가? ... 240
11. 달력 페이지 ... 241
12. 정확한 타이머 ... 244
13. 프로그램을 잠시동안 멈추기 ... 246
14. 프로그램 : 알림 서비스 ... 247
7장. 자바를 이용한 데이터 구조
자바로 데이터 빵틀 만들기 ... 251
01. 배열을 이용한 데이터 구조 ... 253
02. 배열 크기 조절 ... 254
03. 배열처럼 그러나 좀더 동적으로 ... 256
04. 반복자를 이용한 독립적인 데이터 접근 ... 258
05. 연결 리스트 ... 260
06. 해시 테이블과 해시 맵을 이용한 매핑 ... 263
07. 속성과 환경에 문자열 저장하기 ... 264
08. 컬렉션 정렬 ... 268
09. 자바 1.1에서의 정렬 ... 272
10. 정렬 요구 피하기 ... 274
11. 집합 ... 276
12. 컬렉션에서 객체 찾기 ... 277
13. 컬렉션을 배열로 변환하기 ... 279
14. 사용자 Iterator의 회전 ... 281
15. 스택 ... 283
16. 다차원 구조 ... 284
17. 마지막! 컬렉션 ... 287
18. 프로그램 : 타이밍 비교 ... 289
8장. 객체 지향 기법
자바는 객체 지향 언어이다 ... 293
01. 객체 출력하기 : toString()으로 포맷팅하기 ... 295
02. equals 메소드 오버라이드 ... 297
03. hashCode 메소드 오버라이드 ... 301
04. clone 메소드 ... 302
05. finalize 메소드 ... 306
06. 내부 클래스 사용하기 ... 307
07. 인터페이스를 통해 콜백 제공하기 ... 309
08. 다형성과 추상 메소드 ... 313
09. 값 넘기기 ... 315
10. 사용자 예외 사용하기 ... 318
11. 프로그램 : Plotter ... 319
9장. 입출력
자바를 이용한 읽기와 쓰기 ... 325
01. 표준 입력 읽기 ... 330
02. 표준 출력 쓰기 ... 334
03. 이름으로 파일 열기 ... 335
04. 파일 복사 ... 336
05. 파일을 문자열로 읽기 ... 340
06. 표준 스트림의 재할당 ... 342
07. 스트림을 이중으로 쓰기 ... 343
08. 다른 문자셋 읽고 쓰기 ... 346
09. 귀찮은 행 끝 문자 ... 347
10. 플랫폼 의존적인 파일 코드 조심하기 ... 348
11. 연속 행 읽기 ... 349
12. 파일 스캐닝 ... 355
13. 이진 데이터 ... 360
14. 탐색 ... 361
15. C로부터의 데이터 스트림 쓰기 ... 362
16. 직렬화된 객체의 저장과 복구 ... 365
17. SerialVersionUID로 ClassCastException 방지하기 ... 367
18. JAR나 Zip 읽고 쓰기 ... 369
19. 압축 파일 읽고 쓰기 ... 373
20. 프로그램 : 텍스트를 포스트스크립트로 ... 375
21. 프로그램 : TarList(파일 변환자) ... 379
10장. 디렉토리, 파일시스템 조작
디렉토리와 파일이 시스템을 만든다 ... 393
01. 파일 정보 얻기 ... 394
02. 파일 생성 ... 398
03. 파일명 변경 ... 399
04. 파일 삭제 ... 400
05. 임시 파일 생성 ... 402
06. 파일 등록정보 변경 ... 403
07. 디렉토리 나열하기 ... 405
08. 디렉토리 루트 얻기 ... 408
09. 새 디렉토리 만들기 ... 409
10. 프로그램 : Find ... 410
11장. 직렬/병렬 포트 프로그래밍
자바 통신 API도 알아보자 ... 415
01. 포트 선택하기 ... 418
02. 직렬 포트 열기 ... 423
03. 병렬 포트 열기 ... 427
04. 포트 충돌 방지 ... 431
05. 정해진 방식으로 읽고 쓰기 ... 435
06. 읽고 쓰기 위한 이벤트 조정하기 ... 439
07. 스레드 읽고 쓰기 ... 444
08. 프로그램 : 펜맨 플로터 ... 446
12장. 그래픽과 사운드
멋진 화면을 보는 것은 즐겁다 ... 453
01. Graphics 객체로 색칠하기 ... 454
02. 그래픽 컴포넌트 테스트하기 ... 456
03. 그리기 테스트 ... 457
04. 컴포넌트 가운데 텍스트 그리기 ... 457
05. 그림자 효과 ... 459
06. 이미지 그리기 ... 462
07. 사운드 파일 재생하기 ... 467
08. 비디오로 움직이는 이미지 보여주기 ... 469
09. 2D로 텍스트 그리기 ... 472
10. 출력하기 : JDK 1.1 ... 475
11. 출력하기 : 자바2 ... 477
12. 프로그램 : PlotterAWT ... 480
13. 프로그램 : Grapher ... 483
13장. GUI
자바의 윈도우화 기능 ... 487
01. GUI 컴포넌트 보여주기 ... 489
02. 윈도우 레이아웃 디자인하기 ... 491
03. 탭으로 구성한 화면 ... 494
04. 액션 처리 : 버튼의 동작 만들기 ... 495
05. 익명 내부 클래스를 이용한 액션 처리 ... 498
06. 윈도우를 닫아 프로그램 끝내기 ... 500
07. 대화상자 ... 505
08. 윈도우에 프로그램 결과 출력하기 ... 508
09. JFileChooser로 파일 선택하기 ... 512
10. 색상 선택 ... 515
11. 메인 윈도우 중앙에 두기 ... 518
12. 스윙 프로그램의 룩앤필 바꾸기 ... 520
13. 프로그램 : 사용자 폰트 선택자 ... 525
14. 프로그램 : 사용자정의 레이아웃 관리자 ... 530
14장. 국제화와 지역화
프로그램에도 국제화는 필요하다 ... 539
01. I18N 자원으로 버튼 만들기 ... 540
02. 가능한 모든 지역 목록 나열하기 ... 543
03. I18N 자원으로 메뉴 생성하기 ... 544
04. 국제화 편리 루틴 작성하기 ... 545
05. I18N 자원을 이용하여 대화하기 ... 547
06. 자원 번들 생성하기 ... 549
07. 코드 JILT 처리하기 ... 550
08. 특정 지역 사용하기 ... 552
09. 기본 지역 설정하기 ... 553
10. 메시지 형식 만들기 ... 555
11. 프로그램 : Menulntl ... 557
12. 프로그램 : BusCard ... 559
15장. 네트워크 클라이언트 Ⅰ
소켓을 이용한 통신 ... 565
01. 서버와 교신하기 ... 568
02. 네트워크 주소 탐색과 보고 ... 570
03. 네트워크 에러 처리 ... 572
04. 텍스트형 데이터 읽고 쓰기 ... 573
05. 이진 데이터 읽고 쓰기 ... 576
06. 직렬화된 데이터 읽고 쓰기 ... 579
07. UDP 데이터그램 ... 581
08. TFTP UDP 클라이언트 ... 584
09. 텔넷 클라이언트 프로그램 ... 590
10. 채팅 클라이언트 ... 592
16장. 서버측 자바 : 소켓
서버는 소켓으로 연다 ... 599
01. 상업용 서버 열기 ... 600
02. 응답하기(문자열 또는 이진 데이터) ... 603
03. 객체 정보 반환하기 ... 608
04. 다중 클라이언트 다루기 ... 609
05. 네트워크 로깅 ... 615
06. 프로그램 : 자바 채팅 서버 ... 620
17장. 네트워크 클라이언트 Ⅱ
애플릿과 웹 클라이언트 ... 627
01. 웹 페이지에 자바 내장하기 ... 628
02. 애플릿 기술 ... 630
03. 애플릿 호스트에 있는 서버에 연결하기 ... 633
04. 문서를 보여주는 애플릿 작성하기 ... 636
05. CGI 스크립트를 실행하는 애플릿 작성하기 ... 638
06. URL의 내용 읽기 ... 640
07. URL에서 HTML 추출하기 ... 641
08. 파일에서 URL 추출하기 ... 644
09. 파일명을 URL로 변환하기 ... 646
10. 프로그램 : MkIndex ... 647
11. 프로그램 : LinkChecker ... 653
18장. 웹 서버 자바 : 서블릿과 JSP
서블릿과 JSP로 웹 페이지에 힘을 주자 ... 661
01. 서블릿 처음 사용하기 : HTML 페이지 생성 ... 662
02. 서블릿 : 폼 매개변수 처리 ... 666
03. 쿠키 ... 670
04. 세션 추적 ... 674
05. 서블릿에서 PDF 생성하기 ... 680
06. HTML과 자바의 만남 : JSP ... 687
07. JSP Include/Forward ... 692
08. 서블릿을 이용하는 자바 서버 페이지 ... 694
09. 자바빈으로 JSP 단순화하기 ... 695
10. JSP 구문 정리 ... 700
11. 프로그램 : CookieCutter ... 701
12. 프로그램 : JabaDot 웹 뉴스 포탈 ... 702
19장. 자바와 이메일
메일 송수신에도 자바는 한 몫을 한다 ... 713
01. 이메일 전송 : 브라우저 버전 ... 714
02. 이메일 전송 : 실질적인 메일 클라이언트 제공 ... 719
03. 메일을 사용할 수 있는 서버 프로그램 ... 723
04. 마임 형식 메일 전송 ... 730
05. 메일 설정 제공하기 ... 732
06. 자바메일을 사용하지 않고 메일 전송하기 ... 734
07. 이메일 읽기 ... 739
08. 프로그램 : MailReaderBean ... 745
09. 프로그램 : MailClient ... 750
20장. 데이터베이스 접속
JDBC로 데이터베이스에 접속해보자 ... 763
01. 텍스트 파일 데이터베이스 ... 765
02. DBM 데이터베이스 ... 771
03. JDBC 설치와 연결 ... 775
04. JDBC 데이터베이스에 연결하기 ... 778
05. JDBC 질의 보내기와 결과 가져오기 ... 782
06. 문장을 매개변수화한 JDBC 사용하기 ... 785
07. JDBC로 저장된 프로시저 사용하기 ... 790
08. ResultSet을 이용한 데이터 변경 ... 791
09. SQL을 이용한 데이터 변경 ... 792
10. JDBC 메타데이터 찾기 ... 795
11. 프로그램 : JDAdmin ... 802
21장. XML
자바와 XML의 만남 ... 811
01. XSLT를 이용해 XML 변환하기 ... 814
02. SAX를 이용해 XML 파싱하기 ... 818
03. DOM을 이용해 XML 파싱하기 ... 820
04. DTD를 이용해 구조 검증하기 ... 824
05. DOM을 이용해 자신만의 XML 생성하기 ... 825
06. 프로그램 : xml2mif ... 827
22장. 분산 자바 : RMI
분산 환경에서 자바 RMI로 자원을 모아보자 ... 831
01. RMI 계약 정의 ... 833
02. RMI 클라이언트 ... 835
03. RMI 서버 ... 836
04. 네트워크로 RMI 배포하기 ... 840
05. 프로그램 : RMI 콜백 ... 841
06. 프로그램 : RMIWatch ... 846
23장. 패키지와 패키지화
자신만의 자바 패키지를 만들어보자 ... 855
01. 패키지 생성 ... 856
02. Javadoc을 이용해 클래스 문서화하기 ... 857
03. jar를 이용해 아카이빙하기 ... 861
04. Jar로부터 애플릿 실행하기 ... 863
05. JDK를 이용해 애플릿 실행하기 ... 863
06. JAR로부터 프로그램 실행하기 ... 868
07. 클래스를 자바빈처럼 만들기 ... 868
08. JAR에 빈 집어넣기 ... 873
09. WAR 파일에 서블릿 패키지화하기 ... 874
10. 일단 작성하면 설치는 어디에서나 가능하다 ... 875
11. 자바 웹 스타트 ... 876
12. 사용자정의 JAR 파일에 서명하기 ... 883
24장. 스레드 자바
스레드로 동시에 여러 작업이 충돌하지 않도록 조절하자 ... 885
01. 다른 스레드로 코드 실행하기 ... 887
02. 애니메이션으로 움직이는 이미지 표시하기 ... 892
03. 스레드 정지 문제 ... 896
04. 랑데부와 타임아웃 ... 899
05. 스레드 통신 : 동기화 코드 ... 900
06. 스레드 통신 : wait(), notifyAll() ... 907
07. 편집기에서 백그라운드 저장하기 ... 914
08. 스레드를 사용하는 네트워크 서버 ... 916
25장. 리플렉션과 CLASS 클래스
클래스 정보를 찾아보자 ... 927
01. 클래스 배치자 구하기 ... 928
02. 메소드와 필드 찾아 이용하기 ... 930
03. 클래스를 동적으로 로딩하고, 인스턴스화하기 ... 934
04. 클래스 생성 ... 937
05. 실행 시간 ... 939
06. 클래스 정보 출력하기 ... 943
07. 프로그램 : CrossRef ... 945
08. 프로그램 : AppletViewer ... 952
26장. 다른 언어와 함께 자바 사용하기
외부 프로그램도 자바처럼 사용해보자 ... 961
01. 프로그램 실행 ... 962
02. 프로그램 실행과 출력 캡쳐 ... 966
03. BSF로 자바와 스크립트 섞기 ... 969
04. 네이티브 코드(C/C++) 섞기 ... 975
05. 네이티브 코드에서 자바 호출하기 ... 982
06. 프로그램 : DBM ... 982
찾아보기 ... 983
더보기 닫기