저자

캐시시에라,버트베이츠,트리샤지

저자:캐시시에라(KathySierra)

캐시는썬마이크로시스템즈(SunMicrosystems)에서마스터자바트레이너로활동했으며,대규모자바커뮤니티인JavaRanch.com(지금은CodeRanch.com)을설립하여2003년과2004년에는생산성부문에서졸트상(JoltAward)을받았습니다.



저자:버트베이츠(BertBates)

버트는25년이상의경력을가진소프트웨어개발자로,2003년에캐시와함께『헤드퍼스트자바』로〈헤드퍼스트〉시리즈를만들었습니다.이후로여러권의자바서적을저술하고,썬마이크로시스템즈와오라클에서다양한자바인증시험에자문으로참여했습니다.



저자:트리샤지(TrishaGee)

트리샤는1997년부터자바를사용했습니다.젯브레인스(JetBrains)자바개발자지원팀에서5년간근무한후2년동안팀을이끌었습니다.이기간동안현업자바개발자들이직면하는다양한문제들에대한경험을쌓았습니다.



역자:서환수

물리학을전공했습니다.『HeadFirstJava:뇌회로를자극하는자바학습법』을비롯해서한빛미디어와함께몇권의번역서를냈습니다.

목차

Chapter00들어가며|이책을읽는방법
__이책의독자
__이책이이렇게된이유
__이책의구성
__여러분의두뇌를정복하는방법
__이책을읽는데필요한것
__3판의테크니컬리뷰어
__3판을위한감사인사
__개정판의테크니컬리뷰어
__개정판을위한감사인사
__아직감사의글이끝나지않았습니다

Chapter01일단간단하게알아봅시다|껍데기를깨다
__자바는어떤식으로돌아갈까요?
__자바에서실제로수행하는일
__아주간략한자바의역사
__자바코드의구조
__main이들어있는클래스만들기
__간단한불리언테스트
__조건에따른분기문
__본격적인실전용애플리케이션코딩하기
__자동구문생성기
__연습문제
__정답과해설

Chapter02클래스와객체|객체마을로의여행
__의자전쟁
__첫번째객체만들기
__Movie객체만들어서테스트하기
__빠르게main에서벗어나기
__숫자맞히기게임실행하기
__연습문제
__정답과해설

Chapter03원시변수와레퍼런스|네변수를알라
__변수선언하기
__“더블모카로주세요.아,int로합시다.”
__키워드를조심하세요!
__Dog객체를제어하는방법
__객체레퍼런스는단지또다른변숫값에불과합니다
__가비지컬렉션기능을보유한힙에서의삶
__배열은찬장의컵과같습니다
__Dog예제
__연습문제
__정답과해설

Chapter04메서드는인스턴스변수를사용합니다|객체의행동방식
__클래스는객체가아는것과객체가하는것을기술합니다
__크기는짖는소리에영향을끼칩니다
__메서드에특정값을전달할수있습니다
__메서드에서특정값을리턴할수도있습니다
__메서드에두개이상의인자를전달할수도있습니다
__매개변수와리턴타입활용방법
__캡슐화
__배열에있는객체는어떤식으로행동할까요?
__인스턴스변수선언과초기화
__원시변수와레퍼런스변수비교
__연습문제
__정답과해설

Chapter05프로그램만들기|메서드를더강력하게
__<스타트업침몰시키기>게임만들어보기
__클래스개발
__메서드를구현해서코드작성하기
__SimpleStartup클래스를위한테스트코드만들기
__checkYourself()메서드
__SimpleStartupGame클래스준비코드
__게임의main()메서드
__마지막클래스:GameHelper
__for반복문에관하여
__향상된for반복문
__원시타입캐스팅
__연습문제
__정답과해설

Chapter06자바API를알아봅시다|자바라이브러리사용하기
__앞장에서버그를남겨둔채로넘어왔습니다
__모두잠에서깨어나라이브러리를써봅시다
__ArrayList로할수있는작업
__ArrayList와일반배열비교
__진짜<스타트업침몰시키기>게임만들어보기
__실제StartupBust클래스를만들기위한준비코드
__Startup클래스의최종버전
__초강력불리언표현식
__라이브러리사용하기(자바API)
__코드자석
__정답과해설

