목차
저자 소개 = 2
머리말 = 4
저자의 글 & 소설같은 15줄의 미학 = 16
소설같은 자바 100배 즐기기 = 22
1장 클래스의 기본 배경
1.1 데이터 타입이란? = 27
1.1.1 데이터 타입의 의미?
1.1.2 데이터 타입의 역할
1.1.3 결론
1.2 변수 = 31
1.2.1 변수란?
1.2.2 변수의 존재
1.2.3 결론
1.3 상수 = 33
1.3.1 상수란?
1.3.2 상수의 분류와 표현
1.3.3 결론
1.4 할당의 법칙 = 36
1.4.1 할당이란?
1.4.2 할당의 기본 법칙
1.4.3 할당에 관련된 implementation
1.5 마무리 = 38
2장 기본 클래스의 제작
2.1 클래스란? = 43
2.1.1 클래스란?
2.1.2 클래스의 지위와 구조
2.1.3 결론
2.2 구조체로 데이터 타입을 생성하는 방법 = 46
2.2.1 구조체란?
2.2.2 구조체를 만드는 방법
2.2.3 결론
2.3 클래스로 데이터 타입을 만드는 방법 = 49
2.3.1 배경
2.3.2 클래스 만들기
2.3.3 결론
2.4 클래스만의 특징 = 52
2.4.1 클래스만의 특징 소개
2.4.2 클래스의 특징들
2.4.3 결론
2.5 클래스 멤버변수를 생성하는 방법의 차이 = 54
2.5.1 서론
2.5.2 클래스 멤버변수를 생성하는 법
2.5.3 결론
2.6 마무리 = 55
3장 The Class
3.1 프로그램의 기초 = 61
3.1.1 객체의 용어
3.1.2 변수, 객체, instance의 구분
3.1.3 결론
3.2 접근제어 = 64
3.2.1 접근제어란?
3.2.2 접근제어의 구현
3.2.3 결론
3.3 메서드란? = 68
3.3.1 메서드
3.3.2 메서드의 특징
3.3.3 결론
3.4 메서드의 매개변수 = 72
3.4.1 매개변수란?
3.4.2 매개변수의 사용
3.4.3 결론
3.5 메서드의 클래스 내의 삽입 = 74
3.5.1 클래스 내의 메서드
3.5.2 클래스 내에 메서드 삽입의 예
3.5.3 결론
3.6 메서드와 접근제어의 활용 = 77
3.6.1 메서드를 이용한 접근제어
3.6.2 private의 접근
3.6.3 결론
3.7 private의 진정한 의미 = 80
3.7.1 private의 사용 이유
3.7.2 private 멤버필드를 사용하는 이유
3.7.3 결론
3.8 객체의 메모리 생성과 할당 = 83
3.8.1 객체의 메모리 생성
3.8.2 new의 메모리 생성 후 메모리의 주소를 누가 챙기는가?
3.8.3 객체의 메모리 생성과 할당
3.8.4. new연산자와 객체의 할당
3.8.5 결론
3.9 마무리 = 90
4장 Class for Basic Java
4.1 Jave HelloWorld = 95
4.1.1 HelloWorld.java
4.1.2 main()메서드
4.1.3 String[] args
4.1.4 static
4.1.5 System.out.println()
4.1.6 결론
4.2 생성자메서드(Constructor) = 106
4.2.1 생성자메서드
4.2.2 생성자메서드의 특징
4.2.3 결론
4.3 Overloading Method = 110
4.3.1 Overloading
4.3.2 Overloading의 예
4.3.3 Overloading의 역할
4.3.4 결론
4.4 상속(Inheritance) = 114
4.4.1 상속이란?
4.4.2 상속의 기본 예
4.4.3 생성자메서드 호출 순서
4.4.4 중복상속
4.4.5 private과 public의 상속 관계
4.4.6 라이브러리를 이용한 상속
4.4.7 결론
4.5 Inheritance와 메서드 재정의(Overriding) = 126
4.5.1 메서드 재정의란?
4.5.2 상속개념에서의 Overriding
4.5.3 메서드 재정의에 대한 느낌
4.5.4 아버지 무시의 느낌
4.5.5 결론
4.6 this의 개념 = 132
4.6.1 this란?
4.6.2 this의 의미
4.6.3 this.멤버필드, this.멤버메서드
4.6.4 this
4.6.5 this()
4.6.6 결론
4.7 super = 140
4.7.1 super참조변수
4.7.2 super를 이용하여 상위 클래스를 참조
4.7.3 super를 이용한 생성자메서드 호출
4.7.4 결론
4.8 마무리 = 144
5장 Class for Polymorphism Java
5.1 abstract클래스 = 149
5.1.1 추상클래스의 개념
5.1.2 추상클래스와 추상메서드
5.1.3 클래스의 구조를 디자인하기 위한 추상클래스
5.1.4 결론
5.2 Interface = 158
5.2.1 인터페이스란?
5.2.2 일반적인 인터페이스의 구조
5.2.3 인터페이스의 메모리와 다중상속
5.2.4 근본적인 인터페이스
5.2.5 결론
5.3 abstract와 interface의 비교 = 172
5.4 Upcasting = 173
5.4.1 Upcasting이란?
5.4.2 Upcasting의 일반적인 구현
5.4.3 abstract와 interface에서의 Upcasting
5.4.4 결론
5.5 Upcasting과 Downcasting = 181
5.5.1 다운캐스팅
5.5.2 Upcasting과 Downcasting의 실제 사용
5.5.3 결론
5.6 마무리 = 184
6장 배열, 컬렉션과 열거자
6.1 배경 = 188
6.2 배열 = 190
6.2.1 배열 정의
6.2.2 배열의 기본적인 특징
6.2.3 배열의 복사
6.2.4 객체배열
6.2.5 결론
6.3 배열참조 = 200
6.3.1 배열의 참조
6.3.2 배열 할당의 참조
6.3.3 매개변수로서의 배열
6.3.4 2차원 배열
6.4 컬렉션(Collection)과 열거자 = 212
6.4.1 Collection인터페이스
6.4.2 Collection류의 특징
6.4.3 Vector클래스와 Hashtable클래스
6.4.4 열거자를 이용한 Vector와 Hashtable의 검색
6.5 마무리 = 225
7장 Exception
7.1 배경 = 230
7.2 Exception = 231
7.2.1 에러처리란?
7.2.2 기본적인 에러처리
7.3 에러처리 실례 = 236
7.3.1 에러처리(try, catch, finally)
7.3.2 에러처리 미루기
7.3.3 finally의 미묘한 사용
7.3.4 자주 발생하는 Exception의 하위 클래스 정리
7.4 마무리 = 250
8장 Thread
8.1 배경 = 254
8.2 스레드의 개념적 접근 = 255
8.2.1 스레드란?
8.2.2 스레드의 상태
8.2.3 스레드의 생성과 start
8.2.4 Not Runnable상태 만들기
8.2.5 Thread 종료 기법
8.3 여러 개의 스레드 동시제어 = 273
8.3.1 멀티스레드와 그 문제점
8.3.2 멀티스레드 생성
8.3.3 멀티스레드의 우선권
8.3.4 멀티스레드의 동기화
8.4 마무리 = 287
9장 Java IO
9.1 배경 = 290
9.2 스트림 = 291
9.2.1 스트림이란?
9.2.2 스트림의 종류
9.2.3 바이트스트림과 문자스트림
9.3 스트림 예제 = 299
9.3.1 스트림의 변환
9.3.2 InputStream, OutputStream
9.3.3 File
9.3.4 FileInputStream, FileOutputStream
9.3.5 RandomAcessFile
9.3.6 Stream Tokenizer
9.3.7 DataInputStream, DataOutputStream
9.3.8 BufferedInputStream, BufferedOutputStream
9.3.9 PrintStream
9.3.10 SequenceInputStream
9.3.11 PushBackInputStream
9.3.12 ByteArrayInputStream, ByteArrayOutputStream
9.3.13 Reader, Writer
9.3.14 InputStreamReader, OutputStreamWriter
9.3.15 FileReader, FileWriter
9.3.16 BufferedReader, BufferedWriter
9.3.17 LineNumberReader
9.3.18 PrinterWriter
9.3.19 PipeWriter, PipeReader
9.3.20 CharArrayReader, CharArrayWriter
9.3.21 StringReader, StringWriter
9.3.22 ObjectInputStream, ObjectOutputStream
9.4 마무리 = 363
10장 Object 클래스
10.1 배경 = 366
10.2 equals()메서드 = 368
10.3 toString()메서드 = 372
10.4 hashCode(), finalize()메서드 = 374
10.5 clone()메서드 = 376
10.6 wait(), notify(), notifyAll()메서드 = 382
10.7 getClass()메서드 = 387
10.8 마무리 = 394
11장 Reflection
11.1 Reflection이란? = 398
11.2 Class클래스 = 400
11.3 Class클래스 로딩 = 401
11.4 Class클래스 분석 = 402
11.5 Reflection의 실제구현 = 405
11.5.1 생성자에 매개변수가 없는 객체 생성하기
11.5.2 생성자에 매개변수가 있는 객체 생성하기
11.5.3 매개변수가 있는 메서드 호출하기
11.5.4 매개변수가 없는 메서드 호출하기
11.5.5 멤버필드의 값 알아내기
11.5.6 멤버필드에 값 셋팅하기
11.6 마무리 = 415
12장 Object Serialization(객체직렬화)
12.1 배경 = 418
12.2 객체직렬화란? = 419
12.3 Serializable = 422
12.3.1 ObjectOutputStream, ObjectInputStream
12.3.2 transient
12.3.3 객체직렬화가 안 되는 경우
12.4 Externalizable = 433
12.5 마무리 = 438
13장 AWT
13.1 AWT란? = 442
13.2 Frame 만들기 = 444
13.3 Frame 종료이벤트 구현하기 = 445
13.4 Frame에 String그리기 = 448
13.5 Frame에 컴포넌트 삽입하기 = 451
13.6 LayoutManager = 455
13.6.1 BorderLayout
13.6.2 FlowLayout
13.6.3 GridLayout
13.6.4 CardLayout
13.6.5 GridbagLayout
13.7 Event Model = 472
13.7.1 Event 처리 Model
13.7.2 Listener와 Adapter
13.7.3 액션 이벤트(Action Event)
13.7.4 조정 이벤트(Adjustment Event)
13.7.5 컴포넌트 이벤트(Component Event)
13.7.6 컨테이너 이벤트(Container Event)
13.7.7 포커스 이벤트(Focus Event)
13.7.8 키 이벤트(Key Event)
13.7.9 마우스 이벤트(Mouse Event)
13.7.10 아이템 이벤트(Item Event)
13.7.11 텍스트 이벤트(TextComponent Event)
13.7.12 윈도우 이벤트(Window Event)
13.8 기본 Component들 = 517
13.8.1 TextField
13.8.2 TextArea
13.8.3 Checkbox
13.8.4 Button
13.8.5 Label
13.8.6 Choice
13.8.7 List
13.8.8 Scrollbar
13.8.9 Canvas
13.9 Container 컴포넌트들 = 539
13.9.1 Container
13.9.2 패널(Panel)
13.9.3 윈도우(Window)
13.9.4 대화상자(Dialog)
13.9.5 파일 대화상자(FileDialog)
13.10 마무리 = 552
14장 Graphics
14.1 Font클래스 = 557
14.2 Color클래스 = 560
14.3 Graphics클래스 = 563
14.4 MediaTracker클래스 = 573
14.5 2D Graphics = 577
14.6 Image Load = 587
14.6.1 Frame에서 Image Load 하기
14.6.2 Applet에서 Image Load 하기
14.6.3 jpg파일의 크기 변환
14.6.4 jpg파일의 압축률 변환
14.7 마무리 = 598
15장 애플릿(Applet)
15.1 애플릿이란? = 602
15.2 애플릿의 간단 구현 = 603
15.3 애플릿에 String 그리기 = 604
15.4 웹 브라우저 내의 애플릿 프로그램 = 607
15.5 애플릿의 주기 = 609
15.5.1 애플릿의 주기와 응용 프로그램의 main메서드
15.5.2 웹 브라우저에 따른 애플릿 주기 메서드의 호출 순서
15.6 웹 브라우저 핸들 = 612
15.7 애플릿에서 Image 다루기 = 616
15.8 애플릿에서 Sound 다루기 = 619
15.9 마무리 = 622
16장 네트웍의 기본
16.1 배경 = 626
16.2 InetAddress클래스 = 627
16.3 URL 클래스 = 630
16.4 URLConnection클래스 = 635
16.5 URLEncoder와 URLDecoder클래스 = 642
16.6 URLClassLoader클래스 = 646
16.7 마무리 = 649
17장 Socket
17.1 소켓 = 652
17.2 Echo 프로그램 = 654
17.3 DayTime 프로그램 = 658
17.4 ServerSocket(TCP) = 659
17.5 DatagramSocket(UDP) = 664
17.5.1 DatagramPacket클래스
17.5.2 DatagramSocket클래스
17.5.3 데이터그램 서버 프로그램 작성
17.5.4 데이터그램 클라이언트 프로그램 작성
17.6 간단한 채팅 구현하기 = 676
17.7 마무리 = 691
18장 RMI (Remote Method Invocation)
18.1 RMI란? = 694
18.1.1 분산 시스템
18.1.2 분산 객체 모델과 자바 플랫폼
18.2 RMI의 작동원리 = 698
18.2.1 클라이언트/서버 통신 메커니즘
18.2.2 Stub/Skeleton을 통한 RMI 통신 메커니즘
18.3 RMI 어플리케이션 만들어 보기 = 704
18.3.1 원격 객체의 인터페이스 작성
18.3.2 원격 객체 및 서버 프로그램 작성
18.3.3 Stub/Skeleton 생성
18.3.4 원격 객체를 사용할 클라이언트 프로그램 작성
18.3.5 RMI Registry 실행
18.3.6 서버 프로그램과 클라이언트 프로그램 실행
18.4 애플릿에서의 RMI 사용 = 717
18.5 RMI 채팅 = 722
18.5.1 Pooling 기법을 사용한 채팅
18.5.2 Call Back 기법을 사용한 채팅
18.6 마무리 = 743
19장 데이터베이스
19.1 RDBMS = 746
19.2 SQL = 747
19.3 JDBC = 749
19.4 JDBC Driver = 749
19.5 JDBC 구현 = 751
19.6 Connection = 758
19.7 Statement = 760
19.8 PreparedStatement = 761
19.9 CallableStatement = 763
19.10 ResultSet = 766
19.11 Advance JDBC 구현 = 769
19.11.1 범용적인 JDBC 애플리케이션 만들기
19.11.2 간단한 Connection Pooling 기법 사용하기
19.11.3 ConnectionPool 개선시키기
19.12 마무리 = 787
20장 JNI (Java Native Interface)
20.1 JNI 란? = 790
20.2 자바에서 C 사용하기 = 791
1단계 : Native Method를 선언하는 자바 클래스 작성
2단계 : 1단계에서 작성한 클래스 컴파일
3단계 : javah를 사용해서 Native Method가 사용할 헤더 파일 생성
4단계 : C언어로 Native Method 실제 구현
5단계 : C 코드와 헤더 파일을 컴파일
6단계 : 자바 프로그램 실행
20.3 숫자 인자와 반환값 = 801
20.4 문자열 전달 인자 = 804
20.5 객체 필드에 접근하기 = 809
20.6 객체의 메서드 실행하기 = 816
20.7 마무리 = 820
찾아보기 = 822