목차 일부
Chapter 01 자바 시작하기
1. 컴퓨팅 환경의 변화 ... 22
메인 프레임 ... 22
클라이언트/서버 컴퓨팅 ... 22
웹 컴퓨팅 ... 23
유비쿼터스 컴퓨팅 ... 25
2. 자바의 역사 ... 27
3. 자바의 특징 ... 31
구조적 중립성(architectural n...
더보기
목차 전체
Chapter 01 자바 시작하기
1. 컴퓨팅 환경의 변화 ... 22
메인 프레임 ... 22
클라이언트/서버 컴퓨팅 ... 22
웹 컴퓨팅 ... 23
유비쿼터스 컴퓨팅 ... 25
2. 자바의 역사 ... 27
3. 자바의 특징 ... 31
구조적 중립성(architectural neutral) ... 31
인터프리터 언어(Interpreted) ... 33
이식성(Portable) ... 33
객체지향적(Object Oriented) ... 33
간단(Simple) ... 33
분산적(Distributed) ... 34
강력(Robust) ... 34
보안성(Secure) ... 35
다중 스레드(Multithreaded) ... 35
성능이 우수(High Performance) ... 36
동적(Dynamic) ... 36
자바와 다른 언어 비교 ... 36
4. 자바의 응용 분야 ... 37
3가지 자바 플랫폼 ... 38
자바의 성능 향상을 위한 방법 ... 39
자바 응용의 확대 ... 40
5. Windows에서 자바 따라하기 ... 45
자바 애플리케이션의 구조 ... 45
애플릿의 구조 ... 49
자바 스크립트 ... 51
6. 리눅스에서 자바 사용하기 ... 53
다운로드 ... 53
설치하기 ... 55
프로그램 작성 & 실행하기 ... 60
7. 로보코드 게임을 통해 자바 배우기 ... 63
로보코드 다운로드 ... 63
로보코드 실행 ... 64
나의 로봇 만들기 ... 66
연습문제 ... 68
Chapter 02 데이터 형과 수식
1. 데이터형 ... 72
데이터형과 변수의 필요성 ... 72
정수 데이터형 ... 75
실수 데이터형 ... 78
문자 데이터형 ... 81
부울린 데이터 형 ... 85
2. 식별자와 예약어 ... 86
식별자(identifier) ... 87
3. 변수의 선언과 치환 ... 89
4. 연산자와 연산식 ... 92
산술 연산자 ... 93
증감 연산자 ... 95
산술 치환 연산 ... 96
비교 연산 ... 97
논리 연산 ... 97
비트 연산 ... 98
5. 간단한 입출력 ... 100
형식이 있는 출력 ... 102
연습문제 ... 104
Chapter 03 제어구조
1. 선택 구조 ... 110
if 문 ... 110
if/else 문 ... 113
조건 연산자( ?:) ... 114
중첩 if-else ... 115
중첩 if 문에서의 블록({...}) 지정 ... 116
switch 다중 선택문 ... 119
2. 반복 구조 ... 122
for 반복문 ... 122
중첩 for 반복문 ... 126
while 반복문 ... 128
do/while 반복문 ... 132
반복 구조의 비교 ... 134
3. break와 continue 문 ... 135
break 문 ... 135
contiue 문 ... 136
지정한 위치로 이동 ... 137
연습문제 ... 139
Chapter 04 배열
1. 배열의 필요성 ... 146
2. 배열의 선언과 메모리 할당 ... 149
다차원 배열 ... 158
3. 정렬 ... 164
선택 정렬(Selection Sort) ... 165
버블 정렬 ... 166
배열의 첨자를 이용한 정렬 기법 ... 168
연습문제 ... 171
Chapter 05 매소드
1. 자바의 메소드 ... 176
2. 변수의 영역 규칙 ... 179
전역변수와 지역변수의 초기화 ... 180
3. 메소드 인자 전달 방식 ... 183
값에 의한 전달 ... 184
참조에 의한 전달 ... 185
4. 재귀 메소드 ... 187
5. 스택 ... 190
연습문제 ... 193
Chapter 06 객체지향 프로그래밍
1. 객체지향이란? ... 198
객체지향의 배경 ... 198
객체와 클래스 ... 199
객체지향의 중요한 개념 ... 201
2. 객체의 생성 및 소멸 ... 202
객체 생성 ... 202
메시지(Message) ... 204
생성자 메소드 ... 205
객체 소멸 ... 208
3. 캡슐화 ... 209
4. 상속성 ... 213
5. 다형성 ... 217
동적 바인딩 ... 217
메소드 오버로딩 ... 219
오버라이딩 ... 221
6. 추상 클래스와 인터페이스 ... 223
추상 클래스 ... 223
인터페이스와 다중 상속, 캡슐화, 다형성 ... 225
7. 패키지 ... 231
JAR 파일의 배포버전 만들기 ... 233
8. final과 static의 사용 ... 237
final ... 237
static ... 238
상속된 클래스의 static 생성자 ... 241
9. 객체 참조 변수 ... 245
객체 참조 변수의 초기화 ... 245
10. 형변환(cast) 예제 ... 249
static 변수에 대한 this, super의 사용 ... 250
연습문제 ... 254
Chapter 07 자바 API
1. 자바 API ... 264
2. 자바 클래스 라이브러리 ... 269
3. java.lang 패키지 ... 273
Object 클래스 ... 274
데이터형 지원 클래스 ... 275
String 클래스 ... 278
Math 클래스 ... 282
Runtime 클래스 ... 284
System 클래스 ... 286
Class 클래스 ... 287
4. java.util 패키지와 콜렉션 ... 289
콜렉션 개요 ... 291
콜렉션 인터페이스 ... 292
콜렉션 클래스 ... 296
Iterator를 통한 콜렉션 접근 ... 300
Map 이용 ... 302
비교자 ... 305
콜렉션 알고리즘 ... 306
Arrays 클래스 ... 308
기존(legacy) 클래스와 인터페이스 ... 309
연습문제 ... 317
Chapter 08 예외 처리 및 멀티스레딩
1. 예외와 예외 처리의 개요 ... 320
2. 예외의 범주 및 종류 ... 322
3. 예외 처리 ... 325
try, catch 블록 ... 325
예외 처리 과정 ... 326
예외 처리의 장점 ... 331
4. 새로운 예외의 정의와 처리 ... 332
finally ... 336
예외 처리시 유의점 ... 338
4. 멀티스레딩의 개념 ... 339
5. 멀티스레드 구조 ... 342
6. Thread 클래스 ... 349
7. 스레드 스케줄링 ... 356
8. 동기화 ... 363
9. 데드락 ... 368
10. 데몬 스레드 ... 371
연습문제 ... 375
Chapter 09 로보 코드를 이용한 객체지향
1. 로보코드 개요 ... 380
로보코드 사용시 이점 ... 380
로보코드 다운로드와 설치방법 ... 380
로보코드의 구성 ... 381
로보코드의 로봇 ... 382
로봇 만들기 ... 383
로봇 컴파일 및 테스트하기 ... 385
JAR파일 생성하기 ... 386
외부 파일 업로드하기 ... 388
로봇 명령어 ... 390
로봇, 총포, 레이더 움직이기 ... 392
로봇에 대한 정보얻기 ... 392
발사 명령어 ... 393
로보코드의 이벤트 ... 393
getHeading()과 getBearing의 차이 ... 394
2. 로보코드 기초다지기 ... 396
로봇의 이동 ... 396
Gun이 상대로봇을 향하여 포탄 발사 ... 410
3. 응용 로봇 ... 413
로봇의 객체화 ... 413
라디안을 사용하는 로봇 ... 415
상대 로봇의 공격 방어 ... 418
벽에 부딪치지 않는 로봇 ... 420
예측사격 ... 424
연습문제 ... 429
Chapter 10 애플릿과 AWT
1. 자바 애플릿 ... 432
메인 이벤트 ... 434
2. 그래픽 처리 및 색과 폰트 ... 437
그래픽 처리 ... 437
색과 폰트 ... 438
자바 애플릿에서의 매개변수 처리 ... 440
자바 애플릿 예제 ... 441
애플릿에서 보안 문제 ... 446
3. AWT ... 447
컴포넌트 ... 448
레이블 ... 449
버튼 ... 450
체크 박스 ... 452
리스트 ... 453
초이스 ... 455
텍스트 필드 ... 456
텍스트 영역 ... 458
스크롤 바 ... 459
캔버스 ... 460
대화상자 ... 461
4. AWT의 레이아웃 ... 463
FlowLayout ... 464
BorderLayout ... 465
GridLayout ... 466
CardLayout ... 466
GridBagLayout ... 467
5. 자바 이벤트 처리 ... 469
윈도우 이벤트 ... 474
액션 이벤트 ... 477
마우스 이벤트 ... 480
이벤트 어댑터(adapter) ... 489
연습문제 ... 491
Chapter 11 스윙 컴포넌트
1. JFC와 스윙 ... 494
스윙의 특징 ... 495
MVC(Model-View-Controller) 구조 기반 ... 496
2. 스윙 이벤트 ... 498
3. 상위 레벨 컨테이너 ... 500
JWindow ... 500
JFrame ... 502
JApplet ... 503
JDialog ... 504
JRootPane ... 504
4. JComponent ... 506
JComponent 클래스의 기능 ... 507
5. 스윙 컨테이너 ... 511
JPanel ... 511
JScrollPane ... 512
JSplitPane ... 514
JTabbedPane ... 517
JToolBar ... 519
JDesktopPand & JInternalFrame ... 521
JLayeredPane ... 524
JOptionPane ... 527
6. 스윙 컴포넌트 ... 532
버튼 ... 532
JComboBox ... 534
JList ... 537
JScrollBar ... 540
메뉴 ... 541
JPopupMenu ... 545
JSlider ... 546
텍스트 관련 컴포넌트 ... 548
JLabel ... 552
JToolTip ... 554
JTable ... 555
JTree ... 563
연습문제 ... 580
Chapter 12 파일 스트림과 객체 직렬화
1. 파일 입출력 스트림 ... 584
System.in 객체와 System.out 객체 ... 586
2. File클래스와 FilenameFilter 인터페이스 ... 587
InputStream과 OutputStream ... 589
FileInputStream과 FileOutputStream ... 591
DataInputStream과 DataOutputStream ... 594
InputStreamReader와 OutputStreamWriter ... 597
BufferedInputStream과 BufferedOutputSystem ... 598
3. 임의 접근 파일 ... 609
4. I/O 성능 비교 ... 615
5. 객체 직렬화 ... 618
객체 스트림 ... 618
Serializable 인터페이스와 Externalizable 인터페이스 ... 620
Persistence(영속성) ... 622
직렬화로부터 데이터 보호하기 ... 623
직렬화된 객체 버저닝하기 ... 624
객체 직렬화를 이용한 간단한 그래픽 에디터 ... 624
간단한 메모장 프로그램 ... 630
연습문제 ... 634
Chapter 13 멀티미디어
1. 이미지 ... 638
이미지 로딩 ... 638
이미지 로드 추적 ... 639
이미지 화면 출력 ... 640
2. 애니메이션 ... 643
Runnable 인터페이스 ... 644
화면의 깜박거림 줄이기 ... 645
더블 버퍼링 ... 649
3. 사운드 ... 653
사운드의 정의 및 자바 사운드 ... 654
자바 사운드와 자바 MIDI ... 655
애플릿에서 간단한 오디오 플레이 ... 656
javax.sound.sampled에서의 LineListener와 예외 처리 ... 658
javax.sound.sampled를 이용한 오디오 재생하기 ... 659
4. 비디오 ... 663
JMF(Java Media Framework) ... 663
javax.media.*에서의 ControllerListener와 예외 처리 ... 664
비디오 파일의 재생 ... 666
연습문제 ... 676
Chapter 14 자바 2D 그래픽스와 프린터 출력
1. 자바 2D API 개요 ... 680
자바 2D 렌더링 ... 681
좌표 시스템 ... 682
2. Graphics2D로 그래픽 출력 ... 683
그래픽 캔버스 제작 ... 683
컴포넌트에 그리기 ... 684
그래픽 기본 요소 그리기와 영역 채우기 ... 685
다양한 스타일의 선과 패턴 ... 688
패턴 채우기(paint) ... 690
텍스트 그리기 ... 691
폰트 ... 691
텍스트 레이아웃 ... 693
도형과 텍스트 이미지 변형하기 ... 694
그리기 영역의 클립핑(Clipping) ... 696
그래픽 요소의 합성(Composite) ... 696
렌더링 품질 제어하기(RenderingHints) ... 698
기본 도형요소로 복잡한 모양 만들기 ... 699
3. 이미지 처리 ... 704
즉시 모드 이미지 ... 704
BufferedImage의 필터링 ... 705
더블버퍼링 ... 708
4. 자바에서의 프린터 ... 714
Printable 인터페이스를 이용한 프린터 출력 ... 715
페이지 설정 대화상자 ... 717
Pageable 인터페이스와 Book 클래스 ... 718
연습문제 ... 720
Chapter 15 자바 네트워킹
1. Socket을 이용한 통신 ... 723
채팅 응용 ... 724
2. 메시지 기반 통신 ... 731
메시지 입출력 클래스 ... 732
Queue 클래스 ... 741
queue I/O Stream 클래스 ... 742
3. 메시지 스트림의 멀티플렉싱 ... 744
multiplex I/O Stream 클래스 ... 744
Demultiplexer 클래스 ... 747
DeliveryOutputStream 클래스 ... 748
Recipient 인터페이스 ... 749
4. 공동 작업을 위한 예제 ... 750
연습문제 ... 756
Chapter 16 데이터베이스
1. 데이터베이스 개요 ... 758
데이터베이스 필요성과 관계형 데이터베이스 ... 758
데이터베이스 미들웨어 ... 759
2. 시스템의 구조 ... 760
시스템 구성 ... 761
JDBC 드라이버 타입 ... 762
3. DBMS의 설치 및 환경설정 ... 764
MySQL DBMS 설치 ... 764
JDBC 드라이버 설치 ... 765
MySQL에서 DB 및 테이블 생성 ... 767
4. JDBC API ... 771
java.sql과 javax.sql ... 771
데이터베이스 연결 설정 ... 774
데이터베이스 연결 ... 776
SQL문 실행 ... 777
질의 결과 ... 780
트랜잭션 처리 ... 785
Chapter 17 자바 빈즈
1. 소프트웨어 컴포넌트 및 자바빈즈 ... 788
소프트웨어 컴포넌트 예 ... 788
자바 빈즈 ... 791
자바빈즈 컴포넌트 서비스 ... 792
2. 빈 박스 사용하기 ... 795
JavaBeans Development Kit(BDK) ... 795
빈 박스 기능 ... 797
빈 박스 메뉴 ... 798
애플릿을 생성하기 위한 빈 박스 사용 ... 798
3. 자바 빈즈 구현 ... 801
간단한 빈 작성 ... 801
자바 빈즈 설계 서식 ... 802
대소문자 규칙 ... 803
속성 접근 서식 ... 803
색인된 속성 ... 805
부울린 속성 ... 805
경계형 속성 ... 806
제약형 속성 ... 809
4. 빈 박스에서 이벤트 조작하기 ... 811
이벤트 발견 ... 811
이벤트 보기 ... 813
이벤트 어댑터 클래스 생성 ... 814
EventMonitor 빈 ... 814
5. BeanInfo 인터페이스 ... 815
Descriptor의 특성 ... 816
BeanInfo 클래스 생성 ... 817
6. 빈 Customization ... 819
속성 편집기 ... 820
Customizer ... 822
7. 빈 영속성 ... 823
자동 직렬화 ... 823
선택적 직렬화 ... 824
완벽한 직렬화 제어 ... 825
8. DB 자바 빈즈 만들기 ... 826
DBBean ... 826
DBBean 만들기 ... 826
9. 애플릿에서 자바 빈즈 ... 831
애플릿을 빈으로 변환하기 ... 831
reflection 메카니즘 ... 838
부록
JCreator 설치 ... 846
JCreator 사용법 ... 847
JCreator 옵션 ... 850
편집창 옵션 ... 850
자신만의 아이콘 ... 852
모든 메뉴 자주 사용하는 출력창 보이기나 클래스뷰 창같은 것에 단축키를 설정하기 ... 854
Code Complete는 아주 막강한 기능이다. ... 855
Code Templete를 활용하라. ... 856
2.5에서 지원되는 기능 ... 857
실행시 자꾸 main class를 못찾는다고 나올 때 ... 859
Appletviewer 사용시 에러가 뜰 때 ... 860
Debugging ... 861
Eclipse 플랫폼으로 자바 프로그램 개발하기 ... 864
이클립스(Eclipes)는 무엇인가? ... 864
이클립스 위크벤취 ... 864
The Java Development Environment(JDE) ... 866
찾아보기 ... 871
더보기 닫기