구)홈페이지 오탈자 보기
이것이 자바다

 

페이지오탈자 내용등록일
255

(55쪽, 표)

표의 첫 번째 라인의 제목 부분

기본 타입 | 최소값 상수 | 최대값 상수

->

기본 타입 | 최대값 상수 | 최소값 상수

2015-02-241
383

(83쪽, 두 번째 음영 부분)

5 % 0 → ArithmeticExcepton 예외 발생

->

5 % 0 → ArithmeticException 예외 발생

2015-02-241
384

(84쪽 소스코드 06, 07 라인)

06 double z = 5 / y;
07 //double z = 5 % y;

->

06 double z = x / y;
07 //double z = x % y;

2015-02-241
5147

(147쪽 맨 아랫줄)

문자열과 매개값으로 주어진 비교 문자열이 동일한지 비교한 후 true 또는 faulse를 리턴한다.

->

문자열과 매개값으로 주어진 비교 문자열이 동일한지 비교한 후 true 또는 false를 리턴한다.

2015-02-241
5152

(152쪽, 아래 부분)

이렇게 생성된 배열에서 “신용권”은 names[0], “홍길동”은 names[1], “감자바”는 names[3]으로 읽을 수 있다.

-> 

이렇게 생성된 배열에서 “신용권”은 names[0], “홍길동”은 names[1], “감자바”는 names[2]로 읽을 수 있다.

2015-02-241
5166

(166쪽, 소스코드)

String[] strArray = new String[3];
strArray[0] = "Java";
strArray[1] = "Java";
strArray[2] = new String("java");

->

String[] strArray = new String[3];
strArray[0] = "Java";
strArray[1] = "Java";
strArray[2] = new String("Java");

2015-02-241
6186

(p186)

등의 속성과 달린다, 멈춤다 등의 동작이 있다.

-->

등의 속성과 달린다, 멈춘다 등의 동작이 있다.

2015-07-083
6208

(208쪽 5번째 줄)

왜냐하면 동일한 이름의 매개 변수가 사용 우선순위가 높이 때문이다.

->

왜냐하면 동일한 이름의 매개 변수가 사용 우선순위가 높기 때문이다.

2015-02-241
6216

(216쪽 밑에서 두번째줄)

영어 스펠링 오류입니다.

devide ====>divide

2016-02-245
6239

(239쪽 중간 부분)

그러나 계산이 필요한 초기화 작업이 있을 수 있다. 인스턴스 필드는 생성자에서 하지만, 정적 필드는 객체 생성 없이도 사용해야 하므로 생성자에서 초기화 작업을 할 수 없다.

->

그러나 계산이 필요한 초기화 작업이 있을 수 있다. 인스턴스 필드는 생성자에서 초기화하지만, 정적 필드는 객체 생성 없이도 사용해야 하므로 생성자에서 초기화 작업을 할 수 없다.

2015-02-241
6246

(246쪽, 소스코드 09~11라인)

09 //p1.nation = "usa";                  
10 //p1.ssn = "654321-7654321";   --------------} final 필드는 값 수정 불가
11 p1.name = "을지문덕";;              --------------} final 필드는 값 수정 불가

->

09 //p1.nation = "usa";                    --------------} final 필드는 값 수정 불가                              
10 //p1.ssn = "654321-7654321";   --------------} final 필드는 값 수정 불가
11 p1.name = "을지문덕"; 


2015-02-241
6253

(253쪽 소스코드 첫 번째 라인)

pckage com.mycompany;

->

package com.mycompany;

2015-02-241
6270

(270쪽 중간 부분)

예를 들어 Stirng 타입의 엘리먼트와 int 타입의 엘리먼트를 다음과 같이 선언할 수
있다.

->

예를 들어 String 타입의 엘리먼트와 int 타입의 엘리먼트를 다음과 같이 선언할 수
있다.

2015-02-241
7315

(315쪽, 소스코드 19라인)

19 System.out.println("[자동차가 멈춤니다.]");

->

19 System.out.println("[자동차가 멈춥니다.]");

2015-02-241
7327

(Page 327)

중간부분의 그림안에 있는 박스에서
"parnet 매개 변수가 참조하는 객체가 Child인지 조사" (X)
"parent 매개 변수가 참조하는 객체가 Child인지 조사" (O)

2015-06-134
8347

(347쪽 첫 번째 음영부분)

[ public static final ] 타ㅁ 상수명 = 값;

->

[ public static final ] 타입 상수명 = 값;

2015-02-241
8354

(354쪽 소스코드 제목)

【RemoteControllerExample.java】 익명 구현 클래스

->

【RemoteControllerExample.java】 인터페이스 변수에 구현 객체 대입

2015-02-241
9396

