본문 바로가기

리디북스 접속이 원활하지 않습니다. 새로 고침(F5)해주세요.
계속해서 문제가 발생한다면 리디북스 접속 테스트를 통해 원인을 파악하고 대응 방법을 안내드리겠습니다.
테스트 페이지로 이동하기

RIDIBOOKS

리디북스 검색

최근 검색어

'검색어 저장 끄기'로 설정되어 있습니다.


리디북스 카테고리



가장 빨리 만나는 코어 자바 9 상세페이지

컴퓨터/IT 개발/프로그래밍

가장 빨리 만나는 코어 자바 9

구매종이책 정가36,000
전자책 정가28,800(20%)
판매가28,800
가장 빨리 만나는 코어 자바 9

책 소개

<가장 빨리 만나는 코어 자바 9> 모던 자바의 장점을 실무에 빠르게 적용하자!

이 책은 기존 책에 자바 8/9에 추가된 개념과 특징을 덧붙이기보다는 처음부터 모던 자바의 시각으로 자바 9를 배울 수 있게 이끌어 준다.

자바 9에서는 ‘자바 플랫폼 모듈 시스템’이라는 모듈 개념을 도입했으며, JDK 라이브러리 자체도 모듈화했다. 덕분에 캡슐화 단계가 추가되고 보안성이 높아졌으며, 필요한 모듈만으로 애플리케이션을 구성해 이전보다 훨씬 작은 단위로 배포할 수 있게 되었다.

이외에도 자바 9에 추가된 JShell, 각종 명령줄 도구, 한층 개선된 API(프로세스, HTTP 클라이언트, 컬렉션, 스트림 등)는 자바 프로그래머의 생산성 향상에 큰 도움이 될 것이다.

이 책에서 다루는 내용
람다 표현식, 스트림, 개선된 API, JShell, 모듈을 간결하고 명확하게 설명한다.
• 새로운 JShell Read-Eval-Print Loop(REPL)를 사용하여 테스트 코드를 작성한다.
• 람다 표현식으로 원하는 동작만 지정하여 작업을 더욱 간결하게 표현한다.
• 최신 스트림 API로 데이터 처리를 간소화하고 최적화한다.
• 병행성 라이브러리를 사용하여 현대적 병행 프로그래밍을 다룬다.
• 광범위하게 개선된 API(컬렉션, 병행성, 프로세스, HTTP 클라이언트, 스트림 등)를 활용한다.
• 모듈을 사용하여 복합 시스템의 개발을 단순화한다.
• 모듈로 API를 정리하여 보안성을 높이고, 배포 단위를 줄인다.
• 레거시 코드를 모듈식 애플리케이션으로 마이그레이션한다.


저자 프로필

카이 호스트만 Cay S. Horstmann

  • 국적 미국
  • 경력 산호세 주립 대학교 컴퓨터과학 교수
  • 링크 공식 사이트

2015.01.08. 업데이트 작가 프로필 수정 요청


저자 소개

《가장 빨리 만나는 자바 8》(길벗, 2014), 《쉽게 배워서 빨리 써먹 는 스칼라 프로그래밍》(비제이퍼블릭, 2013)의 저자이자 《Core Java™, Volumes I and II, 10th Edition》(Prentice Hall, 2016) 의 주 저자이며, 전문 프로그래머와 컴퓨터 과학 학생들을 위해 12권도 넘는 책을 저술했다. 현재 산호세 주립 대학교의 컴퓨터 과학 교수이며 자바 챔피언이다.

저자의 다른책
자바8
카이 호스트만의 코어 자바 8

목차