Chapter07상속과다형성|객체마을에서의더나은삶
__의자전쟁되돌아보기
__상속의이해
__동물시뮬레이션프로그램의상속트리설계하기
__상속을더많이활용하는방법찾아보기
__‘A는B다’와‘A에는B가있다’관계활용하기
__상속구조를제대로만들었는지어떻게알수있나요?
__상속을활용해서설계할때주의점
__계약지키기:오버라이드규칙
__메서드오버로딩
__연습문제
__정답과해설

Chapter08인터페이스와추상클래스|심각한다형성
__이걸설계할때뭔가잊어버린것은없을까요?
__컴파일러는추상클래스의인스턴스를만드는것을허용하지않습니다
__추상vs.구상
__추상메서드는모두구현해야만합니다
__다형성활용하기
__어떤것도받아들일수있는더포괄적인클래스를만들면어떨까요?
__개가개처럼행동하지않으려고할때
__몇가지디자인옵션알아보기
__Pet인터페이스제작과구현
__상위클래스에있는버전의메서드를호출하는방법
__연습문제
__정답과해설

Chapter09생성자와가비지컬렉션|객체의삶과죽음
__스택과힙:삶의공간
__메서드는스택에차곡차곡쌓입니다
__로컬변수로들어있는객체는어떻게되나요?
__기적과도같은객체생성
__Duck객체만들기
__Duck을쉽게만들수있게하는방법
__인자가없는생성자는컴파일러에서항상자동으로만들어주지않나요?
__세부리뷰:생성자에대해반드시알아야할네가지
__객체의일생에서상위클래스생성자의역할
__부모가존재하기전에자식이존재할수있을까요?
__레퍼런스변수는요?
__연습문제
__정답과해설

Chapter10숫자와정적변수,정적메서드|숫자는정말중요합니다
__Math메서드:거의전역메서드입니다
__일반메서드와정적메서드사이의차이점
__정적변수초기화
__Math메서드
__원시타입을포장하는방법
__거의어디서든쓸수있는오토박싱
__반대로원시숫자를String으로변환하는방법
__숫자포매팅
__포맷지시자
__연습문제
__정답과해설

Chapter11컬렉션과제네릭|자료구조
__java.utilAPI,리스트와컬렉션
__제네릭과타입안전성
__sort()메서드다시보기
__업그레이드된Song클래스
__Comparator만가지고정렬하기
__람다를가지고주크박스코드고쳐보기
__ArrayList대신HashSet을써볼까요?
__TreeSet에관해꼭알아야할것들
__List와Set에대해배웠으니이제Map을사용해볼까요?
__드디어,다시제네릭으로
__연습문제
__정답과해설

Chapter12‘어떻게’가아니고‘무엇’을|람다와스트림
__컴퓨터한테우리가무엇을원하는지알려줍시다
__for반복문이잘못될때
__스트림API소개
__스트림에서결과가져오기
__스트림활용가이드라인
__안녕,나의(별로오래된건아니지만)오랜친구!
__함수형인터페이스를알아보는법
__루씨가내준숙제#1:‘록’음악전부찾아내기
__루씨가내준숙제#2:모든장르의목록구하기
__5분미스터리
__정답과해설

Chapter13예외처리|위험한행동
__음악재생프로그램만들어보기
__우선Sequencer가필요합니다
__예외도객체입니다.Exception타입의객체지요
__try/catch블록에서의흐름제어
__메서드에서예외를두개이상던질수도있습니다
__catch블록을여러개사용할때는작은것부터큰것으로나열해야합니다
__선언을통해회피하는것은불가피한것을잠시미뤄두는것뿐입니다
__코드키친
__버전1:첫번째사운드애플리케이션만들기
__버전2:명령행인자를써서소리를조절해보기
__연습문제
__정답과해설