(396쪽, 18~19라인)

18   //B var1 = new B();
19   C var2 = new C();

->

18    //B var1 = new B();     (x)
19    C var2 = new C();      (o)

2015-02-241
9399

(399쪽 07라인)

07    class Innter {

->

07    class Inner {

2015-02-241
9400

(400쪽, 19라인)

19    class Innter {

->

19    class Inner {

2015-02-241
9407

(407쪽, 11라인)

11   };

->

11   }

2015-02-241
10424

(424쪽 아래부분)

배열에서 인덱스 범위를 초과하여 사용할 경우 실행 예외인 java.lang.ArrayIndexOutOf-BoundsExceptio이 발생한다.

->

배열에서 인덱스 범위를 초과하여 사용할 경우 실행 예외인 java.lang.ArrayIndexOutOf-BoundsException이 발생한다.

2015-06-013
11457

(Page 457)

Byte, Short, Character, Integer, Float, Double, Boolean

->

Byte, Short, Character, Integer, Float, Double, Boolean, Long

2015-06-224
11465

(465쪽, 첫 번째 줄)

우리가 만드는 클래스도 toStirng ( ) 메소드를 재정의해서 좀 더 유용한 정보를 리턴하도록 할 수 있다.

->

우리가 만드는 클래스도 toString ( ) 메소드를 재정의해서 좀 더 유용한 정보를 리턴하도록 할 수 있다.

2015-02-241
11530

(530쪽 소스코드 제목, 01라인)

【AudoBoxingUnBoxingExample.java】 자동 박싱과 언박싱
01 public class AudoBoxingUnBoxingExample {

->

【AutoBoxingUnBoxingExample.java】 자동 박싱과 언박싱
01 public class AutoBoxingUnBoxingExample {

2015-02-241
11562

(562쪽, 소스코드 26라인)

26   remainDay = ChronoUnit.YEARS.between(startDateTime, endDateTime);

->

26   remainYear = ChronoUnit.YEARS.between(startDateTime, endDateTime);

2015-02-241
15752

(752쪽, 두 번째 음영 부분)

TreeSet<String> treeSet = new TreeSet<Stfing>();

->

TreeSet<String> treeSet = new TreeSet<String>();

2015-02-241
16801

(801쪽 표에서 "요소 -> 대체 요소" 컬럼의 6번째 줄)

"요소 -> 대체 요소" 컬럼의 6번째 줄

T -> InputStream

->

T -> IntStream

2015-02-241
16803

(803쪽,)

표, "리턴 타입" 컬럼 아래에서 위로 세 번째

DobleStream

->

DoubleStream

2015-02-241
16835

(835쪽, 오른쪽 그림의 제목)

병렬성(Concurrency)

->

병렬성(Parallelism)

2015-02-241
16842

(842쪽, 소스코드 05라인)

05 public class ArrayListlVsLinkedListExample {

->

05 public class ArrayListVsLinkedListExample {

2015-02-241
16843

(843쪽, 소스코드 32라인)

32 //순차 스트림 처리 시간 구하기

->

32 //병렬 스트림 처리 시간 구하기

2015-02-241
181011

(1011쪽, 소스코드 17, 20라인)

17   System.out.println("예금 출금를 선택하셨습니다.");
20   System.out.println("예금 입금를 선택하셨습니다.");

->

17   System.out.println("예금 출금을 선택하셨습니다.");
20   System.out.println("예금 입금을 선택하셨습니다.");

2015-02-241
181021

(1021쪽, 두 번째 문단의 첫 줄)

첫 번째 방법은 문자열로된 파일의 경로를 가지고 FileInputStream을 생성하되, 읽어야 할 파일이

->

첫 번째 방법은 문자열로된 파일의 경로를 가지고 FileInputStream을 생성한다. 만약 읽어야 할 파일이

2015-02-241
181022

(1022쪽, 소스코드 08~10라인)

08~10 라인에 테두리가 둘러 있습니다. 이곳 테두리 오른 쪽에  "1byte씩 읽고 콘솔에 출력" 텍스트를 추가합니다.

2015-02-241
191110

(1110쪽 3번째 문단;)

1110쪽 3번째 문단; "디렉토리(Path)에..."로 시작되는 문단의 3번째줄 중간정도에 다음과 같은 오류가 있습니다.(오탈자)

... 프로그램은 무한 루프'틀' 돌면서 WatchService의 ...

무한 루프'틀' 이라고 되어있는데 무한 루프'를' 로 바뀌어야 합니다.

2016-01-275
191117

(1117쪽, 28라인)

28   System.out.println("넌다이렉트:t" + (end-start)/10 + " ns");

->

28   System.out.println("넌다이렉트:t" + (end-start) + " ns");

2015-02-241
191118

(1118쪽, 38라인)

38   System.out.println("다이렉트:t" + (end-start)/10 + " ns");

->

38   System.out.println("다이렉트:t" + (end-start) + " ns");

2015-02-241
191136

(1136쪽, 3번째 줄)

다음은 ByteBuffer가 가지고 있는 기본 타입 채널로 변환하는 asXXXBuffer( ) 메소드들이다.

->

다음은 ByteBuffer가 가지고 있는 기본 타입 버퍼로 변환하는 asXXXBuffer( ) 메소드들이다.

2015-02-241
191137

(1137쪽, 표)

표, "설명" 컬럼의 6번째 줄

스트림을 닫을 때 파일을 삭제한다(임시 파일을 삭제할 때 사용).

->

채널을 닫을 때 파일을 삭제한다(임시 파일을 삭제할 때 사용).

2015-02-241
191140

(1140쪽, 5번째 줄)

18라인은 position에서 limit까지 읽고 CharBuffer로 변환한다.

->

18라인은 position에서 limit까지 읽고 문자열로 변환한다.

2015-02-241
191141

(1141쪽, 첫 번째 줄)

단순히 파일을 복사할 목적이라면 이번 예제처럼 ByteBuffer와 FileChannel 2개를 직접 생성해서 구현해도 좋지만, NIO의 Files 클래스의 copy( ) 메소드를 사용하는 것이 더 편리하다.

->

이번 예제처럼 ByteBuffer와 FileChannel 2개를 직접 생성해서 복사를 구현해도 좋지만, 단순히 파일을 복사할 목적이라면 NIO의 Files 클래스의 copy( ) 메소드를 사용하는 것이 더 편리하다.

2015-02-241
191145

(1145쪽, 두 번째 문단의 3번째 줄)

주목할 점은 이 콜백 메소드를 실행하는 스레드는 read( )와 write ( )를 호출한 스레드가 아니고

->

주목할 점은 콜백 메소드를 실행하는 스레드는 read( )와 write ( )를 호출한 스레드가 아니고

2015-02-241
191147

(1147쪽, 첫 번째 줄)

이 예제에서 주의할 점은 47라인에서 write ( ) 메소드가 즉시 리턴되더라도

->

이 예제에서 주의할 점은 48라인에서 write ( ) 메소드가 즉시 리턴되더라도

2015-02-241
191149

(1149쪽, 42라인, 첫 번째 줄)

42   System.out.println(path.getFileName() + " : " + data + " : " +

->

42   System.out.println(attachment.path.getFileName() + " : " + data + " : " +

-----------------------------------------------------------------------------------------

이 예제에서도 역시 53라인의 read( ) 메소드가 즉시 리턴되더라도

->

이 예제에서도 역시 54라인의 read( ) 메소드가 즉시 리턴되더라도

2015-02-241
191151

(1151쪽, 3번째 줄)

이와 같은 설정을 하지 않아도 기본적으로 블로킹 방식으로 동작하지만, 명시적으
로 설정하는 이유는 넌블로킹과 구분하기 위해서이다.

->

기본적으로 블로킹 방식으로 동작하지만, 명시적으로 설정하는 이유는 넌블로킹과 구분하기 위해서이다.

2015-02-241
191151

(이것이 자바다 2권 1151쪽 두번째 문단의 세번째 줄)

이벤트를 처리하는 스레드에서 accpet() 메소드를 호출하지

->

이벤트를 처리하는 스레드에서 accept() 메소드를 호출하지

2015-07-224
191153

(1153쪽, 2번째 줄)

이 설정을 하지 않아도 기본적으로 블로킹 방식으로 동작하지만, 명시적으로 설정하는 이유는 넌블로킹과 구분하기 위해서이다.

->

기본적으로 블로킹 방식으로 동작하지만, 명시적으로 설정하는 이유는 넌블로킹과 구분하기 위해서이다.

2015-02-241
191159

(1159쪽, 첫번재 그림)

② 스레드 생성

->

② 스레드 생성(SocketChannel 생성)

2015-02-241
191203

(1203쪽, 두 번째 음영 부분)

asynchronousSocketChannel.read(byteBuffer, attachment,
   new CompletionHandler<Integer, A>() {
   @Override
   public void completed(Integer result, A attachment) {
      //받은 데이터를 처리하는 코드
     socketChannel.read(byteBuffer, attachment, this);
   }

->

asynchronousSocketChannel.read(byteBuffer, attachment,
   new CompletionHandler<Integer, A>() {
   @Override
   public void completed(Integer result, A attachment) {
      //받은 데이터를 처리하는 코드
     asynchronousSocketChannel.read(byteBuffer, attachment, this);
   }

2015-02-241