1장 기본 프로그래밍 구조
__1.1 첫 번째 프로그램
____1.1.1 “Hello, World” 프로그램 파헤치기
____1.1.2 자바 프로그램 컴파일 및 실행
____1.1.3 메서드 호출
____1.1.4 JShell 실행
__1.2 기본 타입
____1.2.1 부호 있는 정수 타입
____1.2.2 부동소수점 타입
____1.2.3 char 타입
____1.2.4 boolean 타입
__1.3 변수
____1.3.1 변수 선언
____1.3.2 변수 이름
____1.3.3 변수 초기화
____1.3.4 상수
__1.4 산술 연산
____1.4.1 할당
____1.4.2 기본 계산
____1.4.3 수학 메서드
____1.4.4 숫자 타입 변환
____1.4.5 관계 연산자와 논리 연산자
____1.4.6 큰 숫자
__1.5 문자열
____1.5.1 문자열 연결
____1.5.2 부분 문자열
____1.5.3 문자열 비교
____1.5.4 숫자와 문자열 사이의 변환
____1.5.5 문자열 API
____1.5.6 코드 포인트와 코드 유닛
__1.6 입력과 출력
____1.6.1 입력 읽어 오기
____1.6.2 포맷 적용 출력
__1.7 제어 흐름
____1.7.1 분기
____1.7.2 루프
____1.7.3 중단과 계속
____1.7.4 지역 변수의 유효 범위
__1.8 배열과 배열 리스트
____1.8.1 배열 다루기
____1.8.2 배열 생성
____1.8.3 배열 리스트
____1.8.4 기본 타입의 래퍼 클래스
____1.8.5 향상된 for 루프
____1.8.6 배열과 배열 리스트 복사
____1.8.7 배열 알고리즘
____1.8.8 명령줄 인수
____1.8.9 다차원 배열
__1.9 기능적 분해
____1.9.1 정적 메서드 선언 및 호출
____1.9.2 배열 매개변수와 반환 값
____1.9.3 가변 인수
__연습문제

2장 객체 지향 프로그래밍
__2.1 객체 사용
____2.1.1 접근자 메서드와 변경자 메서드
____2.1.2 객체 참조
__2.2 클래스 구현
____2.2.1 인스턴스 변수
____2.2.2 메서드 헤더
____2.2.3 메서드 바디
____2.2.4 인스턴스 메서드 호출
____2.2.5 this 참조
____2.2.6 값을 사용한 호출
__2.3 객체 생성
____2.3.1 생성자 구현
____2.3.2 오버로딩
____2.3.3 다른 생성자에서 특정 생성자 호출
____2.3.4 기본 초기화
____2.3.5 인스턴스 변수 초기화
____2.3.6 최종 인스턴스 변수
____2.3.7 인수 없는 생성자
__2.4 정적 변수와 정적 메서드
____2.4.1 정적 변수
____2.4.2 정적 상수
____2.4.3 정적 초기화 블록
____2.4.4 정적 메서드
____2.4.5 팩토리 메서드
__2.5 패키지
____2.5.1 패키지 선언
____2.5.2 jar 명령
____2.5.3 클래스 패스
____2.5.4 패키지 접근
____2.5.5 클래스 임포트
____2.5.6 정적 임포트
__2.6 중첩 클래스
____2.6.1 정적 중첩 클래스
____2.6.2 내부 클래스
____2.6.3 내부 클래스용 특수 문법 규칙
__2.7 문서화 주석
____2.7.1 주석 넣기
____2.7.2 클래스 주석
____2.7.3 메서드 주석
____2.7.4 변수 주석
____2.7.5 일반 주석
____2.7.6 링크
____2.7.7 패키지 주석, 모듈 주석, 개요 주석
____2.7.8 주석 내보내기
__연습문제

3장 인터페이스와 람다 표현식
__3.1 인터페이스
____3.1.1 인터페이스 선언
____3.1.2 인터페이스 구현
____3.1.3 인터페이스 타입으로 변환
____3.1.4 캐스트와 instanceof 연산자
____3.1.5 인터페이스 확장
____3.1.6 여러 인터페이스 구현
____3.1.7 상수
__3.2 인터페이스의 정적 메서드, 기본 메서드, 비공개 메서드
____3.2.1 정적 메서드
____3.2.2 기본 메서드
____3.2.3 기본 메서드의 충돌 해결
____3.2.4 비공개 메서드
__3.3 인터페이스의 예
____3.3.1 Comparable 인터페이스
____3.3.2 Comparator 인터페이스
____3.3.3 Runnable 인터페이스
____3.3.4 사용자 인터페이스 콜백
__3.4 람다 표현식
____3.4.1 람다 표현식 문법
____3.4.2 함수형 인터페이스
__3.5 메서드 참조와 생성자 참조
____3.5.1 메서드 참조
____3.5.2 생성자 참조
__3.6 람다 표현식 처리
____3.6.1 지연 실행 구현
____3.6.2 함수형 인터페이스 선택
____3.6.3 독자적인 함수형 인터페이스 구현
__3.7 람다 표현식과 변수 유효 범위
____3.7.1 람다 표현식의 유효 범위
____3.7.2 람다 표현식을 감싸는 유효 범위에 속한 변수 접근
__3.8 고차 함수
____3.8.1 함수를 반환하는 메서드
____3.8.2 함수를 수정하는 메서드
____3.8.3 Comparator 인터페이스의 메서드
__3.9 지역 클래스와 익명 클래스
____3.9.1 지역 클래스
____3.9.2 익명 클래스
__연습문제

