장바구니 담기 close

장바구니에 상품을 담았습니다.

Java 프로그래밍

Java 프로그래밍

  • 최범균
  • |
  • 인투북스
  • |
  • 2011-09-05 출간
  • |
  • 678페이지
  • |
  • 188 X 254 mm
  • |
  • ISBN 9788996409748
판매가

25,000원

즉시할인가

22,500

배송비

무료배송

(제주/도서산간 배송 추가비용:3,000원)

수량
+ -
총주문금액
22,500

이 상품은 품절된 상품입니다

※ 스프링제본 상품은 반품/교환/환불이 불가능하므로 신중하게 선택하여 주시기 바랍니다.

출판사서평



- 캡슐화와 다형성 등 객체 지향에 대한 명쾌한 설명
- 개발에 늘 필요한 입출력, 컬렉션, 로깅, 문자열/날짜/숫자 처리 API 설명
- 멀티 코어 활용을 위한 쓰레드/동기화/쓰레드 풀 등 상세 설명
- 최신 프레임워크들이 기반 기술로 사용하는 리플렉션과 애노테이션 이해
- Fork/Join, 예외 처리 향상, Files를 이용한 파일 처리 등 자바 7의 새로운 내용 포함
- 단순 문법 설명이 아닌 문맥을 이용한 예제를 사용함으로써 독자의 이해 향상


목차


서 문
누구를 위한 책인가?
소스 코드 및 Q&A
CD 내용

Chapter 1. 자바 시작하기
1. 자바 언어 소개
1.1 자바 언어의 주요 특징
2. 자바 시작하기
2.1 자바 개발 환경 구축
(1) 윈도우 버전 JDK 설치
(2) 환경 변수 설정
2.2 첫 번째 자바 코드 만들기: HelloWorld
(1) HelloWorld 클래스 만들기
(2) HelloWorld 클래스 컴파일하기
(3) HelloWorld 클래스 실행하기
2.3 클래스패스를 이용한 클래스 파일 경로 설정
3. 1장을 마치며...

Chapter 2. 데이터 타입, 변수, 배열, String, 문장과 블록
1. 기본 데이터 타입
1.1 문자 타입: char
1.2 정수 타입: int, long
1.3 정수 타입: byte, short
1.4 실수 타입: float, double
1.5 숫자의 16진수, 8진수, 2진수 표현
1.6 밑줄을 사용한 숫자 표현
1.7 불리언 타입: boolean
2. 변수
2.1 변수 정의 및 사용
2.2 변수 이름 작성 규칙
2.3 상수
3. 타입 변환
3.1 직접 타입 변환
3.2 자동 타입 변환
4. 배열
4.1 배열의 생성과 사용
4.2 배열 값 초기화
4.3 배열의 길이와 for 구문을 이용한 배열 접근
4.4 다차원 배열
4.5 Arrays 클래스를 이용한 배열 처리: 내용 출력, 복사, 정렬
(1) Arrays.toString()을 이용한 배열의 문자열 표현
(2) Arrays.copyOf()와 Arrays.copyOfRange()를 이용한 배열 복사
(3) Arrays.sort()를 이용한 배열 정렬
5. String 클래스를 이용한 문자열 표현
5.1 문자열 연결
5.2 문자열의 일부 구하기
5.3 문자열 길이 구하기
5.4 문자열은 불변한다
6. 문장(Statement)과 블록(Block)
6.1 문장(Statement)
6.2 블록(Block)

Chapter 3. 객체 지향 프로그래밍 1: 클래스 기초
1. 객체와 클래스
2. 클래스의 구성
2.1 필드를 이용한 객체의 상태 정의
2.2 생성자와 new 키워드를 이용한 객체 생성
2.3 객체와 null 레퍼런스
2.4 메서드를 이용한 기능 제공 및 메서드 실행
2.5 메서드 호출과 파라미터 전달 방식
2.6 this를 이용한 자신 참조
2.7 클래스와 파일 이름
3. 메서드와 생성자 오버로딩
3.1 생성자 오버로딩과 this()
4. 접근 제어
4.1 필드와 메서드 접근 제어
4.2 클래스 접근 제어
5. static 멤버와 final 필드
5.1 static 멤버
5.2 static 멤버와 인스턴스 멤버간의 접근
5.3 static 초기화 블록
5.4 static 멤버의 용도
5.5 final 필드
6. 클래스 실행과 명령행 인자
6.1 사용할 클래스
6.2 클래스 실행 main() 메서드
6.3 명령행 인자 이용 값 전달
7. 캡슐화(encapsulation)
7.1 절차 지향 방식의 구현
7.2 객체 지향 방식의 구현
8. javac와 java를 위한 클래스패스 설정

