목차
Chapter 01 도대체 Java가 뭐야? ... 18
   01 세계 최초로 성공한 가상 컴퓨터 명세 ... 22
   02 소프트웨어로 가상 컴퓨터를 실현한다 ... 23
   03 커피잔은 명세의 증거 ... 25
   04 세계 최초는 아니지만 성공 예로서는 세계 최초 ... 27
   05 여러 컴퓨터에서 소프트웨어가 실행 가능 ... 28
   06 Java 자신이 OS로서의 기능을 정의하고 있다 ... 31
   07 순수한 객체 지향 ... 33
   08 확장 가능한 명세의 집합체 ... 35
   09 기업에 필요한 기능이 탑재되어 있다 ... 37
   10 많은 기업이 지지하는 오픈된 명세 ... 39
   COLUMN - 여러 가지 Java 이야기 ① 빨리 보는 Java 역사 ... 42
Chapter 02 모든 하드웨어를 동일하게 취급한다 ... 44
   01 소프트웨어 이식은 오랜 고민의 원인 ... 48
   02 넘어야 하는 두 개의 벽 ... 50
   03 컴퓨터는 '주판'으로 생각하면 알기 쉽다 ... 51
   04 소프트웨어를 사람의 말로 생각해 본다 ... 53
   05 기계어는 컴퓨터의 종류에 따라 다르다 ... 54
   06 어셈블리 언어에 의한 개발은 호환성이 전혀 없음 ... 56
   07 고수준 언어로 소스 코드 호환이 가능해지다 ... 59
   08 옛날에는 컴퓨터마다 컴파일러가 필요 ... 62
   09 소스 코드 상태의 소프트웨어 유통 ... 63
   10 인터프리터 언어와 스크립트 ... 66
   11 인터프리터 언어의 한계 ... 68
   12 Java 이전의 문제 ... 69
   13 Java 가상 머신이라는 소프트웨어 ... 70
   14 JVM의 특징 ... 72
   15 Java 클래스는 바이너리로 배포 가능 ... 74
   16 Unicode의 채택 ... 76
   17 JIT 컴파일러/HotSpot 기술 ... 78
   COLUMN - 여러 가지 Java 이야기 ② 여러 가지 아키텍처 ... 80
Chapter 03 모든 OS를 동일하게 취급한다 ... 82
   01 또 하나의 벽 ... 86
   02 소프트웨어는 OS별로 존재한다 ... 87
   03 OS는 하드웨어를 중개한다 ... 89
   04 OS마다 소스 코드는 다르다 : API의 차이 ... 92
   05 고기능 API의 차이 ... 95
   06 '표준 OS' 및 '표준 API'라는 시도 ... 97
   07 공통 라이브러리의 시도 ... 100
   08 소스 코드 호환만으로는 아직 문제는 해결 안 된다 ... 103
   09 클래스 라이브러리가 비호환 ... 104
   10 헤더 파일마다 소스 코드가 필요 ... 105
   11 종래의 문제 ... 107
   12 JVM은 OS도 포함하고 있다 ... 108
   13 애플리케이션이 직접 건드리지 않는 것은 OS에 맡긴다 ... 110
   14 애플리케이션이 직접 액세스하는 것은 공통화 ... 111
   15 Java는 모든 것이 클래스 파일 ... 113
   16 클래스 파일만 있으면 재사용 가능 ... 115
   17 객체 지향 관련 기능도 표준으로 제공 ... 117
   18 공통으로 가질 수 없는 기능은 과감히 잘라 버림 ... 118
   COLUMN - 여러 가지 Java 이야기 ③ 가상 컴퓨터의 시도 ... 122
Chapter 04 언어 명세 및 실행 환경과 함께 객체 지향을 추구 ... 124
   01 Java는 객체 지향 언어의 최대 성공 예 ... 128
   02 객체 지향의 4가지 주요 기능 ... 130
   03 C++의 문제점 ... 137
   04 C++의 문제점 ① : 클래스에 속하지 않는 메쏘드 ... 138
   05 C++의 문제점 ② : 클래스의 재사용이 어려웠다 ... 141
   06 C++의 문제점 ③ : 이름 충돌의 문제 ... 143
   07 Java의 접근 방식 ... 146
   08 클래스는 반드시 만들 것 ... 147
   09 클래스에 소속되지 않는 메쏘드나 변수를 가질 수 없다 ... 150
   10 모든 클래스가 main 메쏘드를 가질 수 있다 ... 151
   11 패키지에 의한 이름 관리 ... 157
   12 deprecated에 의해 권장되지 않는 메쏘드의 경고 ... 158
   13 예외 처리에 따른 오류 처리 ... 159
   14 클래스와 파일의 관계가 명확 ... 162
   15 실행 파일을 만들지 않는다 ... 164
   16 실행 프레임워크 ... 166
   17 JVM은 객체 지향 컴퓨터 ... 167
   COLUMN - 여러 가지 Java 이야기 ④ 컴포넌트란? ... 170
