윤성우
벤처회사에서 개발자로 일하다가 IT분야의 집필과 강의로 처음 이름이 알려진 그는 2000년대 초반까지는 소프트웨어 아키텍트(Architect)로 일을 하다가, 2004년부터 지금까지 OpenGL-ES 그래픽스 라이브러리의 구현과 3D 가속 칩의 개발 및 크로노스 그룹(모바일 국제 표준화 컨소시엄)의 표준안에 관련된 일에 참여하였다.
또한 핸드폰용 DMB 칩의 개발에도 참여하였으며, 현재는 ㈜액시스소프트의 CTO로 있으면서 웹 기반 솔루션 개발에 관심을 갖고 있다. 시간이 날 때마다 조깅을 하며 다양한 구상을 하는 저자는, 방법론에 근거한 소프트웨어 설계 전문가가 모든 분야에서 활발히 활동하여 소프트웨어 발전에 기여해야 한다는 생각을 갖고 있다.
Chapter 01. Let’s Start JAVA!
01-1. 자바의 세계로 오신 여러분을 환영합니다.
01-2. 자바 프로그램과 실행의 원리에 대한 이해
01-3. 첫 번째 자바 프로그램의 관찰과 응용
01-4. 들여쓰기와 컴파일의 대상에서 제외되는 주석!
Chapter 02. 변수와 자료형
02-1. 변수의 이해와 활용
02-2. 정수의 표현 방식 이해하기
02-3. 실수의 표현 방식 이해하기
02-4. 자바의 기본 자료형
Chapter 03. 상수와 형 변환
03-1. 상수(Constants)
03-2. 형 변환
Chapter 04. 연산자(Operators)
04-1. 자바에서 제공하는 이항 연산자들
04-2. 자바에서 제공하는 단항 연산자들
04-3. 비트를 대상으로 하는 연산자들
Chapter 05. 실행 흐름의 컨트롤
05-1. if 그리고 else
05-2. switch와 break
05-3. for, while 그리고 do~while
05-4. break & continue
05-5. 반복문의 중첩
Chapter 06. 메소드와 변수의 스코프
06-1. 메소드에 대한 이해와 메소드의 정의
06-2. 변수의 스코프
06-3. 메소드의 재귀 호출
Chapter 07. 클래스와 인스턴스
07-1. 클래스의 정의와 인스턴스의 생성
07-2.생성자(Constructor)와 String 클래스의 소개
07-3. 자바의 이름 규칙(Naming Rule)
Chapter 08. 패키지와 클래스 패스
08-1. 클래스 패스(Class Path)
08-2. 패키지(Package)의 이해
Chapter 09. 정보 은닉 그리고 캡슐화
09-1. 정보 은닉 (Information Hiding)
09-2. 접근 수준 지시자 (Access-level Modifiers)
09-3. 캡슐화 (Encapsulation)
Chapter 10. 클래스 변수와 클래스 메소드
10-1. static 선언을 붙여서 선언하는 클래스 변수
10-2. static 선언을 붙여서 선언하는 클래스 메소드
10-3. System.out.println() 그리고 public static void main()
10-4. 또 다른 용도의 static 선언
Chapter 11. 메소드 오버로딩과 String 클래스
11-1. 메소드 오버로딩 (Method Overloading)
11-2. String 클래스
11-3. String 클래스의 메소드
Chapter 12. 콘솔 입력과 출력
12-1. 콘솔 출력 (Console Output)
12-2. 콘솔 입력 (Console Input)
Chapter 13. 배열 (Array)
13-1. 1차원 배열의 이해와 활용
13-2. enhanced for문
13-3. 다차원 배열의 이해와 활용
Chapter 14. 클래스의 상속 1: 상속의 기본
14-1. 상속의 기본 문법 이해
14-2. 클래스 변수, 클래스 메소드와 상속
Chapter 15. 클래스의 상속 2: 오버라이딩
15-1. 상속을 위한 두 클래스의 관계
15-2. 메소드 오버라이딩
15-3. instanceof 연산자
Chapter 16. 클래스의 상속 3: 상속의 목적
16-1. 상속이 도움이 되는 상황의 소개
16-2. Object 클래스와 final 선언 그리고 @Override
Chapter 17. 인터페이스와 추상 클래스
17-1. 인터페이스의 기본과 그 의미
17-2. 인터페이스의 문법 구성과 추상 클래스
Chapter 18. 예외처리 (Exception Handling)
18-1. 자바 예외처리의 기본
18-2. 예외처리에 대한 나머지 설명들
Chapter 19. 자바의 메모리 모델과 Object 클래스
19-1. 자바 가상머신의 메모리 모델
19-2. Object 클래스
Chapter 20. 자바의 기본 클래스
20-1. 래퍼 클래스 (Wrapper 클래스)
20-2. BigInteger 클래스와 BigDecimal 클래스
20-3. Math 클래스와 난수의 생성, 그리고 문자열 토큰(Token)의 구분
20-4. Arrays 클래스
Chapter 21. 제네릭(Generics) 1
21-1. 제네릭의 이해
21-2. 제네릭의 기본 문법
Chapter 22. 제네릭(Generics) 2
22-1. 제네릭의 심화 문법
Chapter 23. 컬렉션 프레임워크 1
23-1. 컬렉션 프레임워크의 이해
23-2. List 인터페이스를 구현하는 컬렉션 클래스들
23-3. Set 인터페이스를 구현하는 컬렉션 클래스들
23-4. Queue 인터페이스를 구현하는 컬렉션 클래스들
23-5. Map 인터페이스를 구현하는 컬렉션 클래스들
Chapter 24. 컬렉션 프레임워크 2
24-1. 컬렉션 기반 알고리즘
Chapter 25. 열거형, 가변 인자 그리고 어노테이션
25-1. 열거형
25-2. 매개변수의 가변 인자 선언
25-3. 어노테이션 (Annotations)
Chapter 26. 네스티드 클래스와 람다(Lambda)의 소개
26-1. 네스티드(Nested) 클래스와 이너(Inner) 클래스
26-2. 람다(Lambda)의 소개
Chapter 27. 람다 표현식
27-1. 람다와 함수형 인터페이스
27-2. 정의되어 있는 함수형 인터페이스
Chapter 28. 메소드 참조와 Optional
28-1. 메소드 참조 (Method References)
28-2. Optional 클래스
28-3. OptionalInt, OptionalLong, OptionalDouble 클래스
Chapter 29. 스트림 1
29-1. 스트림의 이해와 스트림의 생성
29-2. 필터링(Filtering)과 맵핑(Mapping)
29-3. 리덕션(Reduction), 병렬 스트림(Parallel Streams)
Chapter 30. 스트림 2
30-1. 스트림의 생성과 연결
30-2. 스트림의 중간 연산
30-3. 스트림의 최종 연산
Chapter 31. 시각과 날짜의 처리
31-1. 시각과 날짜 관련 코드의 작성
31-2. 시간대를 적용한 코드 작성 그리고 출력 포맷의 지정
Chapter 32. I/O 스트림
32-1. I/O 스트림에 대한 이해
32-2. 필터 스트림의 이해와 활용
32-3. 문자 스트림의 이해와 활용
32-4. IO 스트림 기반의 인스턴스 저장
Chapter 33. NIO 그리고 NIO.2
33-1. 파일 시스템
33-2. NIO.2 기반의 I/O 스트림 생성
33-3. NIO 기반의 입출력
Chapter 34. 쓰레드 그리고 동기화
34-1. 쓰레드의 이해와 쓰레드의 생성
34-2. 쓰레드의 동기화
34-3. 쓰레드를 생성하는 더 좋은 방법