HOME > Detail View

Detail View

자바 가상 머신 프로그래밍

자바 가상 머신 프로그래밍 (Loan 28 times)

Material type
단행본
Personal Author
Engel, Joshua 곽용재, 역
Title Statement
자바 가상 머신 프로그래밍 / Joshua Engel 저 ; 곽용재 역.
Publication, Distribution, etc
서울 :   인포·북 ,   2000.  
Physical Medium
589 p. : 삽도 ; 26 cm + CD-ROM 1매.
Varied Title
Programming for the Java virtual machine
ISBN
8980544014
General Note
색인수록  
000 00763namccc200265 k 4500
001 000000662318
005 20100806011709
007 ta
008 000411s2000 ulka 001a kor
020 ▼a 8980544014 ▼g 93000 : ▼c \18000
040 ▼a 211009 ▼c 211009 ▼d 211009
041 1 ▼a kor ▼h eng
049 1 ▼l 121044790 ▼f 과학 ▼l 121044791 ▼f 과학
082 0 4 ▼a 005.6 ▼2 21
085 ▼a 0075 ▼2 KDCP
090 ▼a 005.6 ▼b 2000
100 1 ▼a Engel, Joshua
245 1 0 ▼a 자바 가상 머신 프로그래밍 / ▼d Joshua Engel 저 ; ▼e 곽용재 역.
246 1 9 ▼a Programming for the Java virtual machine
260 ▼a 서울 : ▼b 인포·북 , ▼c 2000.
300 ▼a 589 p. : ▼b 삽도 ; ▼c 26 cm + ▼e CD-ROM 1매.
500 ▼a 색인수록
700 1 ▼a 곽용재, ▼e
950 0 ▼b \18000

Holdings Information

No. Location Call Number Accession No. Availability Due Date Make a Reservation Service
No. 1 Location Science & Engineering Library/Sci-Info(Stacks1)/ Call Number 005.6 2000 Accession No. 121044790 Availability Available Due Date Make a Reservation Service B M
No. 2 Location Science & Engineering Library/Sci-Info(Stacks1)/ Call Number 005.6 2000 Accession No. 121044791 Availability Available Due Date Make a Reservation Service B M

Contents information

Book Introduction

이 책은 자바 가상 머신 명세서(JVMS)에 대한 소개와 함께, 프로그래머가 자바 가상 머신과 JVMS를 더 잘 이해하도록 도와줄 흥미로운 주제를 소개한다.

초급서나 프로그래밍 활용서에서 채우주지 못하는 프로그래머의 내공을 키워 주는 내용들 - 프로그래밍 언어 측면에서의 분석, 타입 시스템, 컴파일 매커니즘, 보안 기능, 가상 머신의 동작 등 - 을 담았다.

자바 가상 머신의 검증 알고리즘, 자바 가상 머신이 가진 보안 기능의 동작 메커니즘과 동작 범위, 자바 프로그래밍 언어가 자바 가상 머신에 맞게 동작하도록 컴파일하는 매커니즘 등과 자바 가상 머신을 이용한 다른 언어의 구현 - Seheme, Prolog, Sather Eiffel, 정규표현식, 클래스 로더를 사용하여 인터넷, 자바 기반 클래스, 데이터베이스 질의, 그리고 다른 언어로부터 동적 생성한 코드를 가상 머신에 올리는 방법 등 원리로부터 깊이 이해할 수 있는 내용들을 담았다.

자바 기술과 자바 언어, 혹은 프로그래밍 언어 분야에 계신 분들의 스터디용 교재나 참고서로 적합하다.


Information Provided By: : Aladin

Author Introduction

Joshua Engel(지은이)

<자바 가상 머신 프로그래밍>

곽용재(옮긴이)

2004년에 고려대학교 컴퓨터학과에서 전산학 박사 학위를 받고 현재 네이버의 검색시스템센터에서 검색서비스 개발 및 관련 검색 플랫폼 개발을 책임지고 있다. 최근 대규모 서비스 플랫폼에 대한 다차원적인 관리 체계를 구축하는 데에 많은 시간을 쏟고 있다. 1997년부터 컴퓨터 프로그래밍 서적 번역가 및 기술저술가로 활동해 왔다.

