
책소개
최근 10년 넘게 자바 분야의 베스트 셀러 1위를 지켜온 '자바의 정석'의 기초편. 저자가 강의실과 카페에서 15년간 직접 독자들에게 답변을 해오면서 초보자가 어려워하는 부분을 잘 파악하고 만들었다. 코딩을 처음 배우는 사람도 자바를 쉽게 배울수 있게 도와주며, 핵심기능은 빠짐없이 들어가있으면서도 간결하고 명확한 설명은 독자들의 시간을 아껴준다.
출판사소개
목차
Chapter 1. 자바를 시작하기 전에
01 자바(Java)란? ··············································································································2
02 자바의 역사 ···················································································································3
03 자바의 특징 ···················································································································4
04 자바 가상 머신(JVM) ····································································································6
05 자바 개발도구(JDK) 설치하기 ······················································································7
06 자바 개발도구(JDK) 설정하기 ····················································································11
07 자바 API문서 설치하기 ·······························································································15
08 첫 번째 자바 프로그램 작성하기 ················································································16
09 자바 프로그램의 실행과정 ··························································································18
10 이클립스 설치하기 ······································································································19
11 이클립스로 자바 프로그램 개발하기 ··········································································23
12 이클립스의 뷰, 퍼스펙티브, 워크스페이스 ·································································26
13 이클립스 단축키 ··········································································································28
14 이클립스의 자동 완성 기능 ··························································································30
15 주석(comment) ··········································································································32
16 자주 발생하는 에러와 해결방법 ·················································································34
17 책의 소스와 강의자료 다운로드 ·················································································36
18 이클립스로 소스파일 가져오기 ···················································································38
19 이클립스에서 소스파일 내보내기 ···············································································41
Chapter 2. 변수
01 화면에 글자 출력하기 - print( )과 println( ) ······························································46
02 덧셈 뺄셈 계산하기 ·····································································································47
03 변수의 선언과 저장 ···································································································48
04 변수의 타입 ··················································································································50
05 상수와 리터럴 ·············································································································51
06 리터럴의 타입과 접미사 ·····························································································52
07 문자 리터럴과 문자열 리터럴 ·····················································································53
08 문자열 결합 ·················································································································54
09 두 변수의 값 바꾸기 ···································································································55
10 기본형과 참조형 ··········································································································56
11 기본형의 종류와 범위 ·································································································57
12 printf를 이용한 출력 ·································································································58
13 printf를 이용한 출력 예제 ··························································································59
14 화면으로부터 입력받기 ·······························································································61
15 정수형의 오버플로우 ·································································································62
16 부호있는 정수의 오버플로우 ·····················································································64
17 타입 간의 변환방법 ·····································································································66
연 습 문 제 ···························································································································67
Chapter 3. 연산자
01 연산자와 피연산자 ······································································································70
02 연산자의 종류 ·············································································································71
03 연산자의 우선순위 ······································································································72
04 연산자의 결합규칙 ······································································································73
05 증감 연산자 ++과 -- ································································································74
06 부호 연산자 ·················································································································76
07 형변환 연산자 ·············································································································77
08 자동 형변환 ·················································································································78
09 사칙 연산자 ·················································································································79
10 산술 변환 ····················································································································80
11 Math.round( )로 반올림하기 ······················································································83
12 나머지 연산자 ·············································································································84
13 비교 연산자 ··················································································································85
14 문자열의 비교 ·············································································································86
15 논리 연산자 && || ! ································································································87
16 논리 부정 연산자 ········································································································90
17 조건 연산자 ·················································································································91
18 대입 연산자 ··················································································································93
19 복합 대입 연산자 ··········································································································94
연 습 문 제 ···························································································································95
Chapter 4. 조건문과 반복문
01 if문 ·······························································································································98
02 조건식의 다양한 예 ·····································································································99
03 블럭{} ························································································································100
04 if - else문 ··················································································································101
05 if - else if문 ···············································································································102
06 if - else if문 예제 ······································································································103
07 중첩 if문 ····················································································································104
08 중첩 if문 예제 ···········································································································105
09 switch문 ···················································································································106
10 switch문의 제약조건 ·································································································107
11 switch문의 제약조건 예제 ·······················································································108
12 임의의 정수만들기 Math.random( ) ········································································109
13 for문 ··························································································································110
14 for문 예제 ·················································································································112
15 중첩 for문 ·················································································································113
16 while문 ·····················································································································115
17 while문 예제1 ··········································································································116
18 while문 예제2 ··········································································································117
19 do - while문 ··············································································································118
20 break문 ····················································································································119
21 continue문 ···············································································································120
22 break문과 continue문 예제 ···················································································121
23 이름 붙은 반복문 ······································································································122
24 이름 붙은 반복문 예제 ·····························································································123
연 습 문 제 ·························································································································125
Chapter 5. 배열
01 배열이란? ·················································································································130
02 배열의 선언과 생성 ···································································································131
03 배열의 인덱스 ···········································································································132
04 배열의 길이(배열이름.length) ··················································································133
05 배열의 초기화 ···········································································································134
06 배열의 출력 ···············································································································135
07 배열의 출력 예제 ······································································································136
08 배열의 활용(1) – 총합과 평균 ·················································································137
09 배열의 활용(2) – 최대값과 최소값 ··········································································138
10 배열의 활용(3) – 섞기(shuffle) ···············································································139
11 배열의 활용(4) - 로또 번호 만들기 ··········································································140
12 String배열의 선언과 생성 ························································································141
13 String배열의 초기화 ·································································································142
14 String클래스 ·············································································································143
15 String클래스의 주요 메서드 ·····················································································144
16 커맨드 라인을 통해 입력받기 ···················································································145
17 이클립스에서 커맨드라인 매개변수 입력하기 ··························································146
18 2차원 배열의 선언 ····································································································147
19 2차원 배열의 인덱스 ·································································································148
20 2차원 배열의 초기화 ·································································································149
21 2차원 배열의 초기화 예제1 ·····················································································150
22 2차원 배열의 초기화 예제2 ·····················································································151
23 2차원 배열의 초기화 예제3 ·····················································································152
24 Arrays로 배열 다루기 ······························································································153
연 습 문 제 ·························································································································154
Chapter 6. 객체지향 프로그래밍 I
01 객체지향 언어 ···········································································································160
02 클래스와 객체 ···········································································································161
03 객체의 구성요소 – 속성과 기능 ··············································································162
04 객체와 인스턴스 ·········································································································163
05 한 파일에 여러 클래스 작성하기 ··············································································164
06 객체의 생성과 사용 ···································································································165
07 객체의 생성과 사용 예제 ··························································································168
08 객체배열 ····················································································································169
09 클래스의 정의(1) – 데이터와 함수의 결합 ······························································170
10 클래스의 정의(2) – 사용자 정의 타입 ·····································································171
11 선언위치에 따른 변수의 종류 ···················································································173
12 클래스 변수와 인스턴스 변수 ···················································································174
13 클래스 변수와 인스턴스 변수 예제 ··········································································175
14 메서드란? ················································································································176
15 메서드의 선언부 ········································································································177
16 메서드의 구현부 ········································································································178
17 메서드의 호출 ···········································································································179
18 메서드의 실행 흐름 ···································································································180
19 메서드의 실행 흐름 예제 ···························································································181
20 return문 ····················································································································182
21 반환값 ·······················································································································183
22 호출스택(call stack) ································································································184
23 기본형 매개변수 ········································································································185
24 참조형 매개변수 ········································································································186
25 참조형 반환타입 ······································································································187
26 static 메서드와 인스턴스 메서드 ·············································································188
27 static 메서드와 인스턴스 메서드 예제 ····································································189
28 static을 언제 붙여야 할까? ·······················································································190
29 메서드 간의 호출과 참조 ··························································································191
30 오버로딩(overloading) ····························································································192
31 오버로딩(overloading) 예제 ···················································································194
32 생성자(constructor) ·······························································································195
33 기본 생성자(default constructor) ·········································································196
34 매개변수가 있는 생성자 ···························································································198
35 매개변수가 있는 생성자 예제 ···················································································199
36 생성자에서 다른 생성자 호출하기 - this( ) ······························································200
37 객체 자신을 가리키는 참조변수 - this ···································································202
38 변수의 초기화 ···········································································································203
39 멤버변수의 초기화 ···································································································204
40 멤버변수의 초기화 예제1 ·························································································205
41 멤버변수의 초기화 예제2 ·························································································206
연 습 문 제 ·························································································································207
Chapter 7. 객체지향 프로그래밍 Ⅱ
01 상속 ···························································································································222
02 상속 예제 ··················································································································224
03 클래스 간의 관계 – 포함관계 ··················································································225
04 클래스 간의 관계 결정하기 ·····················································································226
05 단일 상속(single inheritance) ················································································227
06 Object클래스 – 모든 클래스의 조상 ······································································228
07 오버라이딩(overriding) ····························································································229
08 오버라이딩의 조건 ····································································································230
09 오버로딩 vs. 오버라이딩 ··························································································231
10 참조변수 super ········································································································232
11 super( ) – 조상의 생성자 ·······················································································233
12 패키지(package) ·····································································································234
13 패키지의 선언 ···········································································································235
14 클래스 패스(classpath) ···························································································236
15 import문 ···················································································································237
16 static import문 ·······································································································238
17 제어자(modifier) ·······································································································239
18 static – 클래스의, 공통적인 ···················································································240
19 final – 마지막의, 변경될 수 없는 ··········································································241
20 abstract – 추상의, 미완성의 ··················································································242
21 접근 제어자(access modifier) ················································································243
22 캡슐화와 접근 제어자 ·······························································································244
23 다형성(polymorphism) ·····························································································246
24 참조변수의 형변환 ·····································································································248
25 참조변수의 형변환 예제 ···························································································249
26 instanceof 연산자 ····································································································250
27 매개변수의 다형성 ·····································································································251
28 매개변수의 다형성 예제 ···························································································253
29 여러 종류의 객체를 배열로 다루기 ··········································································254
30 여러 종류의 객체를 배열로 다루기 예제 ·································································255
31 추상 클래스(abstract class) ···················································································257
32 추상 메서드(abstract method) ···············································································258
··················································································268
41 디폴트 메서드와 static메서드 예제 ·········································································269
42 내부 클래스(inner class) ·························································································270
43 내부 클래스의 종류와 특징 ······················································································271
44 내부 클래스의 선언 ···································································································272
45 내부 클래스의 제어자와 접근성 ···············································································273
46 내부 클래스의 제어자와 접근성 예제1 ····································································274
47 내부 클래스의 제어자와 접근성 예제2 ·····································································275
48 내부 클래스의 제어자와 접근성 예제3 ····································································276
49 내부 클래스의 제어자와 접근성 예제4 ····································································277
50 내부 클래스의 제어자와 접근성 예제5 ····································································278
51 익명 클래스(anonymous class) ·············································································279
52 익명 클래스(anonymous class) 예제 ····································································280
연 습 문 제 ·························································································································281
Chatper 8. 예외처리
01 프로그램 오류 ···········································································································292
02 예외 클래스의 계층구조 ···························································································293
03 Exception과 RuntimeException ···········································································294
04 예외 처리하기 – try - catch문 ·················································································295
05 try - catch문에서의 흐름 ··························································································296
06 예외의 발생과 catch블럭 ·························································································297
07 printStackTrace( )와 getMessage( ) ····································································299
08 멀티 catch블럭 ········································································································300
09 예외 발생시키기 ········································································································301
10 checked예외, unchecked예외 ·············································································302
11 메서드에 예외 선언하기 ···························································································303
12 메서드에 예외 선언하기 예제1 ················································································304
13 메서드에 예외 선언하기 예제2 ················································································305
14 finally블럭 ·················································································································306
15 사용자 정의 예외 만들기 ··························································································307
16 사용자 정의 예외 만들기 예제 ·················································································308
17 예외 되던지기(exception re - throwing) ································································310
18 연결된 예외(chained exception) ···········································································312
19 연결된 예외(chained exception) 예제 ··································································314
연 습 문 제 ·························································································································316
Chapter 9. java.lang패키지와유용한 클래스
01 Object클래스 ············································································································324
02 Object클래스의 메서드 - equals( ) ········································································325
03 equals( )의 오버라이딩 ····························································································326
04 Object클래스의 메서드 - hashCode( ) ··································································327
05 Object클래스의 메서드 - toString( ) ······································································328
06 toString( )의 오버라이딩 ··························································································329
07 String클래스 ·············································································································330
08 문자열(String)의 비교 ·······························································································331
09 문자열 리터럴(String리터럴) ····················································································332
10 빈 문자열(empty string) ··························································································333
11 String클래스의 생성자와 메서드 ·············································································334
12 join( )과 StringJoiner ······························································································337
13 문자열과 기본형 간의 변환 ······················································································338
14 문자열과 기본형 간의 변환 예제 ··············································································339
15 StringBuffer클래스 ··································································································340
16 StringBuffer의 생성자 ·····························································································341
17 StringBuffer의 변경 ·································································································342
18 StringBuffer의 비교 ·································································································343
19 StringBuffer의 생성자와 메서드 ··············································································344
20 StringBuffer의 생성자와 메서드 예제 ·····································································346
21 StringBuilder ···········································································································347
22 Math클래스 ···············································································································348
23 Math의 메서드 ··········································································································349
24 Math의 메서드 예제 ·································································································350
25 래퍼(wrapper) 클래스 ······························································································351
26 래퍼(wrapper) 클래스 예제 ·····················································································352
27 Number클래스 ·········································································································353
28 문자열을 숫자로 변환하기 ························································································354
29 문자열을 숫자로 변환하기 예제 ···············································································355
30 오토박싱 & 언박싱 ····································································································356
31 오토박싱 & 언박싱 예제 ···························································································357
연 습 문 제 ·························································································································358
Chapter 10. 날짜와 시간 & 형식화
01 날짜와 시간 ···············································································································366
02 Calendar클래스 ·······································································································367
03 Calendar 예제1 ······································································································368
04 Calendar 예제2 ······································································································370
05 Calendar 예제3 ······································································································371
06 Calendar 예제4 ······································································································372
07 Calendar 예제5 ······································································································373
08 Date와 Calendar간의 변환 ·····················································································374
09 형식화 클래스 ···········································································································375
10 DecimalFormat ·······································································································376
11 DecimalFormat 예제1 ····························································································377
12 DecimalFormat 예제2 ····························································································378
13 SimpleDateFormat ·································································································379
14 SimpleDateFormat 예제1 ······················································································380
15 SimpleDateFormat 예제2 ······················································································381
16 SimpleDateFormat 예제3 ······················································································382
연 습 문 제 ·························································································································383
Chapter 11. 컬렉션 프레임웍
01 컬렉션 프레임웍 ········································································································388
02 컬렉션 프레임웍의 핵심 인터페이스 ········································································389
03 Collection인터페이스 ································································································390
04 List인터페이스 ··········································································································391
05 Set인터페이스 ··········································································································392
06 Map인터페이스 ········································································································393
07 ArrayList ··················································································································394
08 ArrayList의 메서드 ··································································································395
09 ArrayList 예제 ·········································································································396
10 ArrayList의 추가와 삭제 ··························································································398
11 Java API소스보기 ····································································································399
12 LinkedList ················································································································400
13 LinkedList의 추가와 삭제 ·······················································································401
14 ArrayList와 LinkedList의 비교 ···············································································402
15 Stack과 Queue ·····························································
배송
- 배송비, 무료배송비는 업체 사정에 따라 달라질 수 있습니다.
- 배송은 결제 확인 후 다음날부터 2~3일 이내에 배송됩니다. (단 도서 산간지역은 1~2일정도 더 소요됩니다.)
- 공휴일은 배송기간에 포함되지 않습니다.
- 주문하신 상품이 여러개인 경우 동일한 업체의 상품만 묶음 배송 가능합니다. (업체 사정에 따라 달라질 수 있습니다.)
- 배송정보는 상단 주문조회나 마이페이지 주문목록에서 가능합니다.
상품 품절
- 공급사(출판사) 재고 사정에 의해 품절/지연될 수 있으며, 품절 시 관련 사항에 대해서는 이메일과 문자로 안내드립니다.
주문취소/변경
- 주문 상품에 대한 변경사항(품절,가격변동)이 발생하면 전화나 메일을 통해 변경내용을 알려드립니다.
- 주문 상품의 변경/취소/환불은 배송 시작전 마이페이지에서 직접 신청이 가능합니다.
- 주문 상품이 발송된 시점에서는 변경/취소/환불이 모두 불가능합니다.
반품/교환
- 기간 : 배송받으신 후 7일 이내에 가능합니다.
- 방법 : 홈페이지 마이페이지 > 반품/ 교환 신청 및 조회에서 가능합니다.
- 배송비 부담 : 상품에 이상이 있을시에는 무료, 고객의 단순변심 및 착오구매일 경우 상품 반송비용은 고객 부담입니다.
- 포장 개봉 후 재판매가 불가능한 상품은 반품/교환이 불가능합니다.
- 전자상거래 등에서의 소비자보호에 관한 법률이 정하는 소비자 청약철회 제한 내용에 해당되는 경우, 반품/교환이 불가능합니다.
반품/교환 불가 사유
- 소비자의 책임 있는 사유로 상품 등이 손실 또는 훼손된 경우 (단지 확인을 위한 포장 훼손은 제외)
- 소비자의 사용, 포장 개봉에 의해 상품 등의 가치가 현저히 감소한 경우
- 복제가 가능한 상품 등의 포장을 훼손한 경우
- 소비자의 요청에 따라 개별적으로 주문 제작되는 상품의 경우
- 디지털 컨텐츠인 eBook, 오디오북 등을 1회 이상 다운로드를 받았을 경우
- 시간의 경과에 의해 재판매가 곤란한 정도로 가치가 현저히 감소한 경우
- 전자상거래 등에서의 소비자보호에 관한 법률이 정하는 소비자 청약철회 제한 내용에 해당되는 경우
소비자 피해보상 환불 지연에 따른 배상
- 상품의 불량에 의한 반품, 교환, A/S, 환불, 품질보증 및 피해보상 등에 관한 사항은 소비자분쟁해결기준(공정거래위원회 고시)에 준하여 처리합니다.
- 대금 환불 및 환불 지연에 따른 배상금 지급 조건, 절차 등은 전자상거래 등에서의 소비자 보호에 관한 법률에 따라 처리합니다.