1 기초 쌓기 제1장 우선 필요한 소프트웨어를 설치합시다 ... 23 1.1 자바부터 설치하세요 ... 24 1.2 Java API Document 설치하기 ... 30 1.3 이제 에디터를 설치합니다 ... 32 1.4 j2sdk가 뭘까? ... 33 1.5 이 책으로 자바를 잘 배우는 요령 ... 36 1.6 고수 포인트 ... 37 제2장 자바 프로그램 훑어보기 ... 38 2.1 처음 보는 자바 프로그램 ... 39 2.2 변수와 상수를 사용하는 자바 프로그램 ... 42 2.3 연산자를 사용하는 자바 프로그램 ... 45 2.4 제어문을 사용하는 자바 프로그램 ... 46 2.5 객체를 사용하는 자바 프로그램 ... 48 2.6 고수 포인트 ... 49 제3장 우선 이것부터 알아두세요 ... 50 3.1 주석문으로 설명을 달아주세요 ... 51 3.2 이름은 함부로 짓는 게 아니랍니다 ... 52 3.3 변수와 상수는 여러 종류가 있어요 ... 55 3.4 고수 포인트 ... 63 제4장 자바는 연산도 잘해요 ... 64 4.1 할당 연산자 ... 65 4.2 산술 연산자 ... 66 4.3 증감 연산자 ... 67 4.4 관계 연산자 ... 69 4.5 논리 연산자 ... 70 4.6 3항 연산자 ... 72 4.7 비트 연산자 ... 73 4.8 쉬프트 연산자 ... 76 4.9 형 변환 연산자 ... 79 4.10 할당 연산자의 다른 모습 ... 84 4.11 고수 포인트 ... 86 제5장 조건문으로 깐깐하게 따져요 ... 87 5.1 한가지만 따지는 if문 ... 88 5.2 계속 따지고 드는 if-else문 ... 89 5.3 세련되게 따지는 switch-case문 ... 94 5.4 고수 포인트 ... 97 제6장 반복문으로 돌고 돌아요 ... 98 6.1 일단 실행부터 하고 보는 do-while ... 99 6.2 조건부터 따지고 반복하는 while ... 101 6.3 제일 많이 사용되는 for ... 103 6.4 고스톱을 지휘하는 break와 continue ... 105 6.5 고수 포인트 ... 107 제7장 배열은 변수들의 호텔 같아요 ... 108 7.1 배열은 번호가 붙은 변수들의 모임입니다 ... 109 7.2 문자형 배열을 한번 봅시다 ... 111 7.3 고수 포인트 ... 112 2 객체 잡기 제8장 자바는 객체 덩어리랍니다 ... 115 8.1 프로그램이 너무 길고 중복돼요 ... 116 8.2 자바에서는 클래스로 묶어요 ... 118 8.2 클래스, 객체, 인스턴스는 삼각 관계가 아니랍니다 ... 120 8.4 자바가 객체 덩어리라고요? ... 124 8.5 조금 더 밝혀야 할 클래스와 객체의 관계 ... 126 8.6 고수 포인트 ... 132 제9장 객체를 주무르기 위한 준비 운동 ... 133 9.1 실행 시잔문? 정체를 밝힙니다 ... 134 9.2 void와 return입니다. 돌려줘요? 말아? ... 137 9.3 접근 지정자를 보고 접근하세요 ... 140 9.4 내가 만든 객체는 내 패키지에 ... 145 9.5 클래스 분석을 도와주는 주석 ... 153 9.6 고수 포인트 ... 154 제10장 객체 속속들이 들여다보기 ... 155 10.1 무조건 자동 실행되는 생성자라는 메소드 ... 156 10.2 메소드 이름이 똑 같은 메소드 오버로딩 ... 162 10.3 자기 클래스를 가리키는 this ... 166 10.4 객체를 캡슐 속에 감추세요 ... 172 10.5 객체 가문의 상속 이야기 ... 176 10.6 super로 부모님을 찾아가는 방법 ... 184 10.7 메소드 오버라이딩은 상속 받아 고쳐써요 ... 188 10.8 다형성을 이용한 객체의 변신 ... 189 10.9 고수 포인트 ... 191 제11장 객체 마무리하기 ... 192 11.1 객체 왕국의 공유 지역인 static ... 193 11.2 final은 마지막입니다 ... 197 11.3 추상 클래스는 마음대로 고쳐 쓰세요 ... 201 11.4 더 많이 확장된 인터페이스 ... 205 11.5 클래스 안에 클래스가 또 있어요 ... 212 11.6 자유로운 대화를 위한 wrapper 클래스 ... 218 11.7 고수 포인트 ... 222 제12장 객체로 배우는 문자열 ... 223 12.1 String은 클래스랍니다 ... 224 12.2 문자열 연결하기 ... 225 12.3 문자열 비교하기 ... 226 12.4 문자에 하나씩 접근하기 ... 228 12.5 특정 문자의 위치 알아내기 ... 229 12.6 부분 문자열 추출하기 ... 230 12.7 공백 문자 제거하기 ... 231 12.8 문자열 형으로 변환하기 ... 232 12.9 버퍼를 사용해 문자열 처리하기 ... 233 12.10 고수 포인트 ... 236 제13장 객체로 배우는 배열 ... 237 13.1 객체 배열 사용해보기 ... 238 13.2 2차원 배열 사용하기 ... 240 13.3 고수 포인트 ... 242 3 응용하기 제14장 예외를 방지하세요 ... 245 14.1 에러와 예외는 달라요 ... 246 14.2 try - catch로 예외를 잡아요 ... 248 14.3 여러 개의 예외를 모두 점검하세요 ... 253 14.4 try - catch - finally도 있어요 ... 255 14.5 throw와 throws로 던져 버리세요 ... 256 14.6 내가 만드는 예외 클래스 ... 259 14.7 고수 포인트 ... 261 제15장 그래픽 사용자 인터페이스를 만드는 AWT ... 263 15.1 자바가 주는 선물 AWT ... 264 15.2 Frame 만들기 ... 266 15.3 Panel 만들기 ... 268 15.4 정돈은 레이아웃 관리자가 ... 270 15.5 자신이 직접 배치하기 ... 271 15.6 BorderLayout 사용하기 ... 273 15.7 FlowLayout 사용하기 ... 276 15.8 GridLayout 사용하기 ... 281 15.9 Cardlayout 사용하기 ... 283 15.10 Label 만들기 ... 286 15.11 Button 만들기 ... 288 15.12 TextField 만들기 ... 289 15.13 TextArea 만들기 ... 291 15.14 List 만들기 ... 293 15.15 Checkbox 만들기 ... 295 15.16 Choice 만들기 ... 297 15.17 Scrollbar 만들기 ... 298 15.18 Menu 만들기 ... 300 15.9 고수 포인트 ... 302 제16장 Event로 AWT에 생명을 ... 303 16.1 이벤트는 깜짝 쇼인가? ... 304 16.2 Event에 관한 예비 지식 ... 305 16.3 ActionEvent 처리하기 ... 307 16.4 ItemEvent 처리하기 ... 322 16.5 WindowEvent 처리하기 ... 328 16.6 WindowAdapter 사용하기 ... 330 16.7 MouseEvent 처리하기 ... 332 16.8 MOuseAdapter 사용하기 ... 336 16.9 내부 클래스를 사용해서 이벤트 처리하기 ... 337 16.10 더블클릭 이벤트 처리하기 ... 339 16.11 마우스 버튼 구분하기 ... 341 16.12 간단한 팝업 메뉴 만들기 ... 343 16.13 고수 포인트 ... 345 제17장 쓰레드로 실행을 간섭해요 ... 348 17.1 쓰레드는 프로세스 안에 살아요 ... 349 17.2 쓰레드를 만드는 2가지 방법 ... 352 17.3 쓰레드들은 생명 주기가 있어요 ... 356 17.4 쓰레드의 실행 우선 순위 조절하기 ... 359 17.5 쓰레드의 상태 조절하기 ... 362 17.6 쓰레드 동기화 시키기 ... 372 17.7 wait()와 notify() 사용하기 ... 376 17.8 고수 포인트 ... 380 제18장 웹 브라우저에서 실행되는 애플릿 ... 381 18.1 처음 보는 애플릿 프로그램 ... 382 18.2 애플릿 자세히 보기 ... 384 18.3 애플릿도 생명 주기가 있어요 ... 385 18.4 애플릿에서 AWT 사용하기 ... 389 18.5 애플릿에 인수 값 전달하기 ... 392 18.6 이미지 다루기 ... 395 18.7 애니메이션 만들기 ... 396 18.8 사운드 재생하면서 애니메이션 하기 ... 399 18.9 고수 포인트 ... 402 제19장 다양한 데이터 관리 방법 ... 403 19.1 데이터를 관리하는 방법? ... 404 19.2 중복 불가능하고 순서 없는 Set ... 405 19.3 중복 가능하고 순서 있는 List ... 406 19.4 배열을 보완한 Vector ... 407 19.5 나중 데이터가 더 먼저 처리되는 Stack ... 411 19.6 키가 있는 MAP ... 412 19.7 고수 포인트 ... 413 제20장 데이터 입출력하기 ... 414 20.1 입출력에 사용되는 클래스들 ... 415 20.2 InputStream과 InputStreamReader 사용하기 ... 418 20.3 FileinputStream과 FileReader 사용하기 ... 423 20.4 BufferedInputStream과 BufferedReader 사용하기 ... 426 20.5 OutputStream과 OutputStreamWriter 사용하기 ... 429 20.6 FileOutputStream과 FileWriter 사용하기 ... 432 20.7 BufferedOutputStream과 BufferedWriter 사용하기 ... 436 20.8 PrintWriter 사용하기 ... 441 20.9 DataInputStream과 DataOurputStream 사용하기 ... 443 20.10 ObjectInputStream과 ObjectOutputStream으로 객체 직렬화 ... 446 20.11 File 사용하기 ... 451 20.12 고수 포인트 ... 454 제21장 데이터베이스는 데이터들의 베이스 캠프 ... 455 21.1 데이터베이스의 정체를 밝힙니다 ... 456 21.2 이제 DBMS를 설치하고 연습하세요 ... 459 21.3 데이터 베이스의 틀을 잡아요 ... 464 〔1〕데이터 베이스 만들기 ... 466 〔2〕테이블 만들기 ... 467 〔3〕테이블 구조 변경하기 ... 468 21.4 상품 DB를 운영해 보세요 ... 472 〔1〕데이터 입력하기 ... 472 〔2〕데이터 검색하기 ... 474 〔3〕데이터 수정하기 ... 476 〔4〕데이터 삭제하기 ... 477 21.5 자바 프로그램에서 데이터베이스 사용하기 ... 479 21.6 꼭 알아두어야 할 6가지 코드 ... 481 〔1〕JDBC 드라이버 로딩하기 ... 481 〔2〕DB에 연결하기 ... 482 〔3〕SQL 사용하기 ... 483 〔4〕DB 연결 해제하기 ... 487 21.7 자바로 데이터베이스 프로그램 짜기 ... 490 21.8 고수 포인트 ... 496 제22장 네트워크 프로그램을 짜보세요 ... 497 21.1 서버와 클라이언트 이야기 ... 498 22.2 IP 주소와 포트 이야기 ... 500 22.3 IP 주소와 DNS 변환하기 ... 502 22.4 URL로 서버 자원 접근하기 ... 504 22.5 URLConnection으로 헤더 정보 읽기 ... 509 22.6 TCP 소켓 프로그래밍이란? ... 512 22.7 간단한 서버와 클라이언트 만들기 ... 513 22.8 서버와 클라이언트가 데이터 주고받기 ... 520 22.9 GUI를 이용한 서버와 클라이언트 구축 ... 526 22.10 간단한 채팅 구현하기 ... 535 22.11 GUI를 입힌 채팅 구현하기 ... 544 22.12 여러 명이 대화할 수 있는 채팅 구현하기 ... 551 22.13 고수 포인트 ... 577