Chapter14GUI|그래픽이야기
__모든것은창에서시작합니다
__사용자이벤트를받아들이는방법
__리스너,소스,그리고이벤트
__그림을그리기위한위젯만들어보기
__paintComponent()로할수있는일
__프레임에위젯을두개이상집어넣는방법
__내부클래스가있습니다
__람다구원등판!
__내부클래스를써서애니메이션만들어보기
__메시지/이벤트를쉽게만드는방법
__연습문제
__정답과해설

Chapter15스윙사용방법|스윙을알아봅시다
__스윙구성요소
__레이아웃관리자
__세가지대표적인레이아웃관리자
__스윙구성요소사용해보기
__코드키친
__비트박스프로그램만들기
__연습문제
__정답과해설

Chapter16직렬화와파일입출력|객체저장
__직렬화된객체를파일에저장하는방법
__클래스를직렬화할수있게하려면Serializable을구현해야합니다
__역직렬화:객체복구
__버전ID:직렬화를할때주의할부분
__String을텍스트파일에저장하는방법
__텍스트파일을읽는방법
__QuizCardPlayer(코드개요)
__Path,Paths,Files(디렉터리처리)
__마지막으로,finally
__코드키친
__비트박스패턴을저장하는방법
__비트박스패턴을복구하는방법
__연습문제
__정답과해설

Chapter17네트워킹과스레드|연결하는방법
__연결하기,보내기,받기
__DailyAdviceClient
__간단한서버애플리케이션만들기
__자바에서는스레드여러개를사용할수있지만Thread클래스는하나뿐입니다
__새로만들어진스레드의세가지상태
__스레드를대기상태로전환시키는방법
__스레드를두개이상만들고시작하는방법
__스레드풀닫는시간
__향상된새버전의SimpleChatClient
__코드자석
__정답과해설
__코드키친

Chapter18경쟁상태와불변데이터|동시성이슈처리방법
__코드로만들어본라이언과모니카문제
__객체의자물쇠사용법
__무시무시한‘갱신손실’문제
__increment()메서드를원자적으로바꿉니다.동기화합니다!
__동기화의치명적인약점,교착상태
__원자변수를이용한CAS연산
__불변객체사용법
__공유데이터관련된또다른문제
__스레드안전성을갖춘자료구조
__연습문제
__정답과해설

APPENDIXA코드키친최종회
__마지막비트박스클라이언트프로그램
__마지막비트박스서버프로그램

APPENDIXB거의본문에들어갈뻔했던내용,TOP10
__#11JShell(자바REPL)
__#10패키지
__#9문자열과래퍼의불변성
__#8접근단계와접근변경자(누가무엇을볼수있는가)
__#7가변인자
__#6애너테이션
__#5람다와Map
__#4병렬스트림
__#3열거형
__#2로컬변수타입추론(var)
__#1레코드

찾아보기

출판사 서평

자바로여는무한한객체지향의세계!
실무에서제대로활용하는자바프로그래밍학습서

다음세가지질문에“예”라고대답할수있다면,이책은당신을위한것입니다!
-실제프로그래밍경험이있거나관심이있습니까?
-자바를재미있는이야기와다양한실전예제로체험하며배우고싶습니까?
-지루하고학구적인강의보다는파티에서의즐거운대화를선호하십니까?

『헤드퍼스트자바(3판)』는무미건조하게글로만배우는자바학습서가아니라풍부한시각자료와직접대화하는듯한친절한설명을곁들인두뇌친화적인자바가이드입니다.책에실린재미있는예시와이미지는독자의효과적인학습을돕습니다.이책을읽고나면자바와객체지향에대해완벽하게이해하고,실무에서자바를다양하게활용할수있습니다.전문가의조언과함께각종퍼즐과다양한퀴즈를풀어보며뇌를일깨우는자바학습을경험해보세요.

예제파일다운로드
→hanbit.co.kr/src/11179
→oreil.ly/hfJava_3e_examples