WELCOME TO SHOP

    회원가입을 하시면 다양한 혜택과 이벤트가 기다리고 있습니다.

    은행계좌안내

    • 국민은행 493601-01-371416
    • 예금주 주식회사 가람로직스

    상품상세 정보

    뒤로가기

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

    상품 정보
    상품명 가장 빨리 만나는 코어 자바 9
    정가 ₩36,000
    판매가 ₩32,400
    배송비 무료
    출판사 길벗
    ISBN 9791160504392
    출간일 2018-03-30
    구매방법
    배송주기
    상품 옵션
    배송
    수량
    down up  
    상품 목록
    상품 정보 가격 삭제
    총상품금액(수량) 0

    할인가가 적용된 최종 결제예정금액은 주문 시 확인할 수 있습니다.

    이벤트 온오프버튼  

    구매하기

     


    책소개

    자바 9으로 배우는 모던 자바!

    자바 프로그래머가 알아야 할 모던 자바의 핵심을 다루면서 자바 8과 9의 특징을 짚어준다. 자바 8의 람다 표현식과 스트림 라이브러리, 자바 9의 JShell과 모듈 시스템의 장점을 간결하게 설명한다. 핵심에 집중하여 개념을 빠르게 익히고, 예제 코드를 보면서 프로그래밍 문제 해결 방법을 배운 뒤 실무에 바로 적용할 수 있다.

    목차


    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[T] 클래스
    ____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 모듈 작업용 도구
    __연습문제

    찾아보기









    작가

    카이 호스트만 (지은이), 신경근 (옮긴이)

    출판사리뷰

    모던 자바의 장점을 실무에 빠르게 적용하자!
    이 책은 기존 책에 자바 8/9에 추가된 개념과 특징을 덧붙이기보다는 처음부터 모던 자바의 시각으로 자바 9를 배울 수 있게 이끌어 준다.
    자바 9에서는 ‘자바 플랫폼 모듈 시스템’이라는 모듈 개념을 도입했으며, JDK 라이브러리 자체도 모듈화했다. 덕분에 캡슐화 단계가 추가되고 보안성이 높아졌으며, 필요한 모듈만으로 애플리케이션을 구성해 이전보다 훨씬 작은 단위로 배포할 수 있게 되었다.
    이외에도 자바 9에 추가된 JShell, 각종 명령줄 도구, 한층 개선된 API(프로세스, HTTP 클라이언트, 컬렉션, 스트림 등)는 자바 프로그래머의 생산성 향상에 큰 도움이 될 것이다.

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


     
    상품결제정보
    배송 안내
    • 배송 방법 : 택배
    • 배송 지역 : 전국지역
    • 배송 비용 : 무료
    • 배송 기간 : 3일 ~ 7일
    • 배송 안내 :
    교환/반품 안내
    서비스문의 안내
    판매자 정보

    게시물이 없습니다

    글작성 모두보기

    게시물이 없습니다

    글작성 모두보기


    WORLD SHIPPING

    PLEASE SELECT THE DESTINATION COUNTRY AND LANGUAGE :

    GO
    닫기