이미 소장하고 있다면 판매해 보세요.
|
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번째 퍼즐 - 후식 부록. 함정 정리 |
|
컴퓨터로는 인간이 상상하는 이상적인 모델을 완벽하게 구현할 수 없습니다. 그래서 프로그래밍 언어 설계자들은 결단을 내려야 하는 순간이 오고, 어쩔 수 없는 그 선택 때문에 당연해 보이는 논리를 컴퓨터는 종종 엉뚱하게 해석하기도 합니다.
이 책은 이처럼 자바 언어에 내재된 근원적 오묘함에서 오는 위험과 함정을 퍼즐이라는 흥미 있는 형태로 풀어갑니다. [ 상세 내용 ] 이 책은 자바 프로그래밍 언어와 핵심 라이브러리 관련 퍼즐로 구성되어 있습니다. 자바 관련 지식이 있는 독자라면 이 책의 퍼즐을 이해할 수 있을 것입니다. 물론 그중엔 상당한 수준의 자바 개발자도 풀기 어려운 퍼즐도 있습니다. 퍼즐 대부분은 A라는 일을 하는 듯 보이지만 B라는 일을 하는 프로그램입니다. 어떤 일을 하는지 알아내는 것이 독자가 해야 할 일입니다. 퍼즐을 풀 때는 다음과 같은 방식으로 접근하기 바랍니다. 1. 퍼즐의 프로그램을 살펴보고 고민해 보세요. 일단 컴퓨터로 돌려보지 말고, 어떤 결과를 출력할지 예측해 보세요. 함정이 보이지 않는다고 해도 시간을 두고 고민하기 바랍니다. 2. 프로그램이 무엇을 출력할지 예측했다면 실행해 보세요. 생각했던 대로 작동하나요? 그렇지 않다면 왜 그런지 설명할 수 있도록 고민해 보세요. 3. 프로그램이 잘못 작성되었다고 가정하고, 어떻게 고쳐야 할지 고민해 보세요. 4. 위 과정을 모두 진행했다면 해답을 읽으세요. 문제를 풀었다고 해도 해답은 읽기 바랍니다. 해답에는 프로그램이 어떻게 작동하는지를 넘어서 자세한 분석과 설명이 들어 있기 때문입니다. 또한, 퍼즐에서 추가로 발생할 수 있는 함정을 설명하고, 어떻게 이런 함정을 피할 수 있는지 설명합니다. 부록에는 자바 플랫폼의 함정을 정리했습니다. 즉. 책에 나오는 퍼즐을 분류해서 설명했습니다. 부록은 이 책의 퍼즐을 모두 풀기 전까지는 읽지 마세요. 부록을 먼저 읽어 버리면 퍼즐을 푸는 재미가 사라질 것입니다. 부록은 책을 모두 읽고 나서 참고 자료로 사용하세요! |