Information Provided By: : Aladin

Table of Contents


목차

시작하기 전에 = 17

용어 대역표 = 21

CHAPTER 1 자바 가상 머신의 소개

 1.1 자바와 자바 가상 머신 = 28

 1.2 자바 가상 머신이란 무엇인가? = 29

  1.2.1 명령어 집합 = 30

  1.2.2 class 파일 형식 = 32

  1.2.3 검증(Verfication) = 33

 1.3 자바 플랫폼 = 33

 1.4 자바 가상 머신의 구성 = 34

  1.4.1 클래스 영역(Class area) = 35

  1.4.2 자바 스택(Java Stack) = 37

  1.4.3 힙(Heap) = 38

  1.4.4 네이티브 메소드 스택(Native Method Stack) = 39

  1.4.5 예제 = 40

 1.5 가비지 콜렉션(Garbage Collection) = 44

  1.5.1 마무리 작업(Finalization) = 47

  1.5.2 가비지 콜렉션이 일어나는 시점 = 48

 1.6 자바 가상 머신(JVM)의 구현 = 49

 1.7 가상 머신의 버전 = 50

 1.8 자바 가상 머신의 미래 = 52

CHAPTER 2 가상 머신의 탐험 도구, Oolong에 대하여

 2.1 Hello, World = 58

  2.1.1 .class와 .super 지시자 = 58

  2.1.2 main 메소드 = 59

  2.1.3 명령어(INstruction) = 60

 2.2 Oolong 프로그램의 구조 = 62

 2.3 클래스의 정의 = 63

 2.4 수퍼클래스 = 64

 2.5 필드의 선언 = 65

 2.6 메소드의 선언 = 69

 2.7 인터페이스(Interface) = 74

CHAPTER 3 메소드 작성하기

 3.1 기본적인 용어의 정의 = 80

 3.2 타입(types) = 81

  3.2.1 숫자 타입(numeric type) = 81

  3.2.2 객체 타입(Object Type) = 83

  3.2.3 returnAddress = 84

 3.3 니모닉의 이름을 정하는 규칙 = 84

 3.4 예제 코드의 테스트 = 85

 3.5 반환(return) = 87

 3.6 상수(Constant) = 88

  3.6.1 일반적인 상수 = 88

  3.6.2 작은 크기의 상수와 null = 89

 3.7 지역 변수 = 91

  3.7.1 변수의 초기화 = 95

  3.7.2 메소드의 인자로써 사용되는 지역 변수 = 96

 3.8 데이터간의 연산 = 98

  3.8.1 수식 연산(arithmetic operation) = 98

  3.8.2 숫자가 아닌 경우와 무한한 크기를 나타내는 경우 = 100

  3.8.3 비트 연산 = 101

  3.8.4 부동 소수점 계산과 strictfp = 104

 3.9 타입 변환 = 105

  3.9.1 데이터 변환의 예 = 107

  3.9.2 데이터 폭의 확대(widening)와 축소(narrowing) = 107

 3.10 스택의 조작 = 108

 3.11 숫자 배열 = 112

 3.12 아무런 일도 하지 않는 명령어(nop) = 115

CHAPTER 4 클래스와 객체

 4.1 객체란 무엇인가? = 117

  4.1.1 객체와 참조자 = 118

  4.1.2 클래스 이름 = 121

  4.1.2 패키지 = 122

 4.2 객체의 생성 = 123

 4.3 생성자(constructor) = 124

 4.4 필드의 사용 = 125

  4.4.1 타입과 getfield 명령어 = 127

  4.4.2 필드의 상속 = 128

  4.4.3 필드 값의 변경 = 129

 4.5 객체에서의 메소드 호출 = 130

  4.5.1 가상 메소드 호출 = 132

  4.5.2 메소드의 상속과 오버라이드(overriding) = 134

  4.5.3 오버로딩(overloading)과 메소드의 매칭(matching) = 137

  4.5.4 직접적인 메소드 호출 = 139

  4.5.5 invokespecial 명령어와 super 키워드 = 141

 4.6 캐스팅 = 144

 4.7 캐스팅, 필드, 메소드, 그리고 자바 = 146

 4.8 객체의 반환 = 150

 4.9 인터페이스(interface) = 151

 4.10 정적 필드와 메소드 = 156

 4.11 클래스 초기화 = 158

 4.12 배열(Array) = 159

  4.12.1 참조자의 배열 = 159

  4.12.2 다차원 배열 = 162

  4.12.3 배열의 길이 = 165