Chapter 05 메모리 관리를 자동화한다 ... 172
   01 소프트웨어로 메모리를 관리한다는 것 ... 176
   02 포인터를 사용하는 소프트웨어 ... 177
   03 배열을 사용한다 ... 179
   04 구조체 배열의 구조 ... 183
   05 C 언어 포인터는 어렵다 ... 185
   06 프로그램을 움직여 보면… ... 188
   07 배열의 오버런 문제 ... 189
   08 직접 해보자 ... 191
   09 C 프로그램에서 메모리 내의 움직임 ... 195
   10 메모리 리크라는 문제 ... 197
   11 영역 파괴 ... 199
   12 C 언어의 문제점 정리 ... 201
   13 Java 메모리 관리의 기본 : 참조 ... 202
   14 인스턴스의 생성은 어떻게 일어날까? ... 205
   15 Java에서는 모든 객체를 힙에 둔다 ... 207
   16 Java는 형 검사를 반드시 수행한다 ... 209
   17 가비지 콜렉션 ... 211
   18 Java의 스택 머신 ... 213
   19 Java의 배열 ... 215
   20 Java에서는 객체를 나열한 배열은 만들 수 없다 ... 217
   21 배열 자체가 오브젝트 ... 219
   22 Java에서는 배열의 오버런은 없다 ... 222
   COLUMN - 여러 가지 Java 이야기 ⑤ 가상메모리 : 책상의 너비에는 한계가 있다 ... 224
Chapter 06 기업 시스템에 필요한 기능을 탑재 ... 226
   01 도대체 왜 Java인 걸까? ... 230
   02 호스트부터 클라이언트/서버로 ... 232
   03 배포 문제 ... 234
   04 다른 기종의 컴퓨터에 대한 지원 ... 236
   05 자동 배포를 실현한다 ... 238
   06 바이러스 활동을 금지한다 ... 240
   07 바이러스를 넣지 않는 노력 : 디지털 서명 ... 242
   08 Web 애플리케이션 기술 '서블릿' ... 245
   09 객체 지향에 의한 부분 개발 ... 247
   10 세션 관리 기능을 제공 ... 249
   11 화면 디자인은 'JSP'로 작성 ... 251
   12 MVC 모델을 실현 ... 253
   13 'JSF'는 MVC형의 프레임워크 명세 ... 255
   14 분산 트랜잭션을 실현하는 'EJB' ... 256
   15 Web 서비스는 시스템 연계의 업계 표준 기술 ... 261
   16 'J2EE'는 서버 기술의 집대성 ... 262
   17 JWS(Java Web Start)로 자동 다운로드 ... 265
Chapter 07 오픈 테크놀러지의 의미 ... 268
   01 소프트웨어를 공동으로 생산한다 ... 272
   02 참가 각사의 동의로 결정되는 공통 명세 ... 274
   03 오픈 소스를 보완하는 오픈 명세 ... 276
   04 장래에 걸쳐 장기적으로 안심 ... 277
   05 Java가 성공한 두 개의 분야 ... 279
   06 소형 칩형 Java ... 280
   07 기업 업무를 지지하는 J2EE ... 283
   08 여러 형태의 클라이언트를 중앙 집권형으로 관리 ... 285
   09 많은 사용자 액세스를 가능하게 ... 287
   10 데이터베이스 애플리케이션을 효율 좋게 개발 ... 290
   11 컴포넌트를 사용한 트랜잭션 관리 ... 292
   12 대량 기능 요건도 부분, 분담, 변환 기술로 개발 ... 295
   13 최적의 머신 환경을 선택하여 고속 쓰루풋을 실현 ... 298
   14 Java는 독립된 작은 명세의 모음 ... 300
   15 안심할 수 있는 RI ... 302
   16 대형 개발업체가 '진심'이다 ... 303
   17 최소 기술, 하지만 최고 기술 ... 305
Chapter 08 Java가 정말로 지향하는 것 ... 308
   01 Java에 적극적으로 힘쓰려면 ... 312
   02 개발 환경의 방향성 ... 315
   03 데스크탑 환경은 복권할까? ... 316
   04 Java가 정말로 지향하는 것 ... 319
INDEX ... 324
닫기