이상민
저자:이상민
삼성SDS에서개발을시작하여NAVER,NHN등의회사에서일했다.《자바의신》,《자바성능튜닝이야기》등다수의IT서적을집필하였다.지금은국내최고의스마트통합주차회사인파킹클라우드에서개발총괄이사로일하고있다.
감수:김성박
1998~2007년도까지삼성SDS멀티캠퍼스자바부분전임강사를지냈다.2007~2010년도까지T3Q(주)에서기술이사로재직하였고현재는커뮤니티사이트를만들고싶어(주)써니베일을창업하여열심히커뮤니티사이트를만들고있다.
감수:박재성
프로그래밍을통해지속가능한삶을살아가는것에관심이많다.최근에는대한민국에서자신의색깔을유지하며행복한삶을살아가는방법을주변에전하는데더많은관심을가지고있다.SLiPP(https://slipp.net)커뮤니티를통해다른개발자와온라인으로소통하고,오프라인스터디를통해다양한개발자들과교류하고있다.저서로는<자바세상의빌드를이끄는메이븐>(2011,한빛미디어),<프로그래머그다음이야기>(2011,로드북),<자바웹프로그래밍NextStep>(2016,로드북)이있다.
NEXTinstitute에서웹서버전공학생들에게자바웹프로그래밍을가르쳤다.나와같은반란군을키우는교육자이고싶다.
머리말
이렇게학습하세요
자바의신샘플실행기가이드
감수자&베타리더의글
1장.프로그래밍이란무엇인가?
Programming의P
자바프로그램의메소드는이렇게이렇게생겼어요
자바의가장작은단위는클래스랍니다
클래스는상태를갖고있어야합니다
프로그램의가장기본은=를이해하는것
한줄을의미하는세미콜론
모든프로그래밍언어에는예약어라는것이있어요
정리하며
2장.HelloGodOfJava
자바를배울환경준비하기
HelloGodOfJava만들기
HelloGodOfJava컴파일하고실행하기
main메소드를만들자
System.out.println()과System.out.print()
주석(Comment)처리하기
메소드를직접만들어보자
정리하며
직접해봅시다
정리해봅시다
jshell로예제실행해보기
3장.자바를제대로알려면객체가무엇인지를알아야해요
자바는객체지향언어라고해요
클래스와객체는구분하셔야해요
Car클래스를구현하자
계산기클래스를만들어보자
Calculator객체를생성해보자
정리하며
직접해봅시다
정리해봅시다
jshell로예제실행해보기
4장.정보를어디에넣고싶은데
자바에서는네가지의변수가존재해요
예제를통해서지역변수를확실히익히자
변수이름은이렇게
크게보면자바에는두가지자료형이있답니다
기본자료형은8개에요
8비트와byte타입
다른정수형타입들은어떻게활용하나?
소수점을처리하고싶어요
char와boolean는어떻게쓰는거지?
기본자료형의기본값은뭘까?
정리하며
직접해봅시다
정리해봅시다
jshell로예제실행해보기
5장.계산을하고싶어요
연산자라는게뭐지?벌써조금배웠다고?
간단하게계산하는복합대입연산자들
피연산자가하나인것도있어요.이걸단항연산자라고하죠
자바에서계산하는순서를알아두면좋다
뭔가를비교할때는어떻게하지?
논리연산자들을알아보자
아주특이한?:연산자
기본자료형의형변환을이용한변신
정리하며
직접해봅시다
정리해봅시다
jshell로예제실행해보기
6장.제가조건을좀따져요
도대체얼마나조건을따지길래…
if를조금더다양하게사용해보자
자바의switch와불켜는스위치는별상관없다
반복문이라구요?
가장확실한for루프
많이사용안하는label
정리하며
직접해봅시다
정리해봅시다
jshell로예제실행해보기
7장.여러데이터를하나에넣을수는없을까요?
하나에많은것을담을수있는배열이라는게있다는데…
배열의기본값
배열을그냥출력해보면어떻게나올까?
배열을선언하는또다른방법
별로사용하지는않지만,알고있어야하는2차원배열
배열의길이는어떻게알수있을까요?
배열을위한for루프
자바실행할때원하는값들을넘겨주자
정리하며
직접해봅시다
정리해봅시다
jshell로예제실행해보기
8장.참조자료형에대해서더자세히알아봅시다
참조자료형은나머지다에요
기본생성자
생성자는몇개까지만들수있을까?
이객체의변수와매개변수를구분하기위한this
메소드overloading
꼭기억하고넘어가야합니다
메소드에서값넘겨주기
static메소드와일반메소드의차이
static블록
Passbyvalue,Passbyreference
매개변수를지정하는특이한방법
정리하며
직접해봅시다
정리해봅시다
jshell로예제실행해보기
9장.자바를배우면패키지와접근제어자는꼭알아야해요
패키지는그냥폴더의개념이아니에요
패키지이름은이렇게지어요.
import를이용하여다른패키지에접근하기
자바의접근제어자
클래스접근제어자선언할때의유의점
정리하며
직접해봅시다
정리해봅시다
jshell로예제실행해보기
10장.자바는상속이라는것이있어요
자바에서상속이란?
상속과생성자
메소드Overriding
참조자료형의형변환
Polymorphism
자식클래스에서할수있는일들을다시정리해보자317
정리하며
직접해봅시다
정리해봅시다
jshell로예제실행해보기
11장.매번만들기귀찮은데누가만들어놓은거쓸수없나요?
미리만들어놓은클래스들은아주많아요
API를열어보자
클래스및인터페이스의상세정보화면을살펴보자
Deprecated라고표시되어있는것은뭐야?
Header와Footer에있는링크들은뭘까?
정리하며
직접해봅시다
정리해봅시다
jshell로예제실행해보기
12장.모든클래스의부모클래스는Object에요
모든자바클래스의부모인java.lang.Object클래스
Object클래스에서제공하는메소드들의종류는?
Object클래스에서가장많이쓰이는toString()메소드
객체는==만으로같은지확인이안되므로,equals()를사용하죠
객체의고유값을나타내는hashCode()
정리하며
직접해봅시다
정리해봅시다
jshell로예제실행해보기
13장.인터페이스와추상클래스,enum
메소드내용이없는interface
인터페이스를직접만들어보자
일부완성되어있는abstract클래스
나는내자식들에게하나도안물려줄꺼여
enum클래스라는상수의집합도있다
enum을보다제대로사용하기
enum클래스의부모는무조건java.lang.Enum이어야해요
정리하며
직접해봅시다
정리해봅시다
jshell로예제실행해보기
14장.다배운것같지만,예외라는중요한것이있어요
자바에서매우중요한예외
try-catch는짝이다
try-catch를사용하면서처음에적응하기힘든변수선언
finally야~넌무슨일이생겨도반드시실행해야돼
두개이상의catch
예외의종류는세가지다
모든예외의할아버지는java.lang.Throwable클래스다
난예외를던질거니까throws라고써놓을께
내가예외를만들수도있다구?
자바예외처리전략
정리하며
직접해봅시다
정리해봅시다
jshell로예제실행해보기
15장.String
자바에서가장많이사용하는String클래스
String의생성자에는이런것들이있다
String문자열을byte로변환하기
객체의널체크는반드시필요하답니다
String의내용을비교하고검색하는메소드들도있어요
String내에서위치를찾아내는방법은여러가지에요
String의값의일부를추출하기위한메소드들은얘네들이다
String값을바꾸는메소드들도있어요
절대로사용하면안되는메소드가하나있어요!!!!!
immutable한String의단점을보완하는클래스에는StringBuffer와StringBuilder가있다
정리하며
직접해봅시다
정리해봅시다
jshell로예제실행해보기
16장.클래스안에클래스가들어갈수도있구나
클래스안의클래스
Staticnested클래스의특징
내부클래스와익명클래스
Nested클래스의특징은꼭알아야한다
정리하며
직접해봅시다
정리해봅시다
jshell로예제실행해보기
17장.어노테이션이라는것도알아야한다
어노테이션이란?
미리정해져있는어노테이션들은딱3개뿐
어노테이션을선언하기위한메타어노테이션
어노테이션을선언해보자
어노테이션에선언한값은어떻게확인하지?
어노테이션도상속이안돼요
정리하며
직접해봅시다
정리해봅시다
jshell로예제실행해보기
18장.이제기본문법은거의다배웠으니정리해봅시다
객체지향개발과관련된용어들
자바의주석문(Comment)
패키지와import
자바에서사용되는타입의종류
변수의종류
계산을쉽게도와주는연산자들
조건문들
반복문들
아무나사용못하게막아주는접근제어자
선언할때사용할수있는각종제어자들
자바를구성하는클래스,인터페이스,abstract클래스
메소드의선언
자주사용하게되는상속
예외를처리하자
Object클래스
String클래스
어노테이션을선언할때사용하는메타어노테이션들
API의기초
정리하며
직접해봅시다
정리해봅시다
jshell로예제실행해보기
<자바의신>중간점검및실습
부록Part1
1.Eclipes설치하기
2.float와double의범위
3.비트연산자는어떤것일까
4.java.lang.Math클래스
5.jshell
찾아보기
1장.이쯤에서자바의역사와JVM에대해서알아보자
2장.가장많이쓰는패키지는자바랭
3장.실수를방지하기위한제네릭이라는것도있어요
4장.자바랭다음으로많이쓰는애들은컬렉션-Part1(List)
5장.자바랭다음으로많이쓰는애들은컬렉션-Part2(Set과Queue)
6장.자바랭다음으로많이쓰는애들은컬렉션-Part3(Map)
7장.쓰레드는개발자라면알아두는것이좋아요
8장.파일에있는것을읽고쓰려면아이오를알아야죠
9장.Serializable과NIO도살펴봅시다
10장.다른서버로데이터를보내려면어떻게하면되나요?
11장.이제주요API도알아봤으니정리해봅시다
<자바의신>기말고사
<자바의신>기말실습문제
13장.Java7에추가된것들에는?
14장.Java8에추가된것들은?
15장.Java8에서변경된것들은?
16장.Java9에서변경된것들은?
17장.Java10에서는무엇이달라졌을까?
18장.Java11은얼마나달라졌을까?
19장.Java12~17버전을살펴보자
현장전문가가쓴자바기초입문서다.NAVER,NHN,SKPlanet등에서성능전문가의풍부한경험을바탕으로자바를실무에맞게제대로쓸줄알게해주는입문서를목표를만들었다.현장중심형자바기초문법서다.혼자공부하는독자를위해연습문제를직접풀고제출하여모법답안을확인할수있는시스템을구축하였고독자서비스를위해<자바의신>카페를10년넘게운영하고있다.3판에서는Java9부터지원되는jshell로본문의모든예제를실행해보면서복습해볼수있도록하였다.
_대상독자
Q.자바개발자로일하고싶은데,무엇을어떻게시작해야할까요?
A:우선VOL.1을마스터하세요.연습문제를반드시풀어봐야합니다.
Q.현업에서개발자로일하고있지만,나의개발방식이가끔맞는것인지헷갈릴때가있어요.
A:VOL.1을건너뛰고VOL.2를학습해도됩니다.레퍼런스로찾아서필요한부분만읽어도됩니다.
Q.개발자는아니지만,개발자들과소통할일이많아요.
A:VOL.1만공부해도충분합니다.개념을익히는데많은도움을받을수있어요.
_주요내용
[3판의주요변경사항]
_2판에서추가된JavaFX관련내용을제외하여온라인PDF특별판으로제공
_각장의마지막에본문에서다룬예제를jshell로쉽게다시한번실행해보며복습하는코너를만들었다.jshell은자바9부터지원되어선언문,문장,표현식등을바로확인해볼수있는툴이다.jshell로실제값을입력하여본문예제를실행해보면서공부한내용을바로바로확인해볼수있다.
이책은VOL.1으로기초문법을다루고있습니다.
<자바의신>은총2권으로구성되어있습니다.그중첫번째인이책은개발자가알아야할기초문법을다루고있습니다.1권을이해해야2권의API활용법을쉽게학습할수있습니다.
가장신경쓴점은“생각하는습관”을갖도록하는데있습니다.
이책에는“생각해봅시다”라는쉬어가는코너가아주자주등장합니다.이를통해독자에게화두를던지고그에대해짧게는1분에서길게는10분까지생각해볼수있도록하였습니다.이것은현업에서개발자로성장했을때단순코더가아니라생각하는코더가될수있도록세심하게배려하였습니다.
연습문제에심혈을기울였습니다.
문제를풀어보는것만큼실력을높일수있는지름길은없습니다.서술형문제에서는이미학습한내용을잘기억하고있는지테스트할수있습니다.실습문제에서는작은단위의프로그램을만들어보면서프로그램짜는능력을쑥쑥키워갈수있습니다.
VOL.1&VOL.2공통온라인특별판PDF무료제공
1장.저는이런것말고웹페이지를만들고싶었다구요
2장.그럼데이터를저장하려면어떻게해야하는데요?
부록1.Tomcat설치하기
부록2.JSP와web.xml추가설명
부록3.SQL기초와JDBC타입
부록4.GUI도구인JavaFX
부록5.JavaFX로계산기를만들어보자
부록6.자바설치가이드
_편집자코멘트
편집자인저도원고의초고를보면서연습문제를직접풀어보았습니다.사실삽질을많이했습니다.“어디서에러가나는거지?”“앞에서이런부분을설명했나?”“아~내가이런부분을이해하지못하고넘어갔구나”하면서,교정시간은더디게갔지만,훨씬자바라는언어에더가까워질수있었습니다.
이책의베타리뷰로참석했던분들도비슷한경험을하였습니다.이책은21명의베타리뷰어가리뷰를하였습니다.디지털파일이아니라모든분들께일일이제본된책자가제공되었습니다.실제독자가학습하는방식그대로를재현하면서어디에서막히는지,문제점은없는지를발견하고이를책에반영하였습니다.상당히까다롭고귀찮은작업이었지만,기본서의중요성에비추어볼때이정도의투자는해야한다고생각했습니다.
이책에참여해주신21명의베타리뷰어와좋은기본서를만들어준저자에게진심으로감사를드립니다.