CHAPTER 5 제어문

 5.1 정수의 비교 = 168

 5.2 참조자간의 비교 = 171

 5.3 다른 비교 명령어들 = 173

 5.4 switch 명령어 = 175

 5.5 서브루틴 = 176

 5.6 예외(Exception) = 177

  5.6.1 여러 개의 예외 핸들러 = 183

  5.6.2 .throws 지시자 = 186

  5.6.3 예외를 던지는 그 밖의 방법들 = 187

 5.7 타입을 검사하는 보다 좋은 방법 = 187

CHAPTER 6 자바 가상 머신의 검증 과정(Verification Process)

 6.1 검증 알고리즘의 동작 = 190

 6.2 구조적인 관점에서 명확한 class 파일인가? = 191

 6.3 모든 상수들이 정확하게 참조되는가? = 193

 6.4 모든 명령어들이 유효한가? = 195

 6.5 명령어 수행시 스택/지역 변수의 상태는 항상 정확한가? = 199

  6.5.1 예제1 : Hello, World = 201

  6.5.2 예제2 : goto 문과 if 문 = 204

  6.5.3 예제3 : 검증되지 않은 코드 = 208

  6.5.4 예제4 : 서브클래스의 처리 = 210

  6.5.5 알고리즘 = 214

 6.6 외부로의 참조는 검사되었는가? = 217

 6.7 자바 언어와 검증 알고리즘 = 218

  6.7.1 자바 컴파일러로 가상 머신 속이기 = 221

  6.7.2 검증 알고리즘과 그 외 언어들 = 221

 6.8 이외의 안전(Safety) 요건 = 222

 6.9 검증하기 = 223

CHAPTER 7 자바 가상 머신을 통한 디버깅

 7.1 Oolong에서의 디버깅 지시자(debugging directive) = 226

  7.1.1 .source 지시자와 .line 지시자 = 226

  7.1.2 .var 지시자 = 229

 7.2 Oolong 프로그램의 디버깅 = 231

 7.3 런타임 추적(Runtime Tracing) = 232

CHAPTER 8 자바 가상 머신의 클래스 로더 사용

 8.1 클래스의 로딩 = 236

  8.1.1 로딩(Loading) = 236

  8.1.2 링킹(linking) = 238

 8.2 클래스 로더를 사용하지 않는 클래스 로딩 = 239

 8.3 직접 만드는 클래스 로더 = 240

  8.3.1 클래스의 캐싱(caching) = 241

  8.3.2 예제 = 242

 8.4 Class 객체의 활용 = 245

 8.5 리플랙션(Reflection) = 246

CHAPTER 9 자바 클래스 파일의 내부 구조

 9.1 클래스 파일 헤더 = 252

 9.2 상수 풀(Constant Pool) = 253

  9.2.1 UTF8 엔트리 = 256

  9.2.2 상수 엔트리 = 256

  9.2.3 필드, 메소드, 클래스 엔트리 = 258

 9.3 클래스에 관한 정보 = 259

 9.4 필드와 메소드 = 260

 9.5 클래스의 속성 = 267

 9.6 그 외 속성들 = 268

  9.6.1 ConstantValue 속성 = 268

  9.6.2 Exceptions 속성 = 269

  9.6.3 InnerClasses 속성 = 271

