티스토리 뷰

자바 퍼즐러: 세상에서 가장 재미있는 자바 책

혼란스러웠다...재미있다고 했는데 재미 있지가 않았다...내용이 안좋았다는게 아니라 그냥 재미가 있지는 않았다...책 제목에 속았다...내용은 괜찮았다. 거의 신경을 잘 안쓰는 부분을 애기를 해주고 있다.(꾀나 복잡함을 포함해서 말이지..)입문자들이 보기에는 힘들다. 자바에 문법에 익숙한 사람들이 보기 좋을거 같다.참고로 이 책은 그 유명한 이펙티브 자바를 쓰신 저자라 쉬운 책은 아니다.

단언컨대 이 책은 세상에서 가장 재미있는 자바 책이다. 왜냐하면, 숙련된 개발자마저 무릎을 탁 치게 하는 97가지 퍼즐로 자바를 배우기 때문이다. 이 책이 담고 있는 퍼즐을 풀다 보면 자바 언어와 표준 라이브러리 곳곳에 도사리는 위험과 미묘한 함정들을 이해하고 피해갈 수 있게 됩니다. 물론 퍼즐은 우리가 언제든 겪을 수 있는 내용을 담고 있어 유용함을 굳이 강조할 필요가 없을 정도이다.

※ 이 책의 자바 버전
이 책은 2005년 자바 5 시절에 집필되었다. 하지만 자바 8이 발표된 지금도 유효하고 자바를 더 잘 활용하고자 하는 개발자에게 여전히 유용하기에 복간하게 되었다. 자바 8에서 이 책의 모든 소스 코드의 동작을 확인했다. 따라서 이 책의 본문에서 사용한 ‘자바 5에서’라는 표현을 ‘자바에서’로 대체해 이해해도 좋다.

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번째 퍼즐 - 후식

부록. 함정 정리