쪽수
ISBN
브랜드
단언컨대 이 책은 세상에서 가장 재미있는 자바 책입니다. 왜냐하면, 숙련된 개발자마저 무릎을 탁 치게 하는 97가지 퍼즐로 자바를 배우기 때문입니다. 이 책이 담고 있는 퍼즐을 풀다 보면 자바 언어와 표준 라이브러리 곳곳에 도사리는 위험과 미묘한 함정들을 이해하고 피해갈 수 있게 됩니다. 물론 퍼즐은 우리가 언제든 겪을 수 있는 내용을 담고 있어 유용함을 굳이 강조할 필요가 없을 정도입니다.
※ 이 책의 자바 버전
이 책은 2005년 자바 5 시절에 집필되었습니다. 하지만 자바 8이 발표된 지금도 유효하고 자바를 더 잘 활용하고자 하는 개발자에게 여전히 유용하기에 복간하게 되었습니다. 자바 8에서 이 책의 모든 소스 코드의 동작을 확인했습니다. 따라서 이 책의 본문에서 사용한 '자바 5에서'라는 표현을 '자바에서'로 대체해 이해해도 좋습니다.
이 책은 자바 프로그래밍 언어와 핵심 라이브러리 관련 퍼즐로 구성되어 있습니다. 자바 관련 지식이 있는 독자라면 이 책의 퍼즐을 이해할 수 있을 것입니다. 물론 그중엔 상당한 수준의 자바 개발자도 풀기 어려운 퍼즐도 있습니다.
퍼즐 대부분은 A라는 일을 하는 듯 보이지만 B라는 일을 하는 프로그램입니다. 어떤 일을 하는지 알아내는 것이 독자가 해야 할 일입니다. 퍼즐을 풀 때는 다음과 같은 방식으로 접근하기 바랍니다.
1. 퍼즐의 프로그램을 살펴보고 고민해 보세요. 일단 컴퓨터로 돌려보지 말고, 어떤 결과를 출력할지 예측해 보세요. 함정이 보이지 않는다고 해도 시간을 두고 고민하기 바랍니다.
2. 프로그램이 무엇을 출력할지 예측했다면 실행해 보세요. 생각했던 대로 작동하나요? 그렇지 않다면 왜 그런지 설명할 수 있도록 고민해 보세요.
3. 프로그램이 잘못 작성되었다고 가정하고, 어떻게 고쳐야 할지 고민해 보세요.
4. 위 과정을 모두 진행했다면 해답을 읽으세요.
문제를 풀었다고 해도 해답은 읽기 바랍니다. 해답에는 프로그램이 어떻게 작동하는지를 넘어서 자세한 분석과 설명이 들어 있기 때문입니다. 또한, 퍼즐에서 추가로 발생할 수 있는 함정을 설명하고, 어떻게 이런 함정을 피할 수 있는지 설명합니다.
부록에는 자바 플랫폼의 함정을 정리했습니다. 즉. 책에 나오는 퍼즐을 분류해서 설명했습니다. 부록은 이 책의 퍼즐을 모두 풀기 전까지는 읽지 마세요. 부록을 먼저 읽어 버리면 퍼즐을 푸는 재미가 사라질 것입니다. 부록은 책을 모두 읽고 나서 참고 자료로 사용하세요!
1장. 소개
2장. 표현식 퍼즐
1번째 퍼즐 - 홀수 확인
2번째 퍼즐 - 변화를 위한 시간
3번째 퍼즐 - Long 자료형 나눗셈
4번째 퍼즐 - 초등학교 수준의 문제
5번째 퍼즐 - 16진수의 즐거움
6번째 퍼즐 - 다중 자료형 변환
7번째 퍼즐 - 변수 교환
8번째 퍼즐 - Dos Equis
9번째 퍼즐 - 같은 것 같으면서도 다른 것(1)
10번째 퍼즐 - 같은 것 같으면서도 다른 것(2)
3장. 문자 퍼즐
11번째 퍼즐 - 최후의 웃음
12번째 퍼즐 - ABC
13번째 퍼즐 - 동물농장
14번째 퍼즐 - 이스케이프 문자
15번째 퍼즐 - 이상한 나라의 "Hello world"
16번째 퍼즐 - 라인 출력기
17번째 퍼즐 - 어라?
18번째 퍼즐 - 스트링 치즈
19번째 퍼즐 - 분류
20번째 퍼즐 - 내 클래스 이름(1)
21번째 퍼즐 - 내 클래스 이름(2)
22번째 퍼즐 - URL 눈속임
23번째 퍼즐 - No Pain, No Gain
4장. 반복문 퍼즐
24번째 퍼즐 - 바이트의 즐거움
25번째 퍼즐 - 비정상적인 증가
26번째 퍼즐 - 반복문 안에서
27번째 퍼즐 - 시프트 연산자와 변수 i
28번째 퍼즐 - 반복문
29번째 퍼즐 - 반복문의 신부
30번째 퍼즐 - 반복문의 아들
31번째 퍼즐 - 반복문의 유령
32번째 퍼즐 - 반복문의 저주
33번째 퍼즐 - 반복문의 악마
34번째 퍼즐 - 큰 정수를 사용하는 반복문
35번째 퍼즐 - 시계
5장. 예외 처리 퍼즐
36번째 퍼즐 - 결정하기 힘든 프로그램
37번째 퍼즐 - 이상한 예외
38번째 퍼즐 - 초대받지 않은 손님
39번째 퍼즐 - 안녕, 그리고 잘 가
40번째 퍼즐 - 주저하는 생성자
41번째 퍼즐 - 스트림
42번째 퍼즐 - 어이없다
43번째 퍼즐 - 위험한 예외
44번째 퍼즐 - 클래스 분할
45번째 퍼즐 - 피곤한 일
6장. 클래스 퍼즐
46번째 퍼즐 - 애매한 생성자
47번째 퍼즐 - 착한 나의 강아지와 고양이!
48번째 퍼즐 - 정적 메서드
49번째 퍼즐 - 점점 늘어나는 허리 사이즈
50번째 퍼즐 - 우리는 같은 자료형이 아니야
51번째 퍼즐 - 포인트가 뭐야?
52번째 퍼즐 - 재미있는 덧셈
53번째 퍼즐 - 내가 해야 할 일
54번째 퍼즐 - Null과 Void
55번째 퍼즐 - 천지창조
7장. 라이브러리 퍼즐
56번째 퍼즐 - 큰 문제
57번째 퍼즐 - 이름이 뭐예요?
58번째 퍼즐 - 해시 문제
59번째 퍼즐 - 무엇이 다를까?
60번째 퍼즐 - 한 줄 문제
61번째 퍼즐 - 일정 잡기
62번째 퍼즐 - 이름 게임
63번째 퍼즐 - 이전과 비슷한 문제
64번째 퍼즐 - 나머지를 사용한 분류
65번째 퍼즐 - 이상한 정렬
8장. 클래스 심화 퍼즐
66번째 퍼즐 - private 접근 제한자 문제
67번째 퍼즐 - 문자열이 아파요
68번째 퍼즐 - 회색의 그림자
69번째 퍼즐 - 검은 그림자
70번째 퍼즐 - 패키지 문제
71번째 퍼즐 - 임포트의 의무
72번째 퍼즐 - final 키워드의 위기
73번째 퍼즐 - 너의 비밀스러운 것들이 보이고 있어
74번째 퍼즐 - 정체성 위기
75번째 퍼즐 - 머리와 꼬리
[용어정리] 이름 재사용과 관련된 기술
9장. 추가적인 라이브러리 퍼즐
76번째 퍼즐 - 핑퐁
77번째 퍼즐 - 락을 무너뜨리는 괴물
78번째 퍼즐 - 리플렉션 주의 사항
79번째 퍼즐 - 강아지의 삶
80번째 퍼즐 - 추가적인 리플렉션
81번째 퍼즐 - 돌아가는 "Hello world"
82번째 퍼즐 - 비어 블라스트
83번째 퍼즐 - 유일하지 않은 강아지
84번째 퍼즐 - 강제 중단
85번째 퍼즐 - 게으른 초기화
10장. 어려운 퍼즐
86번째 퍼즐 - 괄호의 함정
87번째 퍼즐 - 긴장된 관계
88번째 퍼즐 - 원시 타입
89번째 퍼즐 - 제네릭
90번째 퍼즐 - 힘차고 강한 슈퍼클래스인데 왜 안 되지?
91번째 퍼즐 - 직렬화
92번째 퍼즐 - 제정신이 아닌 클래스
93번째 퍼즐 - 클래스 전쟁
94번째 퍼즐 - 셔플 실패
95번째 퍼즐 - 후식
부록. 함정 정
전체 평점
4.5
내용 오류
12줄
20,000원
10%
18,000원