Professional Documents
Culture Documents
신용권 지음
★★★★★
신 혼공자
혼자 공부하는 사람 혹은 그런 무리를 일컫는 신조어
〔유의어〕 혼공족
JAVA 245개의
8 & 11 지원 손코딩 예제
무료 동영상 별책
강의 용어 노트
혼자 공부하는 자바
1:1 과외하듯 배우는 프로그래밍 자습서
지금 하지 않으면 할 수 없는 일이 있습니다.
책으로 펴내고 싶은 아이디어나 원고를 메일 ( writer@hanbit.co.kr ) 로 보내주세요.
한빛미디어(주)는 여러분의 소중한 경험과 지식을 기다리고 있습니다.
혼자
공부하는
자바
01-2 이클립스 개발 환경 구축
01-1
이클립스는 기본적으로 자바 프로그램을 개발할 수 있도록 구성되어 있지만, 개발자가 추가적으로
프로그래밍 언어와 자바
플러그인plugin을 설치하면 웹 애플리케이션 개발, C, C++ 애플리케이션 개발 등 다양한 개발 환경을
구축할 수 있습니다.
시작하기 전에 소스
주석 코드는
기호는 직접
다음과 같이손으로 입력한
세 가지가 있습니다.
시작하기 전에
후 실행하세요! 코드 이해가 어
컴퓨터가 이해할 수 있는 기계어machine language는 우리가 일상생활에서 사용하는 언어와는 너무나도 다 구분 주석 기호 설명
해당 절에서 배울 주제 및 려우면 주석, 실행결과, 앞뒤의
른 0과 1로 이루어진 이진 코드를 사용합니다. 사람이 이해하기에는 매우 어렵죠. 반대로 사람이 사 라인 주석 // … //부터 라인 끝까지 주석으로 처리합니다
주요 개념을 짚어 줍니다. 코드 설명을 참고하세요.
01-12
용하는 언어는 컴퓨터 입장에서 보면 이해할 수 없는 문자의 집합입니다. 그렇기 때문에 사람과 컴퓨 범위 주석 / … / * * /*와 */ 사이에 있는 내용은 모두 주석으
01-2 이클립스 개발 환경 구축 015 기본편
터가 대화하기 위해서는 사람의 언어와 기계어의 다리 역할을 하는 프로그래밍 언어가 필요합니다. /**와 */ 사이에 있는 내용은 모두 주석으
1 3 4
도큐먼트 주석 /** … */
Start
프로그래밍 언어로 작성한 파일을 소스 source
프로그래밍 언어와 자바
파일이라고 합니다. 소스 파일은 컴퓨터가 바로 이해할 수
주로 javadoc 명령어로 API 도큐먼트
없기 때문에 컴파일 compile이라는 과정을 통해서 0과 1로 이루어진 기계어 파일로 번역한 후에 컴퓨터
에서 사용합니다. ✚ 여기서 잠깐 문자열 내부에는 주석을 붙일 수 없다
핵심 키워드 기계어 프로그래밍 언어 소스 파일 컴파일 JDK 환경 변수
핵심 키워드 말풍선 주석 기호는 코드 내 어디서든 작성이 가능하지만, 문자열(" ") 내부에서 작성하면 안 됩니
소스 파일
주석문이 아니라 문자열 데이터로 인식하기 때문에 다음과 같이 사용할 수 없습니다.
해당 절에서 중점적으로
프로그래밍 class Calculator { 컴퓨터에서 실행하는
지나치기프로그램(program)은 특정 목적을 수행하도록 프로그래밍
쉬운 내용 혹은
언어로 언어로
public static void 작성된 소스를
main(String[] 기계어로
args) { 컴파일한 것입니다. 이번 절에서는 프로그래밍 언
System.out.println("Hello, /*주석이 될 수 없음*/welcome to the j
볼 내용을 확인합니다.
소스 파일 작성 int result = 10어의+ 20;
역할에 대해 꼭 알아보고,
기억해 자바 두어야
언어로 할 내용 개발할 수 있는 환경을 만들
프로그램을
System.out.println(result);
어보겠습니다.을 짚어 줍니다.
}
}
Hello.java에 라인 주석(//)과 범위 주석(/* ~ */)을 추가해보겠습니다
내가 아는
기계어 기계어
시작하기 전에 직접 해보는 손코딩
실행 0010011100010 컴파일
컴파일러 주석 사용하기 소스 코드 Hello.java
0010010010000
컴퓨터가 이해할 수 있는 기계어machine language는 우리가 일상생활에서 사용하는 언어와는 너무나도 다
1101110000111
01 package sec03.exam01;
른 0과 1로 이루어진 이진 코드를 사용합니다. 사람이 이해하기에는 매우 어렵죠. 반대로 사람이 사
02
용하는 언어는 컴퓨터 입장에서 보면 이해할 수 없는 문자의 집합입니다. 그렇기 때문에 사람과 컴퓨
03 /*
기본편 002 CHAPTER 01 자바 시작하기 터가 대화하기 위해서는 사람의 언어와 기계어의 다리 역할을 하는 프로그래밍
04 언어가
작성자필요합니다.
: 신용권
범위 주석
05 작성일: 2025.12.31
프로그래밍 언어로 작성한 파일을 소스 source 파일이라고 합니다. 소스 파일은 컴퓨터가 바로 이해할 수
06 */
없기 때문에 컴파일 compile이라는 과정을 통해서 0과 1로 이루어진 기계어 파일로
07 번역한 class
public 후에 컴퓨터
Hello {
에서 사용합니다.
소스 파일
기본편 038 CHAPTER 01 자바 시작하기
내가 아는
기계어
마무리
●
JVM : 자바 가상 기계 Java Virtual Machine는 바이트 코드 파일을 운영체제를 위한 완전한 기계어로
번역하고 실행하는 역할을 합니다. JVM은 java 명령어에 의해 구동됩니다.
● 클래스 선언: 자바 소스 파일은 클래스 선언부와 클래스 블록으로 구성됩니다. 이렇게 작성하는
것을 클래스 선언이라고 합니다.
●
main() 메소드: java 명령어로 바이트 코드 파일을 실행하면 제일 먼저 main( ) 메소드를 찾아
좀 더 알아보기 블록 내부를 실행합니다. 그래서 main( ) 메소드를 프로그램 실행 진입점entry point이라고 부릅
니다.
쉬운 내용, 핵심 내용도 좋지만,
때론 깊이 있는 학습이 필요할 ● 주석: 주석은 프로그램 실행과는 상관없이 코드에 설명을 붙인 것을 말합니다. 주석은 컴파일
과정에서 무시되고 실행문만 바이트 코드로 번역됩니다.
확인 문제
때도 있습니다. 더 알고 싶은
갈증을 풀 수 있는 내용으로 담 ●
지금까지
실행문: 변수 선언, 값 저장, 메소드 호출에 해당하는 학습한
코드를 내용을
말합니다. 문끝에는 세미콜
실행문
았습니다. 론(;)을 붙여야 합니다. 제를 풀면서 확인합니다.
5 ▶ 확인 문제 6 7 Finish
1. 자바 프로그램 개발 과정을 순서대로 적어보세요. ( )→( )→( )→( )
1 javac 명령어로
핵심 포인트
컴파일한다.
2 소스 파일(~.java)을 작성한다.
3 절이 끝나면 실행한다.
java 명령어로 마무리의 핵심
4 포인트에서 핵심 키워드의
실행결과를 확인한다.
내용을 리마인드하세요.
좀더
제공 소스 파일 이용하기
알아보기
▶ 확인 문제 01-3 자바 프로그램 개발 과정 045 기본편
1. 배열을생성하는방법으로틀린것은무엇입니까?
학습의 편의를 위해서 이 책에서 다루는 모든 자바 소스 파일을 압축해서 제공합니다. 해당 압축 파
int[ ]array={1,2,3};
1
일은 한빛출판네트워크 웹사이트(www.hanbit.co.kr/src/10187)에서 다운로드할 수 있습니다.
int[ ]array;array={1,2,3};
2
압축 파일명은 다음과 같습니다.
int[ ]array=newint[3];
3
4 참조타입배열항목의기본초기값은 null이다.
배열의길이에대한문제입니다.array.length의값과array[2].
학습 가이드
https://www.eclipse.org
https://www.oracle.com
hongong.hanbit.co.kr
X
동영상&학습자료
메뉴를 클릭해 책
제목을 선택하세요.
혼자 공부하는 자바
충분하다!
작심삼일, 하다가 포기하게 될 때 지은이 신용권 blueskii@naver.com
3
있다. 삼성멀티캠퍼스(SDS)에서 자바 전임교수로 근무했
용어 노트
고, 유수한 교육기관에서 재직자 및 전문가 위탁교육을 진
행해 왔다. 또한 국내 최초로 재직자를 위한 ‘HTML5 모
신용권 지음
필했다.
로드하여 나만의 용
입문자도 중간에 포기하지 않고 완독할 수 있을 것 같아요. _ 최예소라 님
★★★★★
것 같습니다. 적절한 예로 풀어내서 오래 기억할 수 있을 것 같고요. _김준우 님 신 혼공자
어 노트를 만들어보
신용권 지음
등 모든 것이 자세하게 설명되어 있고, 어렵지 않게 술술 잘 읽힙니다. _ 정수현 님 혼자 공부하는 사람 혹은 그런 무리를 일컫는 신조어
〔유의어〕 혼공족
지 않았습니다. _ 구자돈 님
JAVA 245개의
프로그래밍 언어/자바 8 & 11 지원 손코딩 예제
학습 사이트
무료 동영상 별책 http://hongong.hanbit.co.kr
강의 용어 노트 예제 파일 다운로드, 동영상 강의 보기
정가 24,000원 저자에게 질문하기를 한번에!
실습 예제 동영상 강의
소스 코드를 다운로드하여 <직접 무료 동영상 강의와 함께
해보는 손코딩>과 <확인 문제>의 보다 빠르고 정확하게 자바
실행 결과를 확인하세요. 를 익히세요.
cafe.naver.com/thisisjava
저자에게 질문하기
공부하다가 막힐 땐 저자가 직접 답변해드립니다!
XI
학습 로드맵
01 02
을 학습하려는 독자는 기본
Start
편만 학습해도 좋습니다.
자바 시작하기 변수와 타입
12~14장
자바를 활용해서 개발을 하
5장을 학습하기 위해서는 기본 타입과
려면 고급편까지 모두 이해 참조 타입의 차이를 이해해야 합니다.
하도록 합시다.
08~ 09장
난이도
객체지향 프로그래밍을 더욱 강화시키는
문법입니다. 적절히 활용할 수 있도록 인터
페이스의 역할을 꼭 이해하고 넘어갑시다.
09 08
중첩 클래스와 중첩 인터페이스 인터페이스
자바에서 예외 처리하는
방식만 짚고 넘어가기
10 예외 처리
10장
예외가 발생했을 때 처
11장을 학습하기 위해선 클래스와 인터페이스에 대한 지식이 필요합니다.
리하는 다양한 방법을
중심으로 공부하세요!
11 12
11장 기본 API 클래스 스레드
개발을 더욱 편리하게
해주는 API들을 다루는
내용입니다.
XII
03 04
연산자 조건문과 반복문
참조 타입이 내부에
서 어떻게 작동하는
지 알고 넘어가기
참조 타입
05
클래스 내용은 참조 타입에 대한 이해가 필요합니다.
두 번 보기
객체 지향
프로그래밍의 꽃
07 06
상속 클래스 06~ 07장
자바에서 데이터를
주고 받는 형식만
알아두어도 성공!
13 14 Goal
컬렉션 프레임워크 입출력 스트림
12~ 14장
Chapter
01 자바 시작하기
자바 소개 003
자바 개발 도구 설치 004
환경 변수 설정 008
6가지 키워드로 끝내는 핵심 포인트 013
확인 문제 013
이클립스 설치 016
워크스페이스 019
퍼스펙티브와 뷰 020
4가지 키워드로 끝내는 핵심 포인트 022
확인 문제 022
02-1 변수 048
변수 선언 049
값 저장 050
변수 사용 052
변수 사용 범위 054
4가지 키워드로 끝내는 핵심 포인트 057
확인 문제 057
02-2 기본 타입 059
정수 타입 060
실수 타입 066
논리 타입 069
5가지 키워드로 끝내는 핵심 포인트 070
확인 문제 070
02-3 타입 변환 072
자동 타입 변환 073
강제 타입 변환 074
정수 연산에서의 자동 타입 변환 076
실수 연산에서의 자동 타입 변환 078
+ 연산에서의 문자열 자동 타입 변환 082
문자열을 기본 타입으로 강제 타입 변환 083
5가지 키워드로 끝내는 핵심 포인트 085
확인 문제 085
목차
Chapter
03 연산자
연산자의 종류 103
연산의 방향과 우선순위 104
4가지 키워드로 끝내는 핵심 포인트 106
표로 정리하는 핵심 포인트 106
확인 문제 107
단항 연산자 109
이항 연산자 114
삼항 연산자 125
5가지 키워드로 끝내는 핵심 포인트 127
확인 문제 127
Chapter
04 조건문과 반복문
if문 135
if-else문 136
if-else if-else문 138
switch문 141
4가지 키워드로 끝내는 핵심 포인트 145
그림으로 정리하는 핵심 포인트 145
확인 문제 146
for문 149
while문 153
do-while문 155
break문 156
continue문 158
5가지 키워드로 끝내는 핵심 포인트 160
확인 문제 160
Chapter
05 참조 타입
기본 타입과 참조 타입 165
메모리 사용 영역 166
목차
05-2 배열 177
배열이란? 178
배열 선언 179
배열 생성 180
배열 길이 185
명령 라인 입력 186
다차원 배열 190
객체를 참조하는 배열 193
배열 복사 195
향상된 for문 197
7가지 키워드로 끝내는 핵심 포인트 199
확인 문제 200
05-3 열거 타입 203
열거 타입 선언 204
열거 타입 변수 206
4가지 키워드로 끝내는 핵심 포인트 210
확인 문제 210
Chapter
06 클래스
06 -1 객체 지향 프로그래밍 212
06 -2 필드 224
필드 선언 225
필드 사용 226
2가지 키워드로 끝내는 핵심 포인트 230
확인 문제 230
06 -3 생성자 232
기본 생성자 233
생성자 선언 234
필드 초기화 235
생성자 오버로딩 238
다른 생성자 호출: this( ) 241
6가지 키워드로 끝내는 핵심 포인트 244
확인 문제 244
목차
06 - 4 메소드 247
메소드 선언 248
리턴(return)문 254
메소드 호출 258
메소드 오버로딩 263
6가지 키워드로 끝내는 핵심 포인트 267
확인 문제 267
패키지 선언 287
접근 제한자 293
클래스의 접근 제한 294
생성자의 접근 제한 296
필드와 메소드의 접근 제한 299
Getter와 Setter 메소드 301
4가지 키워드로 끝내는 핵심 포인트 306
확인 문제 307
Chapter
07 상속
07-1 상속 310
클래스 상속 311
부모 생성자 호출 313
메소드 재정의 317
final 클래스와 final 메소드 322
좀 더 알아보기 protected 접근 제한자 325
4가지 키워드로 끝내는 핵심 포인트 328
확인 문제 328
자동 타입 변환 333
필드의 다형성 337
매개 변수의 다형성 345
강제 타입 변환 348
객체 타입 확인 350
5가지 키워드로 끝내는 핵심 포인트 353
확인 문제 353
추상 클래스의 용도 358
추상 클래스 선언 360
추상 메소드와 재정의 362
2가지 키워드로 끝내는 핵심 포인트 366
확인 문제 366
목차
Chapter
08 인터페이스
인터페이스 선언 371
인터페이스 구현 374
인터페이스 사용 379
5가지 키워드로 끝내는 핵심 포인트 384
확인 문제 385
자동 타입 변환 387
필드의 다형성 387
매개 변수의 다형성 391
강제 타입 변환 394
객체 타입 확인 396
좀 더 알아보기 인터페이스 상속 399
5가지 키워드로 끝내는 핵심 포인트 402
확인 문제 402
Chapter
09 중첩 클래스와 중첩 인터페이스
중첩 클래스 407
중첩 클래스의 접근 제한 411
중첩 인터페이스 417
4가지 키워드로 끝내는 핵심 포인트 420
확인 문제 420
09-2 익명 객체 424
익명 자식 객체 생성 425
익명 구현 객체 생성 429
익명 객체의 로컬 변수 사용 435
2가지 키워드로 끝내는 핵심 포인트 437
확인 문제 438
Chapter
10 예외 처리
10 -1 예외 클래스 444
10 -2 예외 처리 453
예외 처리 코드 454
예외 종류에 따른 처리 코드 457
예외 떠넘기기 460
4가지 키워드로 끝내는 핵심 포인트 463
확인 문제 463
목차
Chapter
11 기본 API 클래스
Chapter
12 스레드
스레드 521
메인 스레드 522
작업 스레드 생성과 실행 523
동기화 메소드 533
5가지 키워드로 끝내는 핵심 포인트 538
확인 문제 538
스레드 상태 542
스레드 상태 제어 542
좀 더 알아보기 데몬 스레드 549
4가지 키워드로 끝내는 핵심 포인트 551
확인 문제 551
Chapter
13 컬렉션 프레임워크
Stack 586
Queue 587
4가지 키워드로 끝내는 핵심 포인트 590
확인 문제 590
목차
Chapter
14 입출력 스트림
System.in 필드 635
System.out 필드 636
Scanner 클래스 636
File 클래스 640
4가지 키워드로 끝나는 핵심 포인트 643
확인 문제 644
확인 문제 정답 645
찾아보기 680
학습목표 • 프로그래밍 언어와 자바의 개념을 이해합니다.
01
Chapter
자바 시작하기
시작하기 전에
프로그래밍 언어로 작성한 파일을 소스 source 파일이라고 합니다. 소스 파일은 컴퓨터가 바로 이해할 수
없기 때문에 컴파일 compile이라는 과정을 통해서 0과 1로 이루어진 기계어 파일로 번역한 후에 컴퓨터
에서 사용합니다.
소스 파일
내가 아는
기계어 기계어
실행 0010011100010 컴파일
0010010010000 컴파일러
1101110000111
프로그래밍 언어
자바 C C++ C# 파이썬
안드로이드 게임 애플리케이션
드론 제어를 위한
데스크톱 애플리케이션 개발 웹사이트
개발 개발
자바
● 모든 운영체제에서 실행 가능
자바로 작성된 프로그램은 모든 운영체제에서 실행 가능합니다. 따라서 윈도우에서 개발된 프로
그램을 수정하지 않고 바로 리눅스에서도 실행할 수 있다는 장점이 있습니다.
● 메모리 자동 정리
자바는 메모리(RAM)를 자동 관리하므로, 개발자는 메모리를 관리하는 수고를 덜고 핵심 기능인
코드 작성에 집중할 수 있습니다.
● 무료 라이브러리 풍부
무료로 다운로드해서 사용할 수 있는 오픈 소스 라이브러리open source library가 풍부하기 때문에 프로
그램 개발 기간을 단축합니다.
자바 개발 도구 설치
자바로 프로그램을 개발하기 위해서는 먼저 자바 개발 도구 JDK: Java Development Kit를 설치해야 합니다. 쉽
게 설치 가능한 JDK에는 Open JDK와 Oracle JDK가 있으며, 프로그램을 개발하거나 학습용으
로 사용할 때에는 둘 다 무료로 사용이 가능합니다.
주 버전 개선 버전 업데이트 버전 장기 지원 서비스 버전
JDK 버전 설명
Java SE 12 주 버전이 12
✚ 여기서 잠깐 Java 버전
흔히 Java 8, Java 11이라고 부르기도 하는데, 이것은 언어에 중점을 두고 부르는 이름입니다. Java 11을 설치한다는
것은 Java SE 11 또는 JDK 11을 설치한다는 것과 동일한 의미입니다. 그리고 Java 8일 경우 Java SE 1.8 또는 JDK
1.8과 동일합니다.
✚ 여기서 잠깐 운영체제 사양 확인
다운로드하기 전에 윈도우 운영체제의 사양을 확인하려면 파일 탐색기를 열고 [내 PC]에서 마우스 오른쪽 버튼을 클릭한
후 [속성]을 선택합니다.
환경 변수 설정
JAVA _HOME 환경 변수 등록
윈도우 운영체제에서 환경 변수를 변경할 때에는 [시스템 속성] 대화상자를 이용합니다. 윈도우 버전
별로 [시스템 속성] 대화상자를 실행하는 방법은 다음과 같습니다.
note 윈도우 10일 경우, [변수 값]을 직접 입력하는 것보다는 하단에 있는 [디렉터리 찾아보기] 버튼을 클릭해서 JDK가 설치
된 폴더를 지정하면 편리합니다.
Path 환경 변수 수정
파일 탐색기에서 JDK 설치 폴더를 보면 bin 폴더가 있습니다. bin 폴더 안에는 다양한 명령어들
이 있는데, 대표적으로 자바 소스 파일을 컴파일해주는 javac 명령어와 컴파일된 파일을 실행해주는
java 명령어가 있습니다.
note 첫 번째 항목으로 위치시키는 이유는 명령 라인에서 명령어를 찾을 때, Path 환경 변수에 등록된 순서대로 찾기 때문입
니다. 만약 %JAVA_HOME%\bin보다 먼저 등록된 폴더에 java 명령어가 있다면 다른 버전의 java 명령어가 사용될 수 있습니다.
윈도우 10 하위 버전에서는 [환경 변수 편집] 대화상자가 다음과 같이 다르게 나타납니다. 이 경우에도 등록 순서가 중요하므
로 [변수 값]의 맨 앞으로 이동해서 ‘%JAVA_HOME%\bin’을 입력하고, 경로를 구분하기 위해 세미콜론(;)을 붙여줍니다.
참고로 윈도우 10에서도 [환경 변수 편집] 대화상자의 [텍스트 편집] 버튼을 클릭하면 동일한 대화상자가 나타납니다.
혼자 해도 충분하다!
1:1 과외하듯 배우는 프로그래밍 자습서
1 2 3
‘혼자 공부’할 수 있는 245개의 쉬운 문제부터 도전 문제까지!
7단계 구성으로 손코딩 예제로 스스로 해결하며
독자의 한 마디
• 핵심 위주로 알려줘서 이제 막 자바를 배우기 시작한 입문자도 중간에 포기하지 않고 완독할 수 있을 것 같아요. _ 최예소라 님
• 각 장 마지막에 포인트를 정리해둔 페이지가 많은 도움이 됐어요. 앞에서 공부한 내용을 한번에 복습할 수 있었어요. _ 안정은 님
프로그래밍 언어/자바
정가 24,000원