Chapter 4. 연산자, 제어문, 주석
1. 연산자
1.1 수치 연산자
1.2 증가/감소 연산자
1.3 할당 연산자
1.4 비교 연산자
1.5 논리 연산자
1.6 삼항 연산자
1.7 비트 연산자
1.8 연산자 우선순위
2. 흐름 제어
2.1 조건에 따른 실행: if, if~else, if else~if
2.2 조건에 따른 실행: switch~case
2.3 반복 처리: while, do~while
2.4 반복 처리: for
2.5 break를 사용한 반복 종료
2.6 continue를 사용하여 코드 실행 뛰어넘기
3. 주석
3.1 코드 설명을 위한 주석
3.2 API 문서 작성을 위한 주석

Chapter 5. 객체 지향 프로그래밍 2: 상속과 인터페이스
1. 클래스 상속
1.1 extends를 이용한 클래스 상속
1.2 super()를 이용한 상위 클래스 생성자 호출
(1) super() 메서드 호출 주의 사항
(2) 기본 제공 생성자와 super()
1.3 메서드 오버라이딩과 super를 이용한 상위 클래스 멤버 접근
2. 다형성과 다이내믹 바인딩
2.1 다형성과 유지 보수
2.2 instanceof 연산자와 타입 변환
3. 추상 클래스와 추상 메서드
4. final 클래스와 final 메서드
5. 인터페이스
5.1 인터페이스 정의하기
5.2 인터페이스를 구현(Implement)한 클래스 만들기
5.3 인터페이스와 타입
5.4 인터페이스 간의 상속
6. 추상 클래스와 인터페이스를 이용한 기능 명세
7. Object 클래스
7.1 toString() 메서드를 이용한 객체 설명
7.2 equals() 메서드를 이용한 객체 비교

Chapter 6. 패키지와 임포트
1. 패키지
1.1 package를 이용한 패키지 지정
1.2 패키지의 계층 구조
1.3 패키지와 클래스의 이름
1.4 일반적인 패키지 이름 규칙
1.5 기본 패키지는 사용하지 말 것
1.6 패키지의 계층 구조와 디렉터리 구조
2. 임포트
2.1 import를 이용한 클래스 임포트
2.2 기본 임포트
2.3 static 임포트

Chapter 7. 익셉션 처리
1. 익셉션이란?
2. 익셉션 타입
3. try~catch~finally를 이용한 익셉션 처리
3.1 try~catch를 이용한 익셉션 처리
3.2 catch의 익셉션 타입 지정
3.3 Checked 익셉션과 Unchecked 익셉션
(1) Checked 익셉션과 try~catch
(2) Unchecked 익셉션과 try~catch
3.4 catch 블록과 리턴 처리
3.5 finally를 이용한 후처리
4. 메서드에서 Exception 발생하기
4.1 throw를 이용한 익셉션 객체 생성
4.2 throws 절을 이용하여 메서드/생성자가 발생할 수 있는 Checked 익셉션 지정하기
4.3 메서드 오버라이딩과 throws 절
4.4 Unchecked 익셉션과 throws 절
5. 익셉션의 전파
5.1 익셉션을 그대로 전파하기
5.2 익셉션 전파 코드 단순화
5.3 익셉션 전환과 원인 익셉션 지정하기
5.4 Exception의 익셉션 발생 추적 경로 확인하기
6. Exception 클래스와 익셉션 클래스 만들기
6.1 Exception 클래스와 상속
7. AutoCloseable 인터페이스와 try를 이용한 자동 종료 처리
7.1 close() 익셉션 발생과 처리 중지된 익셉션