4장 상속과 리플렉션
__4.1 클래스 확장
____4.1.1 슈퍼클래스와 서브클래스
____4.1.2 서브클래스 메서드 정의와 상속
____4.1.3 메서드 오버라이딩
____4.1.4 서브클래스 생성
____4.1.5 슈퍼클래스 할당
____4.1.6 캐스트
____4.1.7 최종 메서드와 최종 클래스
____4.1.8 추상 메서드와 추상 클래스
____4.1.9 보호 접근
____4.1.10 익명 서브클래스
____4.1.11 상속과 기본 메서드
____4.1.12 super를 이용한 메서드 표현식
__4.2 Object: 보편적 슈퍼클래스
____4.2.1 toString 메서드
____4.2.2 equals 메서드
____4.2.3 hashCode 메서드
____4.2.4 객체 복제
__4.3 열거
____4.3.1 열거의 메서드
____4.3.2 생성자, 메서드, 필드
____4.3.3 인스턴스의 바디
____4.3.4 정적 멤버
____4.3.5 열거를 기준으로 스위치하기
__4.4 실행 시간 타입 정보와 리소스
____4.4.1 Class 클래스
____4.4.2 리소스 로드
____4.4.3 클래스 로더
____4.4.4 컨텍스트 클래스 로더
____4.4.5 서비스 로더
__4.5 리플렉션
____4.5.1 클래스 멤버 나열
____4.5.2 객체 조사
____4.5.3 메서드 호출
____4.5.4 객체 생성
____4.5.5 자바빈
____4.5.6 배열 다루기
____4.5.7 프록시
__연습문제

5장 예외, 단정, 로깅
__5.1 예외 처리
____5.1.1 예외 던지기
____5.1.2 예외 계층
____5.1.3 검사 예외 선언
____5.1.4 예외 잡기
____5.1.5 try-with-resources 문
____5.1.6 finally 절
____5.1.7 예외 다시 던지기와 예외 연쇄
____5.1.8 미처리 예외와 스택 추적
____5.1.9 Objects.requireNonNull 메서드
__5.2 단정
____5.2.1 단정 사용
____5.2.2 단정 활성화와 비활성화
__5.3 로깅
____5.3.1 로거 사용
____5.3.2 로거
____5.3.3 로깅 레벨
____5.3.4 기타 로깅 메서드
____5.3.5 로깅 구성
____5.3.6 로그 핸들러
____5.3.7 필터와 포매터
__연습문제

6장 제네릭 프로그래밍
__6.1 제네릭 클래스
__6.2 제네릭 메서드
__6.3 타입 경계
__6.4 타입 가변성과 와일드카드
____6.4.1 서브타입 와일드카드
____6.4.2 슈퍼타입 와일드카드
____6.4.3 타입 변수를 이용한 와일드카드
____6.4.4 경계 없는 와일드카드
____6.4.5 와일드카드 캡처
__6.5 자바 가상 머신에서 보는 제네릭
____6.5.1 타입 소거
____6.5.2 캐스트 삽입
____6.5.3 브리지 메서드
__6.6 제네릭의 제약
____6.6.1 기본 타입 인수를 사용할 수 없다
____6.6.2 실행 시간에는 모든 타입이 로 형태다
____6.6.3 타입 변수를 인스턴스화할 수 없다
____6.6.4 매개변수화된 타입의 배열을 생성할 수 없다
____6.6.5 정적 컨텍스트에서는 클래스 타입 변수가 유효하지 않다
____6.6.6 메서드가 소거 후 충돌하지 않을 수도 있다
____6.6.7 예외와 제네릭
__6.7 리플렉션과 제네릭
____6.7.1 Class 클래스
____6.7.2 가상 머신에 있는 제네릭 타입 정보
__연습문제

7장 컬렉션
__7.1 컬렉션 프레임워크 개요
__7.2 반복자
__7.3 집합
__7.4 맵
__7.5 기타 컬렉션
____7.5.1 프로퍼티
____7.5.2 비트 집합
____7.5.3 열거 집합과 열거 맵
____7.5.4 스택, 큐, 덱, 우선순위 큐
____7.5.5 약한 해시 맵
__7.6 뷰
____7.6.1 작은 컬렉션
____7.6.2 범위
____7.6.3 수정 불가 뷰
__연습문제

