한빛출판네트워크

IT/모바일

Head First Java: 뇌 회로를 자극하는 자바 학습법(개정판)

한빛미디어

번역서

판매중

Head First Java: 뇌 회로를 자극하는 자바 학습법(개정판)
좋아요: 43
  • 저자 : 케이시 시에라 , 버트 베이츠
  • 역자 : 서환수
  • 출간일 : 2005-11-16
  • 페이지 : 720쪽
  • ISBN : 8979143710
  • 물류코드 :1371

합계 : 25,200

  • 개정판! 무엇이 달라졌나!!!
       첫째: 자바 5.0(타이거)에 맞춰서 달라진 내용을 전면 수정 보완
       둘째: 추가된 장 하나(16장)를 할애해서 제네닉과 컬렉션을 자세히 다룸
       자바 5.0 학습도 Head First Java와 함께…

    상상을 초월하는 새로운 접근 방법으로 재미 두배! 실력 두배!

    이 책은 객체지향 프로그래밍과 자바를 완벽하게 배울 수 있는 책입니다. 두뇌 친화적인 학습이론을 바탕으로 만들어진 이 책은 자바의 기초에서부터 시작해서 스레드, 네트워크 소켓, 분산 프로그래밍에 이르기까지, 거의 모든 것을 담고 있습니다. 무엇보다도 중요한 것은 객체지향 개발자답게 생각하는 방법을 배울 수 있다는 점입니다.

    이 책은 그냥 읽기만 하는 책이 아닙니다. 게임도 해보고, 퍼즐도 풀어보고, 미스터리도 해결해보며 상상도 하지 못한 방법으로 자바를 체험할 수 있습니다. 이 책을 보는 동안 닷컴 가라앉히기 게임 및 네트워크 드럼 머신 채팅 클라이언트 같은 진짜 자바 프로그램도 만들어보게 될 것입니다. 헤드 퍼스트 정신에 입각하여 풍부한 그래픽을 사용하는 접근법 덕분에 새로운 내용을 빠르게 배울 수 있고, 오랫동안 기억할 수 있을 것입니다. 마음을 열고 다음과 같은 주제를 공부할 준비를 해봅시다.

    • 자바 언어
    • 객체지향 개발
    • 애플리케이션 작성, 테스팅, 배포
    • 자바 API 라이브러리 사용법
    • 예외 처리
    • 다중스레딩
    • 스윙 GUI 프로그래밍
    • 네트워킹, RMI, 소켓
    • 컬렉션과 제네릭

    지루함을 느끼고 싶다면 다른 책을 보세요. 하지만 정말 자바를 배우고 싶다면 꼭 이 책을 보세요. 헤드 퍼스트 시리즈가 어떻게 2003년, 2004년 2년 연속 아마존 편집자가 선정한 컴퓨터 서적 TOP 10에 오를 수 있었는지 직접 확인해보세요.

    추천평

    “... 『Head First Java』는 지금까지 나온 어떤 책보다 더 GUI스러운 책입니다. 이 책을 가지고 자바를 공부하다 보면 '이 사람들이 이제 뭘 하려나?' 하는 기대감마저 들 것입니다.”
    ― 워렌 쿠펠, Software Development Magazine

    “빠르고 재미있고 정신없는 책입니다. 보다 보면 정말로 뭔가 배울 수 있다니까요...”
    ― 켄 아놀드, 『The Java Programming Language』 저자

    “...지금 당장 시작하세요. 『Head First Java』가 있습니다.”
    ― 스캇 맥닐리, 썬 마이크로시스템즈 회장

  • [저자] 케이시 시에라

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

    [저자] 버트 베이츠

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

    [역자] 서환수

    서울대학교 물리학과에서 학사, 박사 학위를 받았고 지금은 삼성종합기술원에서 물리학을 연구하고 있다. 한빛미디어에서 『Head First Java』, 『Programming Challenges: 알고리즘 트레이닝 북』, 『프로그래머로 사는 법』, 『슬라이드올로지』를 비롯한 여러 권의 책을 번역했다.
  • 1장. 껍질을 깨고
    자바는 어떤 식으로 돌아갈까?
    자바 코드의 구조
    클래스를 해부합시다
    main() 메소드
    순환문
    조건에 따른 분기문
    ‘맥주 99병’ 애플리케이션 코드
    자동 구문 생성기
    집중 토론: 컴파일러와 자바 가상 머신
    연습문제와 퍼즐
     
    2장. 객체 마을로의 여행
    의자 전쟁(객체지향맨 브래드와 프로시저맨 래리)
    상속(기초)
    메소드를 오버라이드하는 방법(기초)
    클래스 안에는 뭐가 있을까?(메소드, 인스턴스 변수)
    첫번째 객체를 만들어봅시다
    main()을 사용하는 방법
    게임 코드 알아 맞추기
    연습문제와 퍼즐
     
    3장. 네 변수를 알라
    변수 선언(자바에서는 유형을 까다롭게 따집니다)
    원시 변수 유형
    자바 키워드
    레퍼런스 변수(객체에 대한 리모컨)
    객체 선언과 대입
    가비지 컬렉션 기능이 있는 힙에서의 객체
    배열
    연습문제와 퍼즐
     
    4장. 객체의 행동
    메소드와 객체의 상태
    메소드 인자와 리턴 유형
    값으로 전달
    게터와 세터
    캡슐화
    배열에서 레퍼런스를 사용하는 방법
    연습문제와 퍼즐
     
    5장. 메소드를 더 강력하게
    닷컴 가라앉히기 게임 만들기
    간단한 닷컴 게임
    준비 코드를 만들어봅시다(게임을 만들기 위한 유사코드)
    간단한 닷컴 게임을 만들기 위한 테스트 코드
    간단한 닷컴 게임 코드 작성
    간단한 닷컴 게임 최종 코드
    Math.random()으로 난수를 만들어내는 방법
    명령행에서 사용자가 입력한 내용을 받아오기 위한 인스턴트 코드
    for 순환문을 써서 순환시키는 방법
    원시값을 더 큰 변수에서 작은 변수로 캐스팅하는 방법
    Integer.parseInt()를 가지고 String을 int로 변환하는 방법
    연습문제와 퍼즐
     
    6장. 자바 라이브러리
    간단한 닷컴 게임 버그 분석
    ArrayList(자바 API를 활용하는 방법)
    닷컴 클래스 코드 고치기
    진짜 게임 만들기(닷컴 가라앉히기)
    진짜 게임을 만들기 위한 준비 코드
    진짜 게임을 만들기 위한 코드
    부울 표현식
    라이브러리(자바 API) 활용
    패키지 사용 방법(import 선언문, 전체 이름)
    HTML API 문서와 레퍼런스 서적을 활용하는 방법
    연습문제와 퍼즐
     
    7장. 객체마을에서의 더 나은 삶
    상속의 이해(수퍼클래스와 하위클래스 사이의 관계)
    상속 트리 설계(Animal 시뮬레이션)
    중복된 코드를 피하는 방법(상속 활용 방법)
    메소드 오버라이딩
    "A는 B다" 관계와 "A에는 B가 있다" 관계(욕조 안의 아가씨)
    수퍼클래스로부터 상속받는 것
    상속 활용의 장점
    다형성(하위클래스 객체에 대해 수퍼유형 레퍼런스를 사용하는 방법)
    오버라이딩 규칙(인자와 리턴 유형은 건드리지 맙시다)
    메소드 오버로딩(메소드명을 재활용하는 것뿐입니다)
    연습문제와 퍼즐
     
    8장. 심각한 다형성
    인스턴스를 만들 수 없는 클래스
    추상 클래스(인스턴스를 만들 수 없습니다)
    추상 메소드(반드시 구현해야 합니다)
    다형성을 실제로 활용하는 방법
    Object 클래스(모든 클래스의 수퍼클래스)
    ArrayList에서 객체를 꺼내는 방법(기본적으로 모두 Object 유형입니다)
    컴파일러에서 레퍼런스 유형을 체크하는 방법
    내부 객체
    다형적 레퍼런스
    객체 레퍼런스 캐스팅(상속 트리에서 아래로 내려가는 방법)
    죽음의 다이아몬드(다중 상속에서 생길 수 있는 문제)
    인터페이스 사용 방법
    연습문제와 퍼즐
     
    9장. 객체의 삶과 죽음
    스택과 힙, 객체와 변수가 살아가는 곳
    스택에 들어있는 메소드
    지역 변수가 있는 위치
    인스턴스 변수가 있는 위치
    객체 생성
    생성자(new를 실행하면 실행되는 코드)
    새로운 Duck 객체의 상태를 초기화하는 방법
    오버로드된 생성자
    수퍼클래스 생성자
    this()를 써서 오버로드된 생성자를 호출하는 방법
    객체의 삶
    가비지 컬렉션
    연습문제와 퍼즐
     
    10장. 숫자는 정말 중요합니다
    Math 클래스
    정적 메소드
    정적 변수
    상수(static final 변수)
    Math 메소드(random(), round(), abs() 등)
    래퍼 클래스(Integer, Boolean, Character 등)
    오토박싱
    숫자 포매팅
    날짜 포매팅 및 조작
    import static 구문
    연습문제와 퍼즐
     
    11장. 위험한 행동
    음악 프로그램 만들기(비트박스)
    위험한 코드를 호출해야 한다면 어떻게 해야 할까요?
    예외를 통해 “뭔가 안 좋은 일이 생겼음”을 알 수 있습니다
    컴파일러에서 위험 요소를 파악하고 있는지 확인해줍니다
    try/catch를 써서 예외를 잡아내는 방법
    try/catch 블록에서의 흐름 제어
    finally 블록
    여러 가지 예외를 잡아내는 방법
    예외 선언
    처리 또는 선언 규칙
    코드 키친(소리를 만드는 방법)
    연습문제와 퍼즐
     
    12장. 그래픽 이야기
    첫번째 GUI
    사용자 이벤트
    리스너 인터페이스 구현 방법
    버튼의 ActionEvent를 받는 방법
    GUI에 그래픽을 출력하는 방법
    paintComponent()
    Graphics2D 객체
    화면에 버튼 두 개 이상을 집어넣는 방법
    내부 클래스
    애니메이션
    코드 키친
    연습문제와 퍼즐
     
    13장. 스윙을 알아봅시다
    스윙 구성요소
    레이아웃 관리자
    세 가지 레이아웃 관리자
    BorderLayout
    FlowLayout
    BoxLayout
    JTextField
    JTextArea
    JCheckBox
    JList
    코드 키친
    연습문제와 퍼즐
     
    14장. 객체 저장
    객체의 상태를 저장하는 방법
    직렬화된 객체를 파일로 저장하는 방법
    자바의 입력과 출력 스트림
    객체 직렬화
    Serializable 인터페이스를 구현하는 방법
    transient 변수를 사용하는 방법
    객체를 역직렬화하는 방법
    텍스트 파일에 쓰는 방법
    java.io.File
    텍스트 파일로부터 읽어오는 방법
    split()을 써서 String을 토큰으로 나누는 방법
    코드 키친
    연습문제와 퍼즐
     
    15장. 연결하는 방법
    채팅 프로그램 개요
    연결, 송신, 수신
    네트워크 소켓
    TCP 포트
    Socket으로부터 데이터를 읽는 방법(BufferedReader 사용)
    Socket으로 데이터를 쓰는 방법(PrintWriter 사용)
    오늘의 조언 클라이언트 프로그램 만들기
    간단한 서버 만들기
    오늘의 조언 서버 코드
    채팅 클라이언트 만들기
    다중 호출 스택
    새로운 스레드를 시작하는 방법
    Runnable 인터페이스
    새로운 Thread 객체의 세 가지 상태
    실행 가능한 상태와 실행 중인 상태 사이의 전환
    스레드 스케줄러
    스레드를 중지시키는 방법
    스레드 두 개를 만들어서 시작하는 방법
    병행성 문제
    라이언과 모니카의 병행성 문제를 코드로...
    락을 거는 방법
    모든 객체에는 락이 있습니다
    공포의 ‘갱신 내용 손실’ 문제
    동기화된 메소드
    락을 해제할 수 없는 경우
    멀티스레드를 사용한 ChatClient 코드
    인스턴트 SimpleChatServer
    연습문제와 퍼즐
     
    16장. 자료구조
    컬렉션
    Collections.sort()를 이용한 ArrayList 정렬
    제네릭과 형 안전성
    Comparable 인터페이스를 구현하는 항목 정렬법
    Comparator를 활용한 정렬법
    컬렉션 API - 리스트, 집합, 맵
    HashSet을 이용해서 중복을 피하는 법
    hashCode() 및 equals() 오버라이딩
    HashMap
    다형성을 위한 와일드카드 활용
    연습문제 및 퍼즐
     
    17장. 코드를 배포합시다
    배포 방법
    소스 코드와 클래스 파일은 분리합시다
    실행 가능한 JAR 파일을 만드는 방법
    실행 가능한 JAR를 실행하는 방법
    클래스를 패키지에 넣읍시다
    패키지와 디렉토리 구조
    패키지로 컴파일하고 실행하는 방법
    -d 컴파일 옵션
    실행가능한 JAR 파일을 만드는 방법(패키지)
    웹을 통해 배포하기 위한 자바 웹 스타트(JWS)
    JWS 애플리케이션을 만들어서 배포하는 방법
    연습문제와 퍼즐
     
    18장. 분산 컴퓨팅
    자바 원격 메소드 호출(RMI), 자세한 예제
    서블릿
    엔터프라이즈 자바 빈즈(EJB)
    지니
    정말 훌륭한 범용 서비스 브라우저를 만드는 방법
     
    부록 A
    마지막 비트박스 코드(클라이언트 코드)
    마지막 비트박스 코드(서버 코드)
     
    부록 B
    Top 10 목록
     
    찾아보기
  •  

    • 뇌를 자극하는 Java 프로그래밍

      김윤명

    • 이것이 자바다

      신용권

닫기

해당 상품을 장바구니에 담았습니다.
장바구니로 이동하시겠습니까?