CHAPTER 10 자바 컴파일링의 안쪽

 10.1 표현식과 문장 = 275

 10.2 표현식의 여러 형태들 = 277

  10.2.1 숫자 타입(Numeric Types) = 278

  10.2.2 객체 타입(Object Types) = 279

  10.2.3 표현식 결과값의 타입 = 279

  10.2.4 컴파일 타임 타입과 타입 제약 = 281

  10.2.5 타입 안전성(Type-safety)과 검증성(Verifiability) = 282

 10.3 문장과 표현식의 컴파일 = 283

 10.4 지역 변수 선언 = 285

 10.5 필드와 변수 = 288

  10.5.1 축약 표기 = 291

  10.5.2 이외의 대입문들 = 292

  10.5.3 표현식으로서의 대입문 = 294

  10.5.4 대입문에서의 타입 점검 = 295

 10.6 새 객체의 생성 = 296

 10.7 클래스 이름의 축약 표기 = 298

 10.8 산술 표현식 = 299

  10.8.1 숫자 값의 캐스팅 = 303

  10.8.2 ∼연산자 = 306

 10.9 메소드 호출 = 307

  10.9.1 가상 메소드 호출 = 307

  10.9.2 정적 메소드 호출 = 308

  10.9.3 메소드 호출의 예 = 308

  10.9.4 오버라이딩 = 310

  10.9.5 오버로딩(Overloading) = 312

  10.9.6 인터페이스 = 314

 10.10 문장으로서의 표현식 = 316

 10.11 If 문과 불린 값 = 317

  10.11.1 불린 값 = 317

  10.11.2 if 문장 = 319

  10.11.3 비교문(Comparison) = 320

  10.11.4 부동 소수점 실수 비교와 NaN = 322

  10.11.5 정수 비교문 = 324

  10.11.6 참조자와 객체의 일치 = 325

  10.11.7 불린 연산자 = 330

 10.12 이외의 흐름 제어 구조 = 332

  10.12.1 루프(Loop) = 332

  10.12.2 흐름 제어 구조의 컴파일링 = 334

  10.12.3 복합 문장(Compound Statements)과 검증(Verification) = 336

 10.13 Return 문장 = 338

 10.14 필드 선언 = 340

 10.15 메소드 선언 = 341

 10.16 생성자 = 343

  10.16.1 동일한 클래스에서 여러 생성자 사용 = 344

  10.16.2 디폴트 생성자 = 345

  10.16.3 필드 초기화와 생성자 = 346

 10.17 결론 = 347

CHAPTER 11 다른 언어의 특징을 자바 가상 머신에 맞게 컴파일하기

 11.1 자바 버전 1.1 = 351

  11.1.1 Class 리터럴 = 351

  11.1.2 내부 클래스(Inner Classes) = 353

  11.1.3 내부 클래스가 사용될 경우의 스코핑 = 356

 11.2 정규 표현식(Regular Expression) = 358

 11.3 반복자(Iterator) = 365

  11.3.1 Sather에서의 반복자 = 365

  11.3.2 반복자의 구현 = 368

  11.3.3 반복자와 인자 = 372

  11.3.4 반복자의 사용 = 374

 11.4 매개변수화 타입(Parameterized Types) = 376

  11.4.1 일반 클래스로 매개변수화 타입을 구현하기 = 378

  11.4.2 매개변수화 타입을 템플리트로 구현하기 = 379

 11.5 다중 상속 = 380

  11.5.1 다중 상속용 인터페이스 = 381

  11.5.2 인터페이스의 구현 = 383

  11.5.3 필드 = 388

 11.6 결론 = 389

CHAPTER 12 자바 가상 머신으로 Scheme 언어 구현하기

 12.1 Scheme의 주요 개념 = 392

 12.2 Scheme을 바이크 코드로 컴파일하기 = 396

 12.3 람다 표현식(lambda Expression) 컴파일하기 = 401

 12.4 예제(Example) = 405

 12.5 Scheme 라이브러리(Library) = 408

 12.6 Optimizing Scheme = 409

  12.6.1 정적 스코핑(Static Scoping) = 410

  12.6.2 지역 변수(local variable)의 사용 = 414

  12.6.3 인라이닝(Inlining) = 416

  12.6.4 말단 재귀형(Tail Recursion) = 417

  12.6.5 타입 정보의 이용 = 418