Chapter 8. 열거 타입, 래퍼 타입, 가변 인자
1. 열거 타입
1.1 enum을 이용한 열거 타입 정의와 사용
1.2 values() 메서드, name() 메서드, valueOf() 메서드
1.3 열거 타입의 생성자/필드/메서드
2. 래퍼 타입
2.1 기본 데이터 타입과 래퍼 타입
2.2 숫자를 위한 래퍼 클래스
(1) 숫자 래퍼 클래스의 객체 생성
(2) 문자열을 기본 데이터 타입/래퍼 타입으로 변환하기
(3) 기본 데이터 타입을 문자열로 변환하기
2.3 Boolean 클래스
2.4 Character 클래스
2.5 오토박싱/언박싱
3. 가변 인자

Chapter 9. 중첩 클래스와 임의 클래스
1. 중첩 클래스
1.1 내부 클래스(Inner class)
1.2 정적 중첩 클래스
2. 임의 클래스

Chapter 10. 지네릭
1. 지네릭 타입 정의
2. 지네릭과 하위 타입 관계
3. 파라미터화 타입의 와일드카드와 범위
3.1 와일드카드와 extends
3.2 와일드카드와 super
4. 타입 파라미터의 범위 지정
5. 지네릭 메서드
6. 지네릭 다이아몬드 연산자
7. 지네릭 타입의 상속
8. 타입 제거
8.1 Raw 타입과 파라미터화 타입

Chapter 11. 컬렉션 API를 이용한 객체 그룹 관리
1. 컬렉션의 종류와 기본 사용법
1.1 Collection 인터페이스의 주요 메서드
1.2 Iterator와 for 구문 및 Iterable를 이용한 컬렉션 접근
1.3 컬렉션을 배열로 변환하기
2. List를 이용한 인덱스 기반 목록 처리
2.1 주요 List 구현 클래스: ArrayList와 LinkedList
3. Map을 이용한 (키,값) 쌍 처리
3.1 주요 Map 구현 클래스: HashMap과 TreeMap
4. Set을 이용한 집합 처리
5. equals() 메서드와 hashCode() 메서드
5.1 equals() 메서드를 이용한 객체 동일 여부 판단
5.2 hashCode() 메서드를 이용한 해시 코드 생성
6. Queue와 Deque를 이용한 큐/데크 처리
6.1 ArrayDeque 클래스와 PriorityQueue 클래스
7. 컬렉션 처리를 위한 Collections 보조 클래스
7.1 컬렉션에서 최대/최소 구하기
7.2 수정 안 되는 컬렉션 만들기
7.3 List를 위한 정렬 기능
7.4 List를 위한 부가 기능
8. Comparable 및 Comparator를 이용한 값 비교

Chapter 12. 문자열, 날짜, 숫자, 정규 표현식 다루기
1. 문자열 처리를 위한 클래스
1.1 String 클래스가 제공하는 보조 기능
(1) 문자열 비교
(2) 문자 및 문자열 찾기
(3) 문자열 치환하기
(4) 문자열 분리하기
1.2 StringBuilder 클래스를 이용한 문자열 연결
2. Calendar와 Date를 이용한 날짜 처리
2.1 Calendar 클래스를 이용한 시간 연산
2.2 Date 클래스를 이용한 시간 표현
3. Random을 이용한 임의 숫자 생성
4. 문자열 포맷팅
4.1 Formatter를 이용한 문자열 포맷팅
(1) Formatter의 일반적 사용법
(2) 포맷 문자열의 구성
(3) 일반 타입 변환
(4) 정수 타입과 실수 타입 변환
(5) 날짜 및 시간 타입 변환
(6) 퍼센트 기호와 줄변경을 위한 변환 기호
(7) Formattable 인터페이스와 Formatter 클래스
4.2 String.format()과 System.out.format()을 이용한 포맷팅
4.3 DecimalFormat 클래스를 이용한 숫자 포맷팅
4.4 SimpleDateFormat 클래스를 이용한 시간 포맷팅
5. Locale을 이용한 국가, 언어 표현
6. BigDecimal을 이용한 숫자 연산
6.1 BigDecimal.valueOf() 메서드로 BigDecimal 구하기
6.2 BigDecimal을 이용한 수치 연산
6.3 MathContext를 이용한 정확도와 반올림 규칙 지정
7. 정규 표현식 사용하기
7.1 정규 표현식 구문
7.2 Pattern과 Matcher를 이용한 정규 표현식 적용
7.3 Matcher를 이용해서 패턴에 일치하는 문자열 찾기
7.4 Pattern 생성시 플래그 지정하기