8장 스트림
__8.1 반복에서 스트림 연산으로 전환
__8.2 스트림 생성
__8.3 filter, map, flatMap 메서드
__8.4 서브스트림 추출과 스트림 결합
__8.5 기타 스트림 변환
__8.6 단순 리덕션
__8.7 옵션 타입
____8.7.1 옵션 값을 사용하는 방법
____8.7.2 옵션 값을 사용하지 않는 방법
____8.7.3 옵션 값 생성
____8.7.4 flatMap으로 옵션 값 함수 합성
____8.7.5 옵션 값을 스트림으로 변환
__8.8 결과 모으기
__8.9 맵으로 모으기
__8.10 그루핑과 파티셔닝
__8.11 다운스트림 컬렉터
__8.12 리덕션 연산
__8.13 기본 타입 스트림
__8.14 병렬 스트림
__연습문제

9장 입출력 처리
__9.1 입출력 스트림, 리더와 라이터
____9.1.1 스트림 얻기
____9.1.2 바이트 읽기
____9.1.3 바이트 쓰기
____9.1.4 문자 인코딩
____9.1.5 텍스트 입력
____9.1.6 텍스트 출력
____9.1.7 바이너리 데이터 읽기 및 쓰기
____9.1.8 임의 접근 파일
____9.1.9 메모리 맵 파일
____9.1.10 파일 잠금
__9.2 경로, 파일, 디렉터리
____9.2.1 경로
____9.2.2 파일과 디렉터리 생성
____9.2.3 파일 복사, 이동, 삭제
____9.2.4 디렉터리 엔트리 방문
____9.2.5 ZIP 파일 시스템
__9.3 HTTP 커넥션
____9.3.1 URLConnection과 HttpURLConnection 클래스
____9.3.2 HTTP 클라이언트 API
__9.4 정규 표현식
____9.4.1 정규 표현식 문법
____9.4.2 일치 항목 한 개 찾기
____9.4.3 모든 일치 항목 찾기
____9.4.4 그룹
____9.4.5 구분자로 분리
____9.4.6 일치 항목 교체
____9.4.7 플래그
__9.5 직렬화
____9.5.1 Serializable 인터페이스
____9.5.2 일시적인 인스턴스 변수
____9.5.3 readObject와 writeObject 메서드
____9.5.4 readResolve와 writeReplace 메서드
____9.5.5 버전 관리
__연습문제

10장 병행 프로그래밍
__10.1 병행 태스크
____10.1.1 태스크 실행
____10.1.2 퓨처
__10.2 비동기 계산
____10.2.1 완료 가능한 퓨처
____10.2.2 완료 가능한 퓨처 합성
____10.2.3 사용자 인터페이스 콜백에서 장시간 수행하는 태스크
__10.3 스레드 안전성
____10.3.1 가시성
____10.3.2 경쟁 조건
____10.3.3 안전한 병행성을 실현하는 전략
____10.3.4 불변 클래스
__10.4 병렬 알고리즘
____10.4.1 병렬 스트림
____10.4.2 병렬 배열 연산
__10.5 스레드 안전 자료 구조
____10.5.1 병행 해시 맵
____10.5.2 블로킹 큐
____10.5.3 기타 스레드 안전 자료 구조
__10.6 원자적 카운터와 누산기
__10.7 잠금과 조건
____10.7.1 잠금
____10.7.2 synchronized 키워드
____10.7.3 조건 대기
__10.8 스레드
____10.8.1 스레드 시작
____10.8.2 스레드 인터럽션
____10.8.3 스레드 로컬 변수
____10.8.4 기타 스레드 프로퍼티
__10.9 프로세스
____10.9.1 프로세스 생성
____10.9.2 프로세스 실행
____10.9.3 프로세스 핸들
__연습문제