CHAPTER 13 자바 가상 머신으로 Prolog 언어 구현하기

 13.1 Prolog의 소개 = 422

  13.1.1 질문하는 방법 = 422

  13.1.2 바인딩 패턴(binding pattern) = 424

  13.1.3 임플리케이션(Implication) = 424

  13.1.4 바인딩 패턴과 임플리케이션 = 426

  13.1.5 규칙(Rule)으로서의 사실(Fact) = 427

  13.1.6 단일화의 고찰 = 427

 13.2 Prolog 구현의 기본 = 429

 13.3 단일화 = 430

  13.3.1 단일화 알고리즘 = 430

  13.3.2 바인딩의 처리 = 432

 13.4 프로그램으로서의 규칙 = 433

  13.4.1 inside = 433

  13.4.2 within = 435

  13.4.3 yield와 백트래킹 = 436

 13.5 규칙의 구현 = 438

  13.5.1 within의 구현 = 439

  13.5.2 결합(conjunction)의 구현 = 442

  13.5.3 within의 생성 = 445

 13.6 사실(Fact)의 컴파일 = 445

 13.7 확인! Prolog 컴파일 실습 = 448

CHAPTER 14 성능 향상시키기

 14.1 빠른 자바 가상 머신 = 451

  14.1.1 가비지 콜렉션 성능 = 453

  14.1.2 참조 구현하기 = 456

 14.2 바이트 코드 최적화 기술 = 458

  14.2.1 주의 = 458

  12.2.2 상수의 사용을 늘린다 = 458

  14.2.3 길이를 감소시킨다 = 460

  14.2.4 루프를 풀어서 기술한다 = 462

  14.2.5 틈새 최적화(peephole optimization) = 463

 14.3 인라이닝 = 470

  14.3.1 필드를 인라이닝하기 = 470

  14.3.2 분리된 컴파일(Separate Compilation) = 472

CHAPTER 15 보안과 자바 가상 머신

 15.1 자바 플랫폼과 보안의 필요성 = 474

 15.2 자바 가상 머신에서의 보안 보증 = 474

 15.3 보안 구조와 보안 정책 = 475

  15.3.1 예제 = 478

  15.3.2 기본적인 애플릿 보안 정책 = 479

  15.3.3 좀 더 세밀한 보안 정책 = 481

 15.4 잠재적 공격의 가능성 = 482

  15.4.1 세부 구현 = 482

  15.4.2 보안 관리자에 대한 방어 = 482

  15.4.3 자바 보안에 대한 우회 = 484

  15.4.4 생성되지 않은 객체에 대한 사용 = 485

  15.4.5 유효하지 않은 캐스팅 = 488

  15.4.6 클래스에 대한 참조 바꾸기 = 490

  15.4.7 초기화되지 않은 필드에 대한 접근 = 491

  15.4.8 배열 범위 체크 = 493

  15.4.9 예외 처리 = 494

  15.4.10 숨겨진 코드 = 497

 15.5 결론 = 497

CHAPTER 16 스레드와 동기화

 16.1 스레드 = 500

  16.1.1 예제 : 다중 스레드 웹 서버 = 503

  16.1.2 예외와 스레드 = 505

 16.2 스레드간의 상태 공유 = 506

  16.2.1 동기화의 필요성 = 506

  16.2.2 예외 : long과 double = 509

 16.3 모니터와 객체 락 = 509

  16.3.1 자바에서의 동기화 = 512

  16.3.2 동기화된 메소드 = 513

 16.4 스케줄링 = 516

  16.4.1 CPU에 대한 제어권 넘기기 = 518

  16.4.2 다른 스레드에 대한 대기 = 519

 16.5 결론 = 520

APPENDIX 

 A 명령어 테이블 = 523

 B Oolong 참고자료 = 537

 C 연습문제 풀이 = 565

 D CD-ROM 사용법 = 583

찾아보기 = 585



New Arrivals Books in Related Fields