서브메뉴
검색
본문
Powered by NAVER OpenAPI
-
처음 해보는 자바 프로그래밍 (JVM 메모리 구조로 이해하는 객체지향)
저자 : 오정임
출판사 : 루비페이퍼
출판년 : 2019
정가 : 30000, ISBN : 9791186710326
책소개
입문자와 비전공자가 이해할 수 있는 가장 친절하고 쉬운 자바 입문서
이 책은 자바 프로그래밍의 핵심 즉, 객체지향 프로그래밍을 JVM 메모리 구조와 함께 쉽고 친절하게 설명하여 자바 프로그래밍 개념을 완벽히 다질 수 있다. 또한 프로그래밍 기초 문법 역시 꼼꼼하게 설명하여 어느 언어를 접하더라도 쉽게 친숙해질 수 있도록 구성했다. 더 나아가 현업에서 필요한 역량까지 갖출 수 있도록 자바 11에서 제공하는 기본 기술 및 고급 기술들을 충분히 설명한다.
목차
1장 자바 소개 및 개발환경 구축
_1.1. 프로그램과 프로그래밍 언어
_1.2. 자바의 역사
_1.3. 프로그램 개발 순서
__1.3.1. 소스 파일
__1.3.2. 컴파일
__1.3.3. 자바 실행 파일
_1.4. JVM
__1.4.1. JVM 개요
__1.4.2. JVM 실행 환경
_1.5. 개발환경 구축
__1.5.1. 자바 플랫폼
__1.5.2. JDK 설치
__1.5.3. 자바 환경 설정
__1.5.4. 자바 개발 도구
_1.6. 메모장에서 예제 작성
__1.6.1. 자바 소스 파일
__1.6.2. 컴파일
__1.6.3. 실행
_1.7. 이클립스에서 예제 작성
__1.7.1. 이클립스 설치
__1.7.2. 자바 소스 작성
__1.7.3. 컴파일
__1.7.4. 실행
2장 데이터 활용
_2.1. 변수 기본
__2.1.1. 변수란?
__2.1.2. 변수 선언
__2.1.3. 변수에 데이터 저장
__2.1.4. 변수 사용
_2.2. 데이터 종류
__2.2.1. 논리 타입
__2.2.2. 문자 타입
__2.2.3. 정수 타입
__2.2.4. 실수 타입
__2.2.5. 참조 타입
_2.3. 데이터 연산
__2.3.1. 산술 연산자
__2.3.2. 증감 연산자
__2.3.3. 비교 연산자
__2.3.4. 부호 연산자
__2.3.5. 복합 대입 연산자
__2.3.6. 논리 연산자
__2.3.7. 부정 연산자
__2.3.8. 비트 연산자
__2.3.9. 삼항 연산자
_2.4. 데이터 타입 변환
__2.4.1. 자동 타입 변경
__2.4.2. 직접 타입 변경
3장 제어문 : 실행 흐름 제어하기
_3.1. 주석문 : 소스에 메모해두기
__3.1.1. 주석문
__3.1.2. 어노테이션
__3.1.3. Javadoc 주석
_3.2. 조건문 : 조건에 따라 흐름 나누기
__3.2.1. if 문
__3.2.2. switch~case 문
_3.3. 반복문 : 여러 번 실행하기
__3.3.1. 반복문의 구성요소
__3.3.2. for 문
__3.3.3. 제어 변숫값 변경 과정 추적 : 이클립스에서 디버깅하기
__3.3.4. while 문
__3.3.5. do~while 문
_3.4. 반복문 제어하기 : 멈추거나 계속 진행하기
__3.4.1. 실행을 멈추고 반복문 탈출하기 : break 문
__3.4.2. 그다음 조건으로 계속 실행하기 : continue 문
_3.5. 제어문 중첩하기
__3.5.1. if 문 중첩
__3.5.2. 반복문 중첩
4장 배열 : 데이터 나열하기
_4.1. 배열, 무엇일까요? 왜 필요할까요?
_4.2. 배열 기본기를 다져보아요
__4.2.1. 배열 생성하기
__4.2.2. 배열에 이름 붙이기
__4.2.3. 배열에 값을 넣거나 가져오기
__4.2.4. 배열 초기화하기
__4.2.5. 배열의 길이 구하기: length
__4.2.6. 확장 for 문
__4.2.7. 배열을 활용하는 실습
_4.3. 차원이 다른 배열
__4.3.1. 2차원 배열의 구조
__4.3.2. 2차원 배열 예제
__4.3.3. 배열이 저장되는 메모리 구조
_4.4. 명령행 매개변수
__4.4.1. 명령행 매개변수란
__4.4.2. 이클립스에서 명령행 매개변수 이용하기
5장 객체지향 알기
_5.1. 객체지향의 주인공은 '객체'
__5.1.1. 그러니까 객체란 말이지...
__5.1.2. 객체를 모델링해보자
_5.2. 클래스란 무엇일까?
__5.2.1. 클래스 다이어그램
__5.2.2. 클래스 기본 구조
__5.2.3. 접근 제한자
_5.3. 자바 소스 파일 파헤치기
__5.3.1. 패키지 선언
__5.3.2. 클래스 임포트
__5.3.3. 클래스 선언
_5.4. 필드
_5.5. 메서드
__5.5.1. 메서드 호출
__5.5.2. 메서드 실행을 멈추고 값 반환하기
__5.5.3. 매개변수
_5.6. 메서드 오버로딩
_5.7. 가변 길이 인자
6장 객체지향 구현
_6.1. 클래스와 객체, 그리고 인스턴스
__6.1.1. 클래스와 객체 생성
__6.1.2. 자바의 메모리
__6.1.3. 참조변수를 이용해 인스턴스에 접근
_6.2. 정적 멤버 선언
__6.2.1. 클래스 필드
__6.2.2. 클래스 메서드
_6.3. 생성자
__6.3.1. 생성자 개요
__6.3.2. 생성자 오버로딩
__6.3.3. 기본 생성자
__6.3.4. 자신을 가리키는 키워드 this
7장 상속과 인터페이스
_7.1. 상속 개요
__7.1.1. 상속이란?
__7.1.2. 상속 구현
_7.2. 상속 활용
__7.2.1. 메서드 오버라이딩
__7.2.2. 부모 클래스 멤버에 직접 접근하기
__7.2.3. final 제어자
_7.3. 추상 개념
__7.3.1. 추상 메서드
__7.3.2. 추상 클래스
_7.4. 인터페이스
__7.4.1. 인터페이스란
__7.4.2. 인터페이스 상속
8장 다형성과 내부 클래스
_8.1. 다형성
__8.1.1. 다형성 개요
__8.1.2. 다형성의 원리
__8.1.3. 다형성의 필요성
__8.1.4. 다형성의 활용
_8.2. 내부 클래스
__8.2.1. 내부 클래스란
__8.2.2. 내부 클래스 종류
__8.2.3. 익명 클래스
_8.3. 열거형 클래스
9장 기본 API 활용하기
_9.1. API 문서
__9.1.1. 라이브러리란
__9.1.2. 자바 API
_9.2. 기본 API
__9.2.1. Object 클래스
__9.2.2. String 클래스
__9.2.3. StringBuffer/StringBuilder 클래스
__9.2.4. Math 클래스
__9.2.5. Wrapper 클래스
_9.3. 유틸리티 API
__9.3.1. StringTokenizer 클래스
__9.3.2. Random 클래스
__9.3.3. Arrays 클래스
9.3.4. Date / Calendar 클래스
9.3.5. Pattern 클래스
9.3.6. Format 클래스
10장 컬렉션 API 활용하기
_10.1. 컬렉션 개요
__10.1.1. 배열의 특성
__10.1.2. 컬렉션 프레임워크
_10.2. List 계열
__10.2.1. ArrayList 클래스
__10.2.2. Vector 클래스
__10.2.3. LinkedList 클래스
_10.3. Map 계열
__10.3.1. Entry 인터페이스
__10.3.2. HashMap 클래스
__10.3.3. Hashtable 클래스
__10.3.4. TreeMap 클래스
_10.4. Set 계열
__10.4.1. HashSet 클래스
__10.4.2. TreeSet 클래스
11장 예외 처리하기
_11.1. 예외 처리 개요
_11.2. 자바 예외 API
__11.2.1. 예외 처리 객체 구조
__11.2.2. 예외 객체 종류
__11.2.3. 예외 발생 원리
_11.3. 예외 처리 방법
__11.3.1. try-catch 문
__11.3.2. 예외 처리 메서드
11.3.3. finally 문
11.3.4. try-with-resources
_11.4. 예외 던지기 : throws 문
_11.5. 사용자 정의 예외 객체
12장 입출력 작업하기
_12.1. 입출력 개요
__12.1.1. 입출력 원리
__12.1.2. 입출력 API
_12.2. 기본 입출력 작업
__12.2.1. 파일 입출력
__12.2.3. 필터 스트림 활용
_12.3. 파일 처리
__12.3.1. File 클래스
__12.3.2. Path 클래스
__12.3.3. RandomAccessFile 클래스
__12.3.4. 프로퍼티 파일
__12.3.5. FileChannel 클래스
__12.3.6. 압축 파일
_12.4. 객체 직렬화
__12.4.1. Serializable 인터페이스
__12.4.2. serialVersionUID 필드
13장 제네릭과 어노테이션
_13.1. 제네릭
__13.1.1. 제네릭 개요
__13.1.2. 타입 매개변수
__13.1.3. 다양한 적용
_13.2. 어노테이션
__13.2.1. 어노테이션 개요
__13.2.2. 정보 추출
__13.2.3. 기본값 지정
__13.2.4. 표준 어노테이션
14장 람다식
_14.1. 람다식 이전 프로그램 구현 방식
_14.2. 인터페이스 구현 방법
__14.2.1. 방법 1 : implements 키워드로 클래스 선언
__14.2.2. 방법 2 : 익명 클래스 사용
__14.2.3. 방법 3 : 선언, 생성, 호출을 한번에 처리
__14.2.4. 매개변수
__14.2.5. 리턴 타입
_14.3. 람다식 사용하기
__14.3.1. 람다식 기본
__14.3.2. 람다식 활용
__14.3.3. 메서드 참조
__14.3.4. 함수형 인터페이스 API
15장 스트림 API
_15.1. 스트림이란?
__15.1.1. 스트림 사용 3단계
__15.1.2. 스트림 특징
_15.2. 스트림 종류
__15.2.1. 스트림 생성 방법
__15.2.2. BaseStream 인터페이스
__15.2.3. Stream 인터페이스
__15.2.4. 기본 타입 스트림
__15.2.5. 병렬 스트림
_15.3. 스트림 활용
__15.3.1. 매핑 작업
__15.3.2. 컬렉션 변환
__15.3.3. 반복자
16장 멀티태스킹의 첫걸음, 스레드 알기
_16.1. 스레드란?
_16.2. 스레드 활용
__16.2.1. 구현 및 실행
__16.2.2. Thread 클래스
__16.2.3. Runnable 인터페이스
__16.2.4. 스레드 설정
_16.3. 동기화
__16.3.1. 동기화란?
__16.3.2. 동기화 처리
_16.4. 스레드 제어
__16.4.1. 스레드 상태
__16.4.2. 스레드 제어
_16.5. 스레드 풀
__16.5.1. ExecutorService 인터페이스
__16.5.2. Future 인터페이스
17장 모듈
_17.1. 모듈이란?
_17.2. 모듈화
__17.2.1. 모듈 선언
__17.2.2. 모듈 시스템
__17.2.3. java.base 모듈
__17.2.4. 자동 모듈 변환
_17.3. 모듈 지시자
__17.3.1. exports-to 문
__17.3.2. transitive 지시자
__17.3.3. provides-with, uses
18장 Networking
_18.1. 개요
__18.1.1. 용어
_18.2. Socket 통신
__18.2.1. Socket
__18.2.2. ServerSocket
_18.3. NIO 통신
__18.3.1. SocketChannel
__18.3.2. ServerSocketChannel
19장 JShell 사용하기
_19.1. JShell이란?
_19.2. JShell 실행 방법
_19.3. JShell 기본
__19.3.1. 자바 코드
__19.3.2. 명령어
__19.3.3. 기본 사용법
__19.3.4. 클래스 작업
__19.3.5. 패키지 사용
_19.4. JShell 부가 기능
__19.4.1. 편집기
__19.4.2. 도움말
__19.4.3. 실행과 삭제
__19.4.4. JShell 실행환경