[1권 : 기초문법편]
머리말 = 4
이렇게 학습하세요 = 6
감수자&베타리더의 글 = 8
1부 시작하기
1장 프로그래밍이란 무엇인가?
Programming의 P = 20
자바 프로그램의 메소드는 이렇게 구성되어 있어요 = 21
자바의 가장 작은 단위는 클래스랍니다 = 23
클래스는 상태를 갖고 있어야 합니다 = 25
프로그램의 가장 기본은 =를 이해하는 것 = 26
한 줄을 의미하는 세미콜론 = 29
모든 프로그래밍 언어에는 예약어라는 것이 있어요 = 31
2장 Hello Basic Java
자바를 배울 환경 준비하기 = 38
HelloBasicJava 만들기 = 42
HelloBasicJava 컴파일하고 실행하기 = 44
main 메소드를 만들자 = 47
System.out.println()과 System.out.print() = 51
주석(Comment) 처리하기 = 52
메소드를 직접 만들어 보자 = 56
3장 자바를 제대로 알려면 객체가 무엇인지를 알아야 해요
자바는 객체지향 언어라고 해요 = 62
클래스와 객체는 구분하셔야 해요 = 65
Car 클래스를 구현하자 = 67
계산기 클래스를 만들어보자 = 70
Calculator 객체를 생성해보자 = 71
2부 기초 문법
4장 정보를 어디에 넣고 싶은데
자바에서는 네 가지의 변수가 존재해요 = 82
예제를 통해서 지역 변수를 확실히 익히자 = 85
변수 이름은 이렇게 = 88
크게 보면 자바에는 두 가지 자료형이 있답니다 = 89
기본 자료형은 8개에요 = 91
8비트와 byte 타입 = 94
다른 정수형 타입들은 어떻게 활용하나? = 98
소수점을 처리하고 싶어요 = 100
char와 boolean는 어떻게 쓰는 거지? = 102
기본 자료형의 기본 값은 뭘까? = 105
5장 계산을 하고 싶어요
연산자라는 게 뭐지? 벌써 조금 배웠다고? = 114
간단하게 계산하는 대입 연산자들 = 119
피연산자가 하나인 것도 있어요. 이걸 단항 연산자라고 하죠 = 120
자바에서 계산하는 순서를 알아두면 좋다 = 125
뭔가를 비교할 때는 어떻게 하지? = 126
논리 연산자들을 알아보자 = 131
아주 특이한 ? : 연산자 = 133
기본 자료형의 형 변환을 이용한 변신 = 135
타입 별 사용 가능한 연산자 알아보기 = 138
6장 제가 좀 조건을 따져요
도대체 얼마나 조건을 따지길래… = 150
if를 조금 더 다양하게 사용해보자 = 155
자바의 switch와 불켜는 스위치는 별 상관 없다 = 161
반복문이라구요? = 166
가장 확실한 for 루프 = 173
7장 여러 개를 하나에 넣을 수는 없을까요?
하나에 많은 것을 담을 수 있는 배열이라는 게 있다는데… = 182
배열의 기본값 = 187
배열을 그냥 출력해보면 어떻게 나올까? = 191
배열을 선언하는 또 다른 방법 = 193
별로 사용하지는 않지만, 알고 있어야 하는 2차원 배열 = 196
배열의 길이는 어떻게 알 수 있을까요? = 200
배열을 위한 for 루프 = 205
자바 실행할 때 원하는 값들을 넘겨주자 = 208
3부 객체지향
8장 참조 자료형에 대해서 알아봅시다
참조 자료형은 나머지 다에요 = 218
기본 생성자 = 219
생성자는 몇 개까지 만들 수 있을까? = 222
이 객체의 변수와 매개 변수를 구분하기 위한 this = 226
메소드 overloading = 228
메소드에서 값 넘겨주기 = 229
static 메소드와 일반 메소드의 차이 = 235
static 블록 = 239
Pass by value, Pass by reference = 243
매개 변수를 지정하는 특이한 방법 = 248
9장 자바를 배우면 패키지와 접근 제어자는 꼭 알아야 해요
패키지는 그냥 폴더의 개념이 아니에요 = 260
패키지 이름은 이렇게 지어요 = 265
import를 이용하여 다른 패키지에 접근하기 = 267
자바의 접근 제어자 = 272
클래스 접근 제어자 선언할 때의 유의점 = 276
10장 자바는 상속이라는 것이 있어요
자바에서 상속이란? = 284
상속과 생성자 = 288
메소드 Overriding = 295
참조 자료형의 형 변환 = 300
polymorphism = 309
자식 클래스에서 할 수 있는 일들을 다시 정리해보자 = 310
11장 모든 클래스의 부모 클래스는 Object에요
모든 자바 클래스의 부모인 java.lang.Object 클래스 = 318
Object 클래스에서 제공하는 메소드들의 종류는? = 320
Object 클래스에서 가장 많이 쓰이는 toString() 메소드 = 322
객체는 ==만으로 같은지 확인이 안 되므로, equals()를 사용하죠 = 329
객체의 고유값을 나타내는 hashCode() = 335
12장 인터페이스와 추상클래스, 그리고 enum
메소드 내용이 없는 interface = 342
인터페이스를 직접 만들어보자 = 345
일부 완성되어 있는 abstract 클래스 = 351
나는 내 자식들에게 하나도 안 물려줄꺼여 = 355
enum 클래스라는 상수의 집합도 있다 = 363
enum을 보다 제대로 사용하기 = 366
enum 클래스의 부모는 무조건 java.lang.Enum이어야 해요 = 369
13장 클래스 안에 클래스가 들어갈 수도 있구나
클래스 안의 클래스 = 378
Static nested 클래스의 특징 = 379
내부 클래스와 익명 클래스 = 382
Nested 클래스의 특징은 꼭 알아야 한다 = 388
14장 다 배운 거 같지만, 예외라는 중요한 것이 있어요
자바에서 매우 중요한 예외 = 396
try-catch는 짝이다 = 397
try-catch를 사용하면서 처음에 적응하기 힘든 변수 선언 = 402
finally 야∼ 넌 무슨 일이 생겨도 반드시 실행해야 돼 = 405
두 개 이상의 catch = 407
예외의 종류는 세 가지다 = 413
모든 예외의 할아버지는 java.lang.Throwable 클래스다 = 415
난 예외를 던질 거니까 throws라고 써 놓을께 = 419
내가 예외를 만들 수도 있다구? = 424
자바 예외 처리 전략 = 427
15장 어노테이션이라는 것도 알아야 한다
어노테이션이란? = 434
미리 정해져 있는 어노테이션들은 딱 3개뿐 = 434
어노테이션을 선언하기 위한 메타 어노테이션 = 441
어노테이션을 선언해 보자 = 442
어노테이션에 선언한 값은 어떻게 확인하지? = 445
어노테이션도 상속이 안돼요 = 447
16장 이제 기본 문법은 거의 다 배웠으니 정리해 봅시다.
객체지향 개발과 관련된 용어들 = 452
자바의 주석문(Comment) = 456
패키지와 import = 457
자바에서 사용되는 타입의 종류 = 458
변수의 종류 = 459
계산을 쉽게 도와주는 연산자들 = 460
조건문들 = 462
반복문들 = 463
아무나 사용 못하게 막아주는 접근 제어자 = 465
선언할 때 사용할 수 있는 각종 제어자 들 = 466
자바를 구성하는 클래스, 인터페이스, abstract 클래스 = 466
메소드의 선언 = 470
자주 사용하게 되는 상속 = 470
예외를 처리하자 = 471
어노테이션을 선언 할 때 사용하는 메타 어노테이션들 = 472
〈자바의 신〉Vol.1 학습 점검, 최종 실습 = 475
부록 1. JDK설치하기 = 483
부록 2. Eclipse 설치하기 = 495
부록 3. float과 double의 범위 = 513
부록 4. 이 이상한 연산자들은 뭘까? = 517
부록 5. 이쯤에서 자바의 역사와 JVM에 대해서 알아보자 = 533
찾아보기 = 552
[2권 : 주요 API 응용편]
머리말 = 4
이렇게 학습하세요 = 6
감수자&베타리더의 글 = 8
1부 기본 API
1장. 매번 만들기 귀찮은데 누가 만들어 놓은 거 쓸 수 없나요?
미리 만들어 놓은 클래스들은 아주 많아요 = 20
API를 열어보자 = 21
클래스 및 인터페이스의 상세 정보 화면을 살펴보자 = 24
Deprecated라고 표시되어 있는 것은 뭐야? = 33
어노테이션과 Enum의 상세 정보 화면은 조금 다르다 = 36
Header와 Footer에 있는 링크들은 뭘까? = 36
2장. String
자바에서 가장 많이 사용하는 String 클래스 = 46
String의 생성자에는 이런 애들이 있다 = 48
String 문자열을 byte로 변환하기 = 50
객체의 널 체크는 반드시 필요하답니다 = 57
String의 내용을 비교하고 검색하는 메소드들도 있어요 = 59
String 내에서 위치를 찾아내는 방법은 여러 가지에요 = 71
String의 값의 일부를 추출하기 위한 메소드들은 얘네들이다 = 75
String 값을 바꾸는 메소드들도 있어요 = 80
절대로 사용하면 안 되는 메소드가 하나 있어요!!! = 88
immutable한 String의 단점을 보완하는 클래스에는 StringBuffer와 StringBuilder가 있다 = 90
3장. 가장 많이 쓰는 패키지는 자바랭
java.lang 패키지는 특별하죠 = 100
숫자를 처리하는 클래스들 = 103
각종 정보를 확인하기 위한 System 클래스 = 108
System.out을 살펴보자 = 116
수학적인 계산을 위해서 꼭 필요한 Math 클래스 = 120
4장. 실수를 방지하기 위한 제네릭이라는 것도 있어요
실수를 방지할 수 있도록 도와주는 제네릭 = 134
제네릭이 뭐지? = 136
제네릭 타입의 이름 정하기 = 140
제네릭에 ?가 있는 것은 뭐야? = 140
제네릭 선언에 사용하는 타입의 범위도 지정할 수 있다 = 143
메소드를 제네릭하게 선언하기 = 145
5장. 자바랭 다음으로 많이 쓰는 애들은 컬렉션 - Part 1(List)
자바 컬렉션 = 152
List 인터페이스와 그 동생들 = 156
ArrayList에 대해서 파헤쳐보자 = 157
ArrayList의 생성자는 3개다 = 158
ArrayList에 데이터를 담아보자 = 162
ArrayList에서 데이터를 꺼내자 = 168
ArrayList에 있는 데이터를 삭제하자 = 172
Stack 클래스는 뭐가 다른데? = 176
6장. 자바랭 다음으로 많이 쓰는 애들은 컬렉션 - Part 2(Set과 Queue)
Set이 왜 필요하지? = 188
HashSet에 대해서 파헤쳐 보자 = 189
HashSet의 생성자들도 여러 종류가 있다 = 191
HashSet의 주요 메소드를 살펴보자 = 192
Queue는 왜 필요할까? = 196
LinkedList를 파헤쳐보자 = 198
LinkedList의 생성자와 주요 메소드를 살펴보자 = 199
7장. 자바랭 다음으로 많이 쓰는 애들은 컬렉션 - Part 3(Map)
Map이란? = 210
Map을 구현한 주요 클래스들을 살펴보자 = 211
HashMap 클래스에 대해서 자세히 알아보자 = 213
HashMap 객체에 값을 넣고 확인해보자 = 214
HashMap 객체의 값을 확인하는 다른 방법들을 알아보자 = 217
정렬된 키의 목록을 원한다면 TreeMap을 사용하자 = 223
Map을 구현한 Properties 클래스는 알아두면 편리하다 = 225
자바의 자료구조를 정리해보자 = 231
8장. 그 다음으로 많이 쓰는 애들은 자바 유틸
java.lang 다음으로 많이 사용되는 java.util 패키지 = 240
날짜를 처리하기 위한 Date와 Calendar = 241
컬렉션 객체들의 도우미 Collections = 250
배열을 쉽게 처리해주는 Arrays = 251
임의의 값을 생성하기 위한 Random = 254
문자열을 자르기 위한 StringTokenizer = 256
java.math 패키지의 BigDecimal 클래스를 활용하자 = 260
2부 필수 API
9장. 쓰레드는 개발자라면 알아두는 것이 좋아요
쓰레드가 도대체 뭘까? = 272
Runnable 인터페이스와 Thread 클래스 = 273
Thread 클래스의 생성자를 살펴보자 = 279
많이 사용되는 sleep() 메소드 = 282
Thread 클래스의 주요 메소드를 살펴보자 = 285
쓰레드와 관련이 많은 synchronized = 288
synchronized 블록은 이렇게 사용한다 = 295
쓰레드를 통제하는 메소드들 = 298
Object 클래스에 선언된 쓰레드와 관련있는 메소드들 = 309
ThreadGroup에서 제공하는 메소드들 = 314
각 쓰레드에서 혼자 쓸 수 있는 값을 가지려면 ThreadLocal을 쓰면 되요 = 317
자바의 volatile = 321
10장. 파일에 있는 것을 읽고 쓰려면 아이오를 알아야죠
I/O는... = 332
자바의 File과 Files 클래스 = 333
File 클래스를 이용하여 파일의 경로와 상태를 확인해 보자 = 334
File 클래스를 이용하여 파일을 처리하자 = 339
디렉터리에 있는 목록을 살펴보기 위한 list 메소드들 = 342
InputStream과 OutputStream은 자바 스트림의 부모들이다 = 348
Reader와 Writer = 352
텍스트 파일을 써보자 = 355
텍스트 파일을 읽어보자 = 359
11장. Serializable과 NIO도 살펴 봅시다
Serializable에 대해서 좀 살펴 보자 = 372
객체를 저장해보자 = 373
객체를 읽어보자 = 377
transient라는 예약어는 Serializable과 떨어질 수 없는 관계다 = 382
자바 NIO란? = 383
NIO의 Buffer 클래스 = 385
12장. 다른 서버로 데이터를 보내려면 어떻게 하면 되나요?
네트워크 프로그래밍이란? = 394
소켓 통신을 하기 위해서 알아야 하는 Socket 클래스 = 396
간단하게 소켓 통신을 해보자 = 398
UDP 통신을 위해서 알아야 하는 Datagram 관련 클래스 = 405
간단하게 UDP 통신을 해보자 = 407
자바에서 웹 페이지 요청을 하려면 어떻게 해야 하지? = 411
13장. 이제 주요 API도 알아봤으니 정리해 봅시다
자바의 예약어들 = 416
API의 기초 = 419
제네릭 = 420
쓰레드 = 422
Object 클래스 = 424
String 클래스 = 425
System 클래스 = 426
자바 API에서 제공하는 자료구조와 Collection = 428
Collection-List 인터페이스 = 428
Collection-Set 인터페이스 = 429
Collection-Queue 인터페이스 = 429
Collection-Map 인터페이스 = 430
java.util 패키지의 주요 클래스들 = 431
Formatter 관련 클래스들 = 433
IO 관련 클래스들 = 437
네트워크 관련 클래스들 = 440
〈자바의 신〉Vol.2 기말고사 = 443
14장. JDK 7에서 달라진 것들에는?
JDK 7에서는... = 454
달라진 숫자 표현법!!! = 455
switch 문장도 좀 확장 되었대요 = 458
제네릭은 다이아몬드(Diamond)를 쓰면 쉬워요 = 460
Non-reifiable varargs 타입 = 467
예외도 이렇게 보완되었답니다 = 469
JDK 7부터는 꼭 안닫아도 되는 애들이 있어요 = 472
15장. JDK 7에 추가된 것들에는?
JDK 7에서 추가된 것들은? = 476
Fork/Join은 CPU를 더 쉽게, 효율적으로 사용하기 위해서 만들어진 거에요 = 476
NIO도 어려운데 NIO 2가 나왔다 = 485
Files 클래스는 파일을 다루기 위한 클래스랍니다 = 489
파일이 변경되었는지 확인하는 WatchService 클래스도 추가되었어요 = 498
파일과 관련된 다른 새로운 API에는 어떤 것들이 있을까? = 504
Fork/Join과 NIO2 외에 추가 및 변경된 것들을 간단히 살펴보죠 = 505
3부 웹 개발의 기본
16장. 저는 이런 것 말고 웹 페이지를 만들고 싶었다구요
자바 기본서에서 왜 JSP와 Servlet을 배우나요? = 512
자바로 웹 페이지는 어떻게 만드나요? = 513
간단한 JSP 예제를 통해서 조금 친해져 보자 = 515
서블릿이 뭐에요? = 522
서블릿의 기본만 살펴보자 = 530
아주 간단한 로그인 기능을 서블릿과 JSP로 만들어 보자 = 532
17장. 그럼 데이터를 저장하려면 어떻게 해야 하는데요?
JDBC라는 것이 뭔가요? = 542
JDBC 실습을 위한 환경 구성을 하자 = 543
JDBC로 DB에 접속하여 데이터를 처리해 보자 = 547
JDBC의 close 순서는 꼭 기억하자 = 556
Statement와 PreparedStatement의 차이점은 알아야만 한다 = 558
DataSource와 DB Connection Pool에 대해서 알아보자 = 560
웹에서 데이터를 조회해보자 = 561
18장. 이제 저는 뭘 더 공부해야 하는 거죠?
이제 뭘 공부해야 할까? = 574
자바 언어로 개발하기 위해서 알아야 하는 것들(Group 1) = 576
웹 개발자라면 알아야 하는 것들(Group 2) = 580
이것만으로는 부족하다(Group 3) = 586
부록 1. jar = 593
부록 2. classpath와 자바 옵션들 = 599
부록 3. javadoc = 607
부록 4. Tomcat 설치하기 = 615
부록 5. JSP와 web.xml 추가 설명 = 619
부록 6. SQL 기초와 JDBC 타입 = 627
부록 7. Formatter는 알아두면 매우 유용하게 사용할 수 있어요 = 635
찾아보기 = 669