Chapter 13. 입출력 프로그래밍 기초
1. 입출력(IO) 프로그래밍
1.1 스트림을 통한 데이터 입력과 출력
1.2 입출력 프로그래밍의 코드 구성
1.3 자바의 입출력 API 종류
2. 바이트 기반 입출력 API
2.1 InputStream을 이용한 바이트 데이터 읽기
2.2 OutputStream을 이용한 바이트 데이터 쓰기
2.3 주요 바이트 기반 스트림 클래스
2.4 FileInputStream/FileOutputStream을 이용한 파일 읽기/쓰기
■ 문자열로 파일 경로 지정하기
2.5 ByteArrayInputStream/ByteArrayOutputStream을 이용한 byte 배열 읽기/쓰기
3. 문자 기반 입출력 API
3.1 문자와 byte 사이의 변환 처리 및 캐릭터 셋
3.2 Reader를 이용한 문자 데이터 읽기
3.3 Writer를 이용한 문자 데이터 쓰기
3.4 주요 문자 기반 스트림 클래스
3.5 FileReader/FileWriter를 이용한 파일 읽기/쓰기
3.6 InputStreamReader와 OutputStreamWriter를 이용한 바이트 스트림 변환
3.7 StringReader와 StringWriter를 이용한 문자열 읽기/쓰기
4. 버퍼를 통한 성능 향상
4.1 BufferedReader와 BufferedWriter의 추가 기능
5. 필터를 이용한 기능 추가
5.1 DataInputStream과 DataOutputStream을 이용한 기본 데이터 타입 처리
5.2 GZIPInputStream과 GZIPOutputStream을 이용한 압축 처리
5.3 필터 스트림 연결하기
6. 파일 다루기
6.1 File 클래스를 이용한 파일 정보 구하기
6.2 Path 타입을 이용한 파일 처리
(1) Path의 경로 정보 구하기
(2) File과 Path 간 변환 처리
6.3 Files 클래스를 이용한 파일과 디렉터리 처리
(1) 파일 복사, 이동, 삭제
(2) 파일 데이터 읽기
(3) 파일 정보 구하기
(4) 디렉터리 만들기

Chapter 14. 자바 로깅(logging) API
1. 로깅의 필요성
2. 자바 로깅 API 사용하기
2.1 자바 로깅 API 기본 사용법
2.2 Logger의 계층
2.3 로그 레벨
2.4 로그 기록 과정
2.5 Handler와 Formatter를 이용한 로그 기록
2.6 설정 파일을 이용한 Logger 초기화

Chapter 15. GUI 프로그래밍 소개
1. 스윙 소개
2. 스윙 시작하기
3. 스윙의 이벤트 처리 방식
3.1 리스너에서 도메인 로직 처리하지 않기
3.2 리스너 구현을 위한 어댑터 클래스
3.3 이벤트 표현을 위한 클래스
4. 컨테이너 컴포넌트
4.1 Container 종류
4.2 컴포넌트 추가를 위한 메서드
5. 레이아웃 처리
5.1 FlowLayout을 이용한 배치
5.2 BorderLayout을 이용한 배치
5.3 GridLayout을 이용한 격자 배치
5.4 BoxLayout을 이용한 수직/수평 배치
■ BoxLayout의 컴포넌트 정렬 및 크기 처리
5.5 CardLayout을 이용한 화면 전환
6. 프레임 만들기
6.1 프레임의 기본 닫기 처리 방식 지정하기
6.2 프레임 위치 지정하기
6.3 WindowListener를 이용한 윈도우 이벤트 처리하기
6.4 기타 JFrame 관련 기능
7. 기본 스윙 컴포넌트 소개
7.1 JLabel을 이용한 텍스트 출력
7.2 JTextField를 이용한 문자 입력
7.3 JTextArea를 이용한 문자 입력
7.4 JButton을 이용한 버튼 생성
7.5 JCheckBox를 이용한 선택 처리
7.6 JRadionButton을 이용한 선택 처리
7.7 ActionListener를 이용한 버튼 이벤트 처리
7.8 JList를 이용한 목록 표시 및 선택
(1) JList의 이벤트 처리 및 선택 옵션
(2) DefaultListModel을 이용해서 JList에 값 추가/삭제하기
7.9 JComboBox를 이용한 목록 표시 및 선택
7.10 JMenuBar/JMenu/JMenuItem을 이용한 메뉴 구성
7.11 컴포넌트 소개에 사용된 소스 코드 전체

