목차 일부
역자의 글 ... 1
서문 ... 3
제1장 컴퓨터, 인터넷, 웹에 대한 소개 ... 55
1.1 소개 ... 56
1.2 컴퓨터란 무엇인가? ... 62
1.3 컴퓨터의 구성 ... 62
1.4 운영체제의 발전 ... 63
1.5 개인용, 분산, 클라이언트/서버 컴퓨팅 ... 64
1.6 기계어, 어셈블리어, 고급 언어 ....
더보기
목차 전체
역자의 글 ... 1
서문 ... 3
제1장 컴퓨터, 인터넷, 웹에 대한 소개 ... 55
1.1 소개 ... 56
1.2 컴퓨터란 무엇인가? ... 62
1.3 컴퓨터의 구성 ... 62
1.4 운영체제의 발전 ... 63
1.5 개인용, 분산, 클라이언트/서버 컴퓨팅 ... 64
1.6 기계어, 어셈블리어, 고급 언어 ... 65
1.7 C++의 역사 ... 66
1.8 자바의 역사 ... 68
1.9 자바 클래스 라이브러리 ... 68
1.10 기타 고급 언어 ... 70
1.11 구조적 프로그래밍 ... 70
1.12 인터넷과 월드 와이드 웹 ... 71
1.13 일반적인 자바 기본 환경 ... 72
1.14 자바와 책에 대한 일반적인 언급 ... 76
1.15 본 책에 대한 소개 ... 78
제2장 자바 애플리케이션의 소개 ... 95
2.1 소개 ... 96
2.2 간단한 프로그램 : 한 줄의 문서 인쇄 ... 96
2.3 다른 자바 애플리케이션 : 정수 더하기 ... 108
2.4 메모리의 개념 ... 114
2.5 산술(Arithmetic) ... 116
2.6 판단 : 동등 연산자와 비교 연산자 ... 119
제3장 자바 애플릿의 소개 ... 143
3.1 소개 ... 144
3.2 객체에 관한 고려 사항 ... 144
3.3 자바 2 소프트웨어 개발 킷(J2SDK)에 포함된 애플릿 예제 ... 147
3.4 간단한 자바 애플릿 예제 : 스트링 그리기 ... 154
3.5 두 개의 또다른 애플릿 예제 : 스트링과 줄 그리기 ... 161
3.6 또다른 자바 애플릿 : 정수 더하기 ... 163
3.7 인터넷과 월드 와이드 웹에서의 자바 애플릿 리소스들 ... 172
제4장 제어 구조 : 파트 1 ... 185
4.1 서론 ... 186
4.2 알고리즘 ... 186
4.3 의사 코드(Pseudocode) ... 186
4.4 제어 구조(Control Structure) ... 187
4.5 if 선택 구조 ... 191
4.6 if/else 선택 구조 ... 192
4.7 while 반복 구조 ... 197
4.8 알고리즘 작성 : 사례 연구 1(카운터-제어 반복) ... 199
4.9 하향식, 단계적 상세화에 의한 알고리즘 작성 : 사례 연구 2(감시값-제어 반복) ... 205
4.10 하향식, 단계적 상세화에 의한 알고리즘 작성 : 사례 연구 3(중첩된 제어 구조) ... 213
4.11 대입 연산자 ... 218
4.12 증가, 감소 연산자 ... 219
4.13 원시 데이터 유형 ... 222
제5장 제어 구조 : 파트 2 ... 239
5.1 서론 ... 239
5.2 카운터-제어 반복의 요점 ... 239
5.3 for 반복 구조 ... 241
5.4 for 구조를 이용한 예제 ... 247
5.5 switch 다중 선택 구조 ... 253
5.6 do/while 반복 구조 ... 258
5.7 break와 continue 구문 ... 260
5.8 레이블된 breck와 continue 구문 ... 263
5.9 논리 연산자 ... 265
5.10 구조적 프로그래밍 요약 ... 272
제6장 메소드 ... 291
6.1 서론 ... 292
6.2 자바의 프로그램 모듈 ... 292
6.3 Math 클래스 메소드 ... 293
6.4 메소드 ... 295
6.5 메소드 정의 ... 296
6.6 자바 API 패키지 ... 305
6.7 난수 발생 ... 309
6.8 예제 : 확률 게임 ... 313
6.9 식별자의 존속 기간(duration) ... 322
6.10 가시 구역(scope) 법칙 ... 323
6.11 순환(Recursion) ... 326
6.12 순환을 이용한 예제 : 피보나치 수열 ... 330
6.13 순환 대 반복 ... 335
6.14 메소드 오버로딩 ... 338
6.15 JApplet 클래스의 메소드 ... 340
제7장 배열(Arrays) ... 367
7.1 서론 ... 368
7.2 배열 ... 368
7.3 배열의 선언과 할당 ... 371
7.4 배열 사용의 예 ... 372
7.5 레퍼런스와 레퍼런스 파라미터 ... 382
7.6 메소드에 배열 전달하기 ... 383
7.7 배열 정렬 ... 386
7.8 배열 탐색 : 선형 탐색과 바이너리 탐색 ... 389
7.9 다중 첨자 배열 ... 396
제8장 객체 기반 프로그래밍 ... 435
8.1 서론 ... 436
8.2 클래스를 사용한 추상 데이터형 Time의 구현 ... 437
8.3 클래스 가시 구역 ... 446
8.4 멤버 접근의 제어 ... 447
8.5 패키지 만들기 ... 449
8.6 클래스 객체 초기화 : 생성자 ... 453
8.7 중복 생성자 사용 ... 454
8.8 읽기와 설정 메소드 ... 459
8.9 소프트웨어 재사용 ... 468
8.10 Final 인스턴스 변수 ... 468
8.11 복합(Composition) : 다른 클래스의 객체를 인스턴스 변수로 사용 ... 470
8.12 패키지 접근 ... 473
8.13 this 레퍼런스 사용 ... 475
8.14 종결자 ... 482
8.15 정적(static) 클래스 멤버 ... 483
8.16 데이터 추상화와 정보 은닉 ... 487
제9장 객체 지향 프로그래밍 ... 503
9.1 서론 ... 504
9.2 수퍼클래스와 서브클래스 ... 506
9.3 protected 멤버 ... 509
9.4 수퍼클래스 객체와 서브클래스 객체들간의 관계 ... 509
9.5 서브클래스에 있는 생성자와 종결자 사용하기 ... 517
9.6 서브클래스 객체에서 수퍼클래스 객체로 묵시적인 형 변환 ... 521
9.7 상속을 사용한 소프트웨어 공학 ... 522
9.8 복합 대 상속 ... 523
9.9 사례 연구 : Point, Circle, Cylinder ... 524
9.10 다형성에 대한 소개 ... 530
9.11 유형 항목과 switch 구문 ... 530
9.12 동적 메소드 결합 ... 531
9.13 final 메소드와 클래스 ... 532
9.14 추상적 수퍼클래스와 구체적 클래스 ... 532
9.15 다형성 예제 ... 533
9.16 사례 연구 : 다형성을 사용한 급여 시스템 ... 536
9.17 새로운 클래스와 동적 결합 ... 544
9.18 사례 연구 : 인터페이스와 구현의 상속 ... 545
9.19 사례 연구 : 인터페이스 생성과 사용 ... 552
9.20 내부 클래스 정의 ... 558
9.21 내부 클래스 정의의 주의 사항 ... 569
9.22 원시 유형에 대한 유형 포장 클래스 ... 570
제10장 문자와 문자열 ... 585
10.1 서론 ... 586
10.2 문자와 문자열의 기초 ... 586
10.3 문자열 생성자 ... 587
10.4 String의 메소드 length, charAt, getChars ... 590
10.5 String의 비교 ... 592
10.6 String 메소드 hashCode ... 598
10.7 String에 문자와 서브스트링 자리잡기 ... 599
10.8 String에서 서브스트링 추출 ... 602
10.9 String 연결 ... 603
10.10 잡다한 String 메소드들 ... 605
10.11 String의 메소드 valueOf 사용하기 ... 607
10.12 String의 intern 메소드 ... 609
10.13 StringBuffer 클래스 ... 612
10.14 StringBuffer 생성자 ... 613
10.15 StringBuffer의 length, capacity, setLength, ensureCapacity 메소드 ... 614
10.16 StringBuffer의 charAt, setCharAt, getChars, reverse 메소드 ... 616
10.17 StringBuffer의 append 메소드 ... 618
10.18 StringBuffer의 insert 메소드 ... 620
10.19 Character 클래스 예제 ... 621
10.20 StringTpokenizer 클래스 ... 630
10.21 카드 섞기와 나누기 시뮬레이션 ... 634
제11장 그래픽과 자바 2D ... 653
11.1 서론 ... 654
11.2 그래픽 컨텍스트와 Graphics 객체 ... 656
11.3 컬러 제어 ... 658
11.4 폰트 제어 ... 666
11.5 선, 사각형, 타원 그리기 ... 673
11.6 호 그리기 ... 677
11.7 다각형과 다선(polygon, polyline) 그리기 ... 680
11.8 자바 2D API ... 683
11.9 자바 2D 모양(shapes) ... 684
제12장 기본적인 그래픽 사용자 인터페이스 요소 ... 703
12.1 서론 ... 704
12.2 Swing의 개요 ... 705
12.3 JLabel ... 708
12.4 이벤트 처리 모델 ... 711
12.5 JTextField와 JPasswordField ... 714
12.6 JButton ... 721
12.7 JCheckBox와 JRadioButton ... 724
12.8 JComboBox ... 732
12.9 JList ... 735
12.10 다중 선택 리스트(Multiple-Selection List) ... 738
12.11 마우스 이벤트 처리 ... 741
12.12 어댑터 클래스(Adapter class) ... 746
12.13 키보드 이벤트 처리(Keyboard Event Handling) ... 752
12.14 레이아웃 관리자(Layout Manager) ... 756
12.15 패널(Panel) ... 766
제13장 발전된 그래픽 사용자 인터페이스 ... 783
13.1 서론 ... 784
13.2 JTextArea ... 784
13.3 JPanel에서의 사용자 정의 서브클래스 ... 788
13.4 JPanel에서의 자기 포함 서브클래스 ... 792
13.5 JSlider ... 798
13.6 Windows ... 802
13.7 애플릿이나 애플리케이션으로 실행된 프로그램 설계하기 ... 803
13.8 프레임에서 메뉴 사용하기 ... 810
13.9 JPopupMenu의 사용 ... 819
13.10 플러그어블 Look-and-Feel ... 822
13.11 JDesktopPane과 JInternalFrame의 사용 ... 827
13.12 레이아웃 관리자 ... 831
13.13 BoxLayout 레이아웃 관리자 ... 832
13.14 CardLayout 레이아웃 관리자 ... 837
13.15 GridBagLayout 레이아웃 관리자 ... 841
13.16 GridBagLayout 레이아웃 관리자의 변종 : GridBagConstraints 상수 RELATIVE와 REMAINDER ... 848
제14장 예외 처리 ... 867
14.1 서론 ... 868
14.2 예외 처리를 사용해야 할 시기 ... 870
14.3 그 밖의 예외 처리 기술들 ... 871
14.4 자바 예외 처리의 기본 ... 871
14.5 예외 처리 예제 : 0으로 나누기 ... 873
14.6 try 블록 ... 878
14.7 예외 던지기 ... 879
14.8 예외 잡기(catching) ... 880
14.9 예외 다시 던지기(rethrow) ... 882
14.10 throws 문 ... 883
14.11 생성자, 종결자(Finalizer), 예외 처리 ... 888
14.12 예외와 상속 ... 888
14.13 finally 블록 ... 889
14.14 printStackTrace와 getMessage 사용하기(trace : 추적) ... 894
제15장 멀티스레딩 ... 907
15.1 서론 ... 908
15.2 클래스 Thread : Thread 메소드들에 대한 소개 ... 910
15.3 스레드 상태 : 스레드의 생명 주기 ... 912
15.4 스레드 우선순위와 스레드 스케줄링 ... 914
15.5 스레드 동기화 ... 919
15.6 스레드 동기화가 없을 때 생산자/소비자 관계 ... 920
15.7 스레드 동기화가 된 생산자/소비자 관계 ... 925
15.8 생산자/소비자 관계 원형 버퍼 ... 930
15.9 대몬(Daemon) 스레드 ... 937
15.10 Runnable 인터페이스 ... 937
15.11 스레드 그룹 ... 943
제16장 이미지, 애니메이션, 오디오와 비디오 ... 955
16.1 서론 ... 956
16.2 자바 미디어의 프레임워크 다운받기 ... 957
16.3 이미지 로딩, 그리기, 크기 조절 ... 958
16.4 오디오 클립의 로딩과 연주 ... 961
16.5 자바 미디어 플레이어(Media player) ... 965
16.6 일련의 이미지를 동작화하기 ... 972
16.7 애니메이션 관련 이슈 ... 978
16.8 HTML 태그를 이용한 애플릿 꾸미기 ... 980
16.9 이미지 맵 ... 986
16.10 자바 플러그-인(Plug-In) ... 988
16.11 인터넷과 월드 와이드 웹 리소스 ... 991
제17장 파일과 스트림 ... 1007
17.1 서론 ... 1008
17.2 데이터 계층 구조 ... 1008
17.3 파일과 스트림 ... 1010
17.4 순차 접근 파일 만들기 ... 1016
17.5 순차 접근 파일로부터 데이터 읽기 ... 1027
17.6 순차 접근 파일의 갱신(Updating) ... 1039
17.7 임의 접근 파일(Random-Access Files) ... 1039
17.8 임의 접근 파일 만들기 ... 1040
17.9 임의 접근 파일에 임의로 데이터 쓰기 ... 1045
17.10 임의 접근 파일로부터 순차적으로 데이터 읽기 ... 1049
17.11 예제 : 거래 처리 프로그램 ... 1054
17.12 File 클래스 ... 1069
제18장 자바 데이터베이스 연결(JDBC) ... 1087
18.1 서론 ... 1088
18.2 데이터베이스 시스템 ... 1088
18.3 관계형 데이터베이스 모델 ... 1090
18.4 관계형 데이터베이스의 개요 : Books.mdb 데이터베이스 ... 1092
18.5 SQ2(Structured Query Language) ... 1098
18.6 첫 번째 예제 ... 1108
18.7 마이크로소프트 액세스 데이터베이스 읽고, 추가하고, 갱신하기 ... 1123
18.8 트랜잭션 처리 ... 1136
제19장 서블릿 ... 1145
19.1 서론 ... 1146
19.2 서블릿 기술 살펴보기 ... 1148
19.3 자바 서블릿 개발 킷(JSDK) 다운받기 ... 1152
19.4 HTTP GET 요청 다루기 ... 1153
19.5 HTTP POST 요청 다루기 ... 1160
19.6 세션 트래킹 ... 1167
19.7 멀티티어 애플리케이션 : 서블릿에 JDBC를 사용 ... 1182
19.8 전자상거래 ... 1189
19.9 인터넷과 웹에 있는 서블릿 리소스 ... 1189
제20장 RMI(Remote Method Invocation) ... 1197
20.1 서론 ... 1198
20.2 Case Study : RMI를 사용한 분산 시스템을 작성 ... 1199
20.3 원격 인터페이스 정의 ... 1199
20.4 Remote 인터페이스를 구현하기 ... 1200
20.5 클라이언트 정의 ... 1208
20.6 서버와 클라이언트를 컴파일하고 실행하기 ... 1214
제21장 네트워킹 ... 1225
21.1 서론 ... 1226
21.2 URL 조작하기 ... 1227
21.3 웹 서버에서 파일을 읽기 ... 1232
21.4 간단한 서버 작성(스트림 소켓 사용) ... 1237
21.5 간단한 클라이언트 작성(스트림 소켓 사용) ... 1238
21.6 스트림 소켓 접속을 통한 클라이언트/서버 상호 통신 ... 1239
21.7 데이터그램을 사용한 비접속 클라이언트/서버 상호 교신 ... 1251
21.8 멀티스레드 서버를 사용한 틱-택-토우 클라이언트/서버 ... 1259
21.9 보안과 네트워크 ... 1272
제22장 데이터 구조 ... 1283
22.1 서론 ... 1284
22.2 자기 레퍼런스(Self-Referential) 클래스 ... 1285
22.3 동적 메모리 할당 ... 1285
22.4 연결 리스트 ... 1286
22.5 스택 ... 1297
22.6 큐 ... 1302
22.7 트리 ... 1305
제23장 자바 유틸리티 패키지와 비트 조작 ... 1345
23.1 서론 ... 1346
23.2 Vector 클래스와 Enumeration 인터페이스 ... 1346
23.3 Stack 클래스 ... 1355
23.4 Dictionary 클래스 ... 1359
23.5 Hashtable 클래스 ... 1360
23.6 Properties 클래스 ... 1368
23.7 Random 클래스 ... 1374
23.8 비트 조작과 비트단위 연산 ... 1375
23.9 BitSet 클래스 ... 1390
제24장 컬렉션 ... 1405
24.1 서론 ... 1406
24.2 개요 ... 1406
24.3 Arrays 클래스 ... 1407
24.4 인터페이스 Collection과 클래스 Collections ... 1412
24.5 Lists ... 1413
24.6 알고리즘 ... 1420
24.7 Sets ... 1430
24.8 Maps ... 1433
24.9 Synchronization Wrappers ... 1435
24.10 Unmodifiable Wrappers ... 1436
24.11 Abstract Implementations ... 1436
제25장 자바빈즈(JavaBeans) ... 1445
25.1 서론 ... 1446
25.2 BeanBox 소개 ... 1447
25.3 자바빈즈가 되는 클래스 준비 ... 1461
25.4 자바빈즈 생성 : 자바 압축 파일과 jar 유틸리티 ... 1464
25.5 BeanBox에 빈즈 더하기 ... 1468
25.6 BeanBox 이벤트에 빈즈 연결하기 ... 1470
25.7 자바빈즈에 특성 부과하기 ... 1471
25.8 바운드 특성을 갖는 자바빈즈 생성 ... 1475
25.9 자바빈즈에 BeanInfo 클래스 지정 ... 1482
25.10 자바빈즈 월드 와이드 웹 리소스 ... 1489
부록 A 자바 데모 ... 1450
A.1 서론 ... 1500
A.2 사이트 ... 1500
부록 B 자바 리소스 ... 1505
B.1 서론 ... 1505
B.2 리소스 ... 1505
B.3 제품들 ... 1507
B.4 FAQs ... 1508
B.5 튜토리얼 ... 1509
B.6 Magazines ... 1509
B.7 자바 애플릿 ... 1510
B.8 멀티미디어 ... 1511
B.9 서블릿 ... 1512
B.10 자바빈스 ... 1513
B.11 자바 CORBA ... 1514
B.12 뉴스그룹 ... 1514
부록 C 연산자 우선순위 표 ... 1516
부록 D ASCII 문자 센트 ... 1518
부록 E 수 체계 ... 1519
E.1 서론 ... 1520
E.2 2진수를 8진수나 16진수로 줄여쓰기 ... 1523
E.3 10진수와 16진수를 2진수로 바꾸기 ... 1524
E.4 2진수, 8진수, 16진수를 10진수로 바꾸기 ... 1524
E.5 10진수를 2진수, 8진수, 16진수로 바꾸기 ... 1525
E.6 이진 음수 : 2의 보수 표기법 ... 1527
부록 F 객체 지향 엘리베이터 시뮬레이터 ... 1534
F.1 서론 ... 1535
F.2 문제 서술 ... 1537
F.3 엘리베이터 실험 과제 1 ... 1538
F.4 엘리베이터 실험 과제 2 ... 1539
F.5 엘리베이터 실험 과제 3 ... 1540
F.6 엘리베이터 실험 과제 4 ... 1541
F.7 엘리베이터 실험 과제 5 ... 1543
F.8 엘리베이터 실험 과제 6 ... 1543
F.9 엘리베이터 실험 과제 7 ... 1544
F.10 엘리베이터 실험 과제 8 ... 1545
F.11 엘리베이터 실험 과제 9 ... 1546
F.12 엘리베이터 실험 과제 10 ... 1547
F.13 엘리베이터 실험 과제 11 ... 1547
F.14 엘리베이터 실험 과제 12 ... 1549
F.15 설계 복습 진문 ... 1549
F.16 추천하는 수정안 ... 1549
부록 G javadoc를 사용하여 HTML documentation 만들기 ... 1551
G.1 소개 ... 1552
G.2 Documentation 주석 ... 1553
G.3 자바 소스 코드의 문서화 ... 1553
G.4 javadoc ... 1561
G.5 javadoc에 의해 생성된 파일 ... 1562
부록 H Enterprise JavaBeans(EJB) 웹 리소스 ... 1567
H.1 소개 ... 1567
H.2 튜토리얼 ... 1567
H.3 데모 ... 1568
H.4 리소스 ... 1569
H.5 개발자 ... 1570
H.6 Specifications ... 1570
H.7 Frequently Asked Questions ... 1570
H.8 잡지 ... 1570
부록 I JINI 웹 리소스 ... 1572
I.1 소개 ... 1572
I.2 튜토리얼 ... 1572
I.3 리소스 ... 1573
I.4 Demos ... 1574
I.5 Specifications ... 1574
I.6 FAQs ... 1574
I.7 Magazines ... 1575
Bibliography ... 1576
썬 마이크로시스템즈 리소스들 ... 1576
다른 리소스들 ... 1578
찾아보기 ... 1583
더보기 닫기