11장 애너테이션
__11.1 애너테이션 사용
____11.1.1 애너테이션 요소
____11.1.2 다중 애너테이션과 반복 애너테이션
____11.1.3 선언에 애너테이션 붙이기
____11.1.4 타입 사용에 애너테이션 붙이기
____11.1.5 수신자를 명확하게 지정
__11.2 애너테이션 정의
__11.3 표준 애너테이션
____11.3.1 컴파일용 애너테이션
____11.3.2 리소스 관리용 애너테이션
____11.3.3 메타애너테이션
__11.4 실행 시간에 애너테이션 처리
__11.5 소스 수준 애너테이션 처리
____11.5.1 애너테이션 처리기
____11.5.2 언어 모델 API
____11.5.3 애너테이션으로 소스 코드 생성
__연습문제

12장 날짜와 시간 API
__12.1 타임 라인
__12.2 지역 날짜
__12.3 날짜 조정기
__12.4 지역 시간
__12.5 구역 시간
__12.6 포매팅과 파싱
__12.7 레거시 코드와 상호 작동
__연습문제

13장 국제화
__13.1 로케일
____13.1.1 로케일 지정
____13.1.2 기본 로케일
____13.1.3 표시 이름
__13.2 숫자 형식
__13.3 통화
__13.4 날짜와 시간 포매팅
__13.5 컬레이션과 정규화
__13.6 메시지 포매팅
__13.7 리소스 번들
____13.7.1 리소스 번들 구성
____13.7.2 번들 클래스
__13.8 문자 인코딩
__13.9 프레퍼런스
__연습문제

14장 컴파일링과 스크립팅
__14.1 컴파일러 API
____14.1.1 컴파일러 호출
____14.1.2 컴파일 태스크 실행
____14.1.3 메모리에서 소스 파일 읽기
____14.1.4 메모리에 바이트 코드 작성
____14.1.5 진단 정보 캡처
__14.2 스크립팅 API
____14.2.1 스크립팅 엔진 얻기
____14.2.2 바인딩
____14.2.3 입력과 출력 재지정
____14.2.4 스크립팅 함수와 메서드 호출
____14.2.5 스크립트 컴파일
__14.3 Nashorn 스크립팅 엔진
____14.3.1 명령줄에서 Nashorn 실행
____14.3.2 게터, 세터, 오버로드된 메서드 호출
____14.3.3 자바 객체 생성
____14.3.4 자바스크립트와 자바의 문자열
____14.3.5 숫자
____14.3.6 배열 다루기
____14.3.7 리스트와 맵
____14.3.8 람다
____14.3.9 자바 클래스 확장과 자바 인터페이스 구현
____14.3.10 예외
__14.4 Nashorn을 이용한 셸 스크립팅
____14.4.1 셸 명령 실행
____14.4.2 문자열 인터폴레이션
____14.4.3 스크립트 입력
__연습문제

15장 자바 플랫폼 모듈 시스템
__15.1 모듈 개념 잡기
__15.2 모듈 이름 짓기
__15.3 모듈식 “Hello, World!” 프로그램
__15.4 모듈 요구
__15.5 패키지 익스포트
__15.6 모듈과 리플렉션을 이용한 접근
__15.7 모듈식 JAR
__15.8 자동 모듈과 이름 없는 모듈
__15.9 마이그레이션용 명령줄 플래그
__15.10 전이적 요구 사항과 정적 요구 사항
__15.11 한정된 익스포트와 개방
__15.12 서비스 로드
__15.13 모듈 작업용 도구
__연습문제

찾아보기


리뷰

구매자 별점

5.0

점수비율

  • 5
  • 4
  • 3
  • 2
  • 1

1명이 평가함

리뷰 작성 영역

이 책을 평가해주세요!

내가 남긴 별점 0.0

별로예요

그저 그래요

보통이에요

좋아요

최고예요

별점 취소

구매자 표시 기준은 무엇인가요?

'구매자' 표시는 리디북스에서 유료도서 결제 후 다운로드 하시거나 리디셀렉트 도서를 다운로드하신 경우에만 표시됩니다.

무료 도서 (프로모션 등으로 무료로 전환된 도서 포함)
'구매자'로 표시되지 않습니다.
시리즈 도서 내 무료 도서
'구매자’로 표시되지 않습니다. 하지만 같은 시리즈의 유료 도서를 결제한 뒤 리뷰를 수정하거나 재등록하면 '구매자'로 표시됩니다.
영구 삭제
도서를 영구 삭제해도 ‘구매자’ 표시는 남아있습니다.
결제 취소
‘구매자’ 표시가 자동으로 사라집니다.

이 책과 함께 구매한 책


이 책과 함께 둘러본 책



본문 끝 최상단으로 돌아가기


spinner
모바일 버전