Chapter 16. 쓰레드 프로그래밍과 병행 처리
1. 쓰레드란?
2 Thread와 Runnable을 이용한 쓰레드 프로그래밍 시작하기
2.1 쓰레드의 생성과 실행
3. 쓰레드 동기화(Synchronization)
3.1 락과 쓰레드 블록킹
3.2 synchronized 메서드를 이용한 동기화
3.3 synchronized 블록을 이용한 동기화
3.4 데드락
4. Lock을 이용한 명시적 락 처리
4.1 Lock 타입과 ReentrantLock을 이용한 쓰레드 동기화
4.2 tryLock()을 이용한 대기 시간 제어
4.3 ReadWriteLock을 이용한 읽기/쓰기 쓰레드 동기화
5. Executor 프레임워크를 이용한 작업 실행
5.1 작업 실행 위한 Executor 프레임워크
5.2 Executors 클래스를 이용한 쓰레드 풀 구하기
5.3 ExecutorService를 이용한 작업 병행 실행
5.4 ExecutorService 종료 처리
5.5 Callable과 Future를 이용해서 작업 결과 받기
5.6 CompletionService로 완료된 작업 결과 구하기
6. 인터럽트와 작업 중단 처리
6.1 인터럽트를 이용한 쓰레드 실행 중지 방법
6.2 블록킹 메서드와 인터럽트
6.3 ExecutorService.shutdownNow() 및 Future.cancel()과 인터럽트
7. 동기화 도구: Semaphore, CountDownLatch, CyclicBarrier
7.1 Semaphore를 이용한 동시 접근 쓰레드 개수 제어
7.2 CountDownLatch를 이용한 다중 쓰레드 실행 제어
7.3 CyclicBarrier를 이용한 다중 쓰레드 실행 제어
8. Atomic 변수
8.1 AtomicInteger를 이용한 쓰레드에 안전한 정수 변수 처리
8.2 AtomicBoolean과 AtomicReference
9. 다중 쓰레드 환경에서의 컬렉션
9.1 쓰레드에 안전한 컬렉션 구하기
9.2 다중 쓰레드 환경에서 성능이 향상된 ConcurrentHashMap
10. Condition을 이용한 쓰레드 제어
11. ForkJoinPool을 이용한 작업 분할 및 병행 실행
11.1 RecursiveTask를 이용한 분할 및 병행 실행 작업 정의
11.2 RecursiveAction을 이용한 분할 및 병행 실행 작업 정의
11.3 ForkJoinPool 생성 옵션

Chapter 17. 네트워크 프로그래밍 기초
1. 네트워크 주요 개념
1.1 네트워크 계층 모델과 TCP/UDP
1.2 IP 주소와 도메인 이름
1.3 포트
1.4 서버와 클라이언트
1.5 소켓
2. TCP 프로그래밍
2.1 Socket을 이용한 TCP 클라이언트 개발
2.2 ServerSocket을 이용한 TCP 서버 개발
2.3 다중 쓰레드 버전 TCP 서버 개발
2.4 Socket의 익셉션 처리
3. TCP 기반 간단 채팅 서버/클라이언트 개발
3.1 프로토콜 정의
3.2 메시지 표현을 위한 공통 클래스
3.3 채팅 서버 만들기
(1) 채팅 서버: Handler 클래스 구현
(2) 채팅 서버: Server 클래스 구현
(3) 채팅 서버: ServerMain 클래스 구현
3.4 채팅 클라이언트 만들기
(1) 채팅 클라이언트 클래스: MessageListener 인터페이스 구현
(2) 채팅 클라이언트 클래스: ChatClient 클래스 구현
(3) 채팅 클라이언트 클래스: ChatUI 클래스 구현
(4) 채팅 클라이언트 클래스: ClientMain 클래스 구현
3.5 채팅 실행하기
4. URL과 URLConnection을 이용한 웹 데이터 읽기
4.1 URL 클래스를 이용한 URL 표현
4.2 URLConnection을 이용한 데이터 읽기
4.3 URLConnection을 이용한 데이터 전송하기
(1) GET 방식으로 쿼리 문자열 전송하기
(2) POST 방식으로 쿼리 문자열 전송하기

Chapter 18. 리플렉션 및 애노테이션
1. 리플렉션(Reflection)
1.1 Class 클래스를 이용해서 클래스 정보 구하기
1.2 Class 객체로부터 생성자, 메서드, 필드 정보 구하기
(1) Class와 Constructor를 이용한 클래스 생성자 정보 구하기
(2) Class와 Method를 이용한 메서드 정보 구하기
(3) 가변 인자와 파라미터 처리
(4) Class와 Field를 이용한 필드 정보 구하기
1.3 리플렉션을 이용한 객체 생성, 메서드 호출, 필드 값 사용하기
(1) Class와 Constructor를 이용한 객체 생성
(2) Method를 이용한 객체의 메서드 실행
(3) Field를 이용한 객체의 필드 접근
(4) private 멤버 접근하기
1.4 리플렉션은 언제 사용하나?
2. 애노테이션
2.1 애노테이션 타입 정의하기
2.2 애노테이션 적용하기
2.3 애노테이션 적용 대상 지정하기
2.4 애노테이션 유지 범위 지정하기
2.5 자바가 기본으로 제공하는 컴파일러를 위한 애노테이션
2.6 런타임에 애노테이션 정보 사용하기
2.7 리플렉션과 애노테이션을 이용한 적용 예제
2.8 애노테이션은 언제 사용하나?

Chapter 19. jar 배포 및 사용
1. jar 파일 만들기
2. jar 파일 사용하기
3. 실행 가능한 jar 파일 만들기

Chapter 20. 부록 A javadoc으로 API 문서 만들기
1. javadoc을 이용한 API 문서 생성
2. javadoc의 주요 실행 방법
3. javadoc의 주요 옵션
4. 외부 설정 파일 이용하기

교환 및 환불안내

도서교환 및 환불
  • ㆍ배송기간은 평일 기준 1~3일 정도 소요됩니다.(스프링 분철은 1일 정도 시간이 더 소요됩니다.)
  • ㆍ상품불량 및 오배송등의 이유로 반품하실 경우, 반품배송비는 무료입니다.
  • ㆍ고객님의 변심에 의한 반품,환불,교환시 택배비는 본인 부담입니다.
  • ㆍ상담원과의 상담없이 교환 및 반품으로 반송된 물품은 책임지지 않습니다.
  • ㆍ이미 발송된 상품의 취소 및 반품, 교환요청시 배송비가 발생할 수 있습니다.
  • ㆍ반품신청시 반송된 상품의 수령후 환불처리됩니다.(카드사 사정에 따라 카드취소는 시일이 3~5일이 소요될 수 있습니다.)
  • ㆍ주문하신 상품의 반품,교환은 상품수령일로 부터 7일이내에 신청하실 수 있습니다.
  • ㆍ상품이 훼손된 경우 반품 및 교환,환불이 불가능합니다.
  • ㆍ반품/교환시 고객님 귀책사유로 인해 수거가 지연될 경우에는 반품이 제한될 수 있습니다.
  • ㆍ스프링제본 상품은 교환 및 환불이 불가능 합니다.
  • ㆍ군부대(사서함) 및 해외배송은 불가능합니다.
  • ㆍ오후 3시 이후 상담원과 통화되지 않은 취소건에 대해서는 고객 반품비용이 발생할 수 있습니다.
반품안내
  • 마이페이지 > 나의상담 > 1 : 1 문의하기 게시판 또는 고객센터 1800-7327
교환/반품주소
  • 경기도 파주시 문발로 211 1층 / (주)북채널 / 전화 : 1800-7327
  • 택배안내 : CJ대한통운(1588-1255)
  • 고객님 변심으로 인한 교환 또는 반품시 왕복 배송비 5,000원을 부담하셔야 하며, 제품 불량 또는 오 배송시에는 전액을 당사에서부담 합니다.