>  기사  >  Java  >  자바 프로그래머가 읽어야 할 좋은 책을 공유해 보세요

자바 프로그래머가 읽어야 할 좋은 책을 공유해 보세요

零下一度
零下一度원래의
2017-06-25 10:41:401224검색

Java 프로그래머로서 가장 괴로운 점은 선택의 폭이 너무 넓고, 읽어야 할 책이 ​​너무 많아, 헤매기 쉬운 점입니다. 나는 내가 읽은 기술 서적 중 일부를 선택하여 학습 순서에 따라 모든 사람, 특히 기술 수준을 지속적으로 향상시키고 싶은 Java 프로그래머에게 추천하고 싶습니다.

1. Java 프로그래밍 입문
Java 프로그래밍 경험이 없는 프로그래머라면 여느 입문서를 읽는 것과 같습니다. 이 단계에서는 Java의 기본 구문과 기본 사용법을 빠르게 익히는 것이 목표입니다. 더 깊은 이해를 요구하지 않고 모든 것을 삼켜라." 먼저 Java에 익숙해지는 것부터 시작하겠습니다. 짧은 시간을 사용하여 Java 구문을 빠르게 살펴보고 추측하지 않고 더 많은 코드를 작성해야 합니다.
1. "Java 프로그래밍 생각"
Java 프로그래밍에 대해 어느 정도 경험을 쌓은 후에는 "이유"를 알아야 합니다. 이때 『Java 프로그래밍 생각』은 그 이유를 알려주기 좋은 책이다. 기본적인 객체지향 지식과 기본적인 자바 구문, 기본 클래스 라이브러리 등이 명쾌하게 설명되어 있어 문제 해결에 도움이 될 수 있다. Java 프로그래밍의 기초. 이 책의 단점은 너무 두껍고 장황하며, 빠르게 진행되는 현대인의 학습에 적합하지 않다는 점입니다. 따라서 이 책을 읽을 때 무엇을 선택해야 할지 알아야 합니다. 핵심 사항에 초점을 맞추고 자세히 읽어 보세요.
2. 중국어판 "Agile Java"
출판사에서 주신 책인데, 책장을 넘기지 않고 책장에 꽂아두었어요. 이틀 전에 책장을 꺼내서 뒤져보니 확실히 좋은 책이라는 걸 알게 됐어요! 이 책의 주요 특징은 책 전반에 걸쳐 단위 테스트와 TDD가 사용된다는 점입니다. Java에 대한 다양하고 중요한 기본 지식을 가르치는 과정에서 프로그래밍 사고가 민첩해지고 TDD로 나아갈 수 있도록 미묘하게 영향을 미칠 것입니다. 게다가 이 책은 JDK5.0의 구문을 기반으로 하여 매우 새로운 JDK5.0의 구문을 익히는 데에도 좋습니다. 게다가 이 책은 내용 선택에도 매우 적합합니다. 결국 Java 언어에는 거대한 클래스 라이브러리가 있고 이야기할 내용이 너무 많습니다. 이 책의 내용 선택과 양은 매우 적합합니다. 최소한의 시간에 Java의 가장 중요한 측면을 마스터할 수 있는 이 책은 중요한 지식을 제공하고 뛰어난 프로그래밍 아이디어를 배양하는 보기 드문 좋은 책입니다.
저자 본인도 이 책을 입문 수준에 두었지만, 이 책이 입문용으로 조금 심도 깊은 내용인지는 잘 모르겠습니다. 시간이 나면 이 책도 읽어보고 공부해 볼까 합니다.
2. 고급 자바 프로그래밍 수업
좋은 자바 기초를 쌓기 위해서는 좀 더 실무적인 경험을 쌓는 것이 지름길은 없다고 생각합니다. 프로그래밍 경력의 이 단계에서 좋은 프로그래밍 습관을 개발하고 코드 품질을 향상시키기 위해 읽을 가치가 있는 두 권의 책이 있습니다.
1. "기존 코드 디자인 개선을 위한 리팩토링"
이 책은 워낙 유명해서 소개가 필요 없을 정도로 틈틈이 읽어보고 직접 실습을 통해 확인해 보세요. 이 책은 당신에게 미묘한 영향을 미칩니다.
2. "예제를 통한 테스트 중심 개발"

이 책의 가장 큰 특징은 매우 얇아 부담스럽지 않은 것 같습니다. 주말 오후를 찾아서 동시에 지침을 읽고 따라하면 어느 날 오후에 책을 다 읽을 수 있습니다. 이 책의 목적은 실제 전투를 통해 TDD 아이디어를 개발할 수 있도록 하는 것입니다.
3. Java Architect로 가는 길
이 단계에서는 Java 프로그래밍에 매우 능숙하고 좋은 프로그래밍 아이디어와 습관이 있어야 하지만, 여전히 응용 소프트웨어의 전반적인 아키텍처에 대한 이해가 부족할 수 있습니다. 건축가가 되기 위한 첫 걸음.
1. "일대일 J2EE 설계 및 개발"
이 책은 Rod Johnson의 유명한 책입니다. 이 책에 담긴 코드에서 SpringFramework가 탄생했습니다. 하지만 이 책의 중국어 번역본은 없는 것 같습니다.
2. "EJB 없이 전문가의 일대일 J2EE 개발"
이 책은 많은 업계 전문가의 참여로 gigix에서 번역되었습니다. 서명된 번역자는 JavaEye이지만 실제로 JavaEye는 그다지 기여하지 않았으며 실제로는 유일한 번역자 이름.
위 두 권의 책은 로드 존슨의 고전이자 자바 아키텍트라면 꼭 읽어야 할 책입니다. 제가 추천하는 책 중에서는 제가 지금까지 읽은 책 중 가장 조심스럽고 진지한 책입니다. 이 책을 읽으면 잠도, 밥도 다 잊어버릴 뻔하고 단숨에 읽었는데, 어렸을 때와 똑같은 에너지가 느껴졌습니다. , 밤에 진용의 무협소설을 읽으면서 언급된 내용은 나의 경험과 지식으로 하나하나 확인되었고, 이 책을 읽고 나니 경락이 열리고 있다는 느낌이 들었다. 내 실력이 폭발했다.
그런데 다른 사람들의 리뷰를 읽어보니, 독서 경험이 저만큼 높지 않은 것 같아요. 아마도 사람마다 지식 축적이나 경험이 다르기 때문이겠죠. 그 당시 나는 우연히 충분한 경험과 지식을 축적했지만 아직 체계적으로 정리하지 못했고 이 책을 통해 즉시 완전한 지식 시스템을 형성했습니다.
3. "엔터프라이즈 애플리케이션 아키텍처 패턴"
마틴의 또 다른 유명한 책이지만 저는 이 책을 일반적으로만 읽었고 자세히 읽지는 않았습니다. 예를 들어, ORM을 직접 작성할 계획이라면 이 책은 꼭 읽어야 할 책입니다. 하지만 애플리케이션을 만드는 사람들은 보지 않아도 상관없습니다. 하지만 시간이 있다면 진지하게 살펴보는 것이 좋습니다. 프레임워크가 왜 이렇게 설계되었는지 알 수 있을 것입니다. , 문제에 대해 생각하는 프레임워크 디자이너의 관점으로 수준을 높일 수 있습니다. 나는 항상 마틴의 책을 존경해 왔지만 로드 존슨의 책만큼 진지하게 읽은 적은 없었다.
4. "애자일 소프트웨어 개발 원칙, 패턴 및 관행"

애자일의 고전적 걸작인 Bob 삼촌의 유명한 책입니다. 이 책은 소프트웨어 개발 과정에 관한 책이라기보다는 소프트웨어 아키텍처에 관한 책으로 많은 시간을 들여 다양한 객체지향에 대해 이야기합니다. 소프트웨어 개발 다양한 패턴, 개인적으로 이 책을 읽고 나면 GoF의 "디자인 패턴"을 읽을 필요가 없다고 생각합니다.
4. 소프트웨어 개발 프로세스
소프트웨어 개발 프로세스를 이해하는 것은 개별 프로그래머의 좋은 프로그래밍 습관을 향상시킬 뿐만 아니라 팀 협업을 향상시키는 기초이기도 합니다.
1. "UML Essence"
UML은 실제로 소프트웨어 개발 프로세스와 꼭 필요한 연결은 없지만 소프트웨어 팀이 소프트웨어 문서를 협업하고 소통하고 작성하는 데 필요한 도구입니다. 그러나 UML에 대한 실제적인 다이어그램은 많지 않습니다. "UML 사용 설명서" 같은 것을 읽을 필요는 없습니다. 이 책의 중국어 번역은 매우 형편없다는 점을 여러분께 상기시켜 드리고 싶습니다. 가능하다면 영어 원본을 읽어 보시기를 권합니다.
2. "극단적 프로그래밍 분석과 변화 수용" XP
켄트 벡의 유명한 저서 중국어와 영어 제2판입니다. 말할 것도 없고 꼭 읽어야 할 책이다.
3. "통합 소프트웨어 개발 프로세스" UP
사실 UP과 Agile이 반드시 충돌하는 것은 아닙니다. UP도 반복과 테스트를 강조하지만, UP가 강조하는 문서화와 프로세스 추진은 Agile에서 채택되지 않습니다. 어쨌든 UP는 읽을 가치가 있습니다. 결국 중국에는 애자일을 진정으로 받아들이는 회사가 거의 없습니다. UP을 입고 있는 XP라 하더라도 여전히 UP로 무장해야 합니다.
4. "Agile Modeling" AM
Scott Ambler의 유명한 책인 이 책은 Agile과 UP을 모두 통합하는 방법을 알려주며, 또한 많은 프로그래밍적 제안과 실천 방법을 제시합니다. "Extreme 프로그래밍 분석 및 변화 수용", "통합 소프트웨어 개발 프로세스", "Agile Modeling" 세 권의 책을 함께 읽으면 XP와 UP의 차이점을 확인한 다음 AM이 XP와 UP를 어떻게 통합하는지 확인할 수 있습니다. 세 가지 이론을 하나로 모아 자신만의 이론 체계를 형성하면 책도 쓸 수 있습니다.
5. 소프트웨어 프로젝트 관리
리더에 의해 갑자기 프로젝트 관리자로 승진했는데 프로젝트 관리 경험이 전혀 없다면 자신이 프로젝트를 잘 관리하지 못하고 있다고 느끼고 개선하고 싶다면 확실히 확신이 없을 것입니다. PMP 시험을 보는 것만으로는 갈증을 해소하기에 충분하지 않습니다.
1. "빠른 소프트웨어 개발"
이 책도 유명한 책이에요. 이 책을 손에 넣으면 선임 프로젝트 관리 컨설턴트가 조언을 해줄 것이며 더 이상 자신의 무능력에 대해 걱정할 필요가 없다고 말할 수 있습니다. 이 책은 경영이론에 관한 책이 아니며, 실제 프로젝트 관리에서 이러한 이론을 이야기한다고 해서 문제가 해결되는 것은 아닙니다. 문제를 해결하는 방법에 대한 아이디어가 있으면 약간의 변화를 주고 처방전과 약을 찾으면 됩니다.
6. 요약
이 추천 도서 목록에는 Struts, Hibernate, Spring 등 인기 있는 소프트웨어 프레임워크 학습 도서는 나열하지 않았고, AJAX에 관한 책도 나열하지 않았습니다. 왜냐하면 그러한 책은 시대에 뒤떨어지는 경향이 있고, 위에서 언급한 책의 대부분은 구매하고 수집할 가치가 있을 만큼 수명이 길기 때문입니다.

1. Java Language Basics
Java 언어의 기초를 배우기 위한 책이라면 누구나 Bruce Eckel의 "Thinking in Java"를 추천할 것입니다. 이 책은 기본적으로 Java 언어의 기초에 있어서 다른 어떤 책도 이 책을 능가할 수 없는 매우 심오한 기술 서적입니다. 이 책의 저자 브루스 에켈(Bruce Eckel)은 인터넷에서 천재 투기꾼으로 알려져 있다. 저자의 『Thinking in C++』는 1995년 소프트웨어 개발 졸트상(Software Development Jolt Award) 최우수 도서상을 수상했으며, 『Thinking in Java』는 『자바 세계(Java World)』로 명명됐다. "1999년. 가장 좋아하는 독자 환영 도서"로 Editors' Choice Book Award를 수상했습니다. 1986년부터 저자는 150편 이상의 컴퓨터 기술 관련 기사와 6권의 책(그 중 4권은 C++에 관한 책)을 출판했으며 전 세계에서 수백 건의 강의를 했습니다. 그는 "Thinking in Java", "Thinking in C++", "C++ Inside & Out", "Using C++" 및 "Thinking in Patterns"의 저자이며 선집 "Black Belt C++"의 편집자입니다. 그의 책은 "최고의 Java 참고서...완전히 충격적이다", "Java 참고서 구입을 위한 가장 현명한 선택", "내가 본 최고의 프로그래밍 가이드"로 평가됩니다. 저자의 남다른 재능과 다양한 언어를 다루는 능력 덕분에 저자는 Java 개발 10년 중 Java와 가장 밀접한 관계를 맺은 10인 중 한 명으로 선정되었습니다.
『자바로 생각하기』는 자바 언어의 모든 면을 이야기한다. 많은 자바 언어 베테랑들은 "이 책은 자바 언어를 다소 추악하게 말하는 책이다"라고 평했다. 이 책은 Java 언어의 많은 세부 사항에 대해 설명하며 모든 측면이 매우 심오합니다. 이 책을 통해 당신은 "추악한" 자바 언어를 볼 수 있다.
인터넷에는 Java 언어 설명에 대한 많은 동영상이 있으며 그 중 일부는 쓰레기입니다. "Weng Kai - JAVA Language"는 Java 언어의 기본을 배울 수 있는 유일한 선택일 수 있습니다. 이 강의는 기본적으로 "Thinking in Java"라는 책을 기반으로 하며 Weng 선생님의 흥미로운 농담이 많이 포함되어 있습니다. 이 영상을 통해 학습이 시작되었다는 것은 정말 행운입니다. 내용은 30강으로 구성되어 있으며, 총 3번 읽었습니다.
하지만 초보자들에게는 "Thinking in Java"를 추천하지 않습니다. 중국에서는 "Java 2 Core Technology"라고 불리며 현재 7판이 출간 중인 Prentice Hall PTR의 "Core Java 2"를 선호합니다. 인터넷상의 모든 사람이 전자 버전을 다운로드할 수 있습니다. Oreilly의 "Java in a nutshell"도 좋은 선택입니다. 위의 두 권의 책을 읽은 후 Weng Kai 선생님의 비디오를 시청하고 "Thinking in Java"를 공부할 수 있습니다.
2. Java 데이터 구조
Java 데이터 구조에 관한 책은 시중에 거의 없습니다. 대략적으로 APress의 "Java Collections", Jones 및 Bartlett의 "Java의 데이터 구조", "Java를 사용한 객체 지향 데이터 구조", Prentice Hall이 출판한 "Java의 데이터 구조 및 알고리즘"(2005년 12월 19일)이 있습니다. . 이것은 "Java의 객체 지향 디자인 패턴을 사용한 데이터 구조 및 알고리즘"입니다. 제 첫 번째 영어 책이 APress의 "Java Collections"라는 점은 매우 행운입니다. (이 책은 중국에서는 중국어 버전이 전혀 없을 수도 있습니다. 영어 버전만 다운로드할 수 있습니다.) 매우 논리적이고 간단합니다. API 확장에 대한 많은 예제와 함께 Java 컬렉션 API에 대한 전체 소개입니다. 이 책은 자바 데이터 구조를 배우기 위해 제가 추천하는 유일한 좋은 책입니다. 중국에는 Jones와 Bartlett의 다른 두 권의 책에 대한 중국어판이 있는 것 같으니, 원하시면 보시면 됩니다.
API를 학습한 후 java.util 패키지에서 해당 클래스를 살펴볼 수 있습니다. 그러나 디자인 패턴을 학습한 후에만 전체 Java 컬렉션 프레임워크를 완전히 이해할 수 있습니다. Java Collections Framework는 반복자(Iterator) 패턴, 팩토리 메소드 패턴, 데코레이터 패턴, 어댑터 패턴 등과 같은 잘 알려진 많은 디자인 패턴을 사용합니다. java.util 패키지에 포함된 데이터 구조의 소스 코드를 연구하면 악명 높은 Properties 클래스의 설계를 알 수 있으며, 동시에 간단한 데이터 구조를 설계하는 능력도 기본적으로 갖추게 될 수 있습니다.
Sun에서 제공하는 Java Collections Framework를 공부하고 나면 Apche의 또 다른 Java Collections Framework를 공부할 수 있다는 점이 매우 흥미롭습니다. 서로를 보완하는 두 가지 프레임워크.
모두가 Java 컬렉션을 배우고 연구하기 전에 Java 컬렉션은 크게 인터페이스(Interface), 구현(Implemention), 알고리즘(Algorithm)의 세 부분으로 구성된다는 점을 상기시켜 드리겠습니다.
1. 주요 인터페이스는 List, Set, Queue 및 Map입니다. List, Set 및 Queue는 Collection 인터페이스의 하위 인터페이스입니다.
2. 구현은 주로 이러한 인터페이스를 구현하는 특정 클래스입니다. 예를 들어 List 인터페이스를 구현하는 ArrayList, LinkedList, Stack 및 Vector; Set 인터페이스를 구현하는 PriorityQueue, SynchronousQueue 등; HashMap, TreeMap, Hashtable, Properties, WeakHashMap 등을 구현합니다. . Map 인터페이스를 구현합니다.
3. 알고리즘은 주로 전체 Java Collection Framework 알고리즘의 핵심인 Arrays 클래스와 Collections 클래스에 의해 제공됩니다. 정렬, 검색 등 다양한 유형의 일반적인 작업을 지원합니다.
Java 컬렉션에는 두 가지 버전의 데이터 구조가 포함되어 있습니다. 주로 동기화를 지원하는 원래 데이터 구조와 동기화를 지원하지 않는 최신 데이터 구조입니다.
Java Collection Framework는 Comparator 및 Comparable 인터페이스를 사용한 정렬을 지원합니다. Iterator 및 Enumeraton의 이전 버전과 새 버전을 모두 제공하고 변환 방법 등을 제공합니다.
java.util 패키지의 Observable 인터페이스와 Observer 클래스는 관찰자 패턴의 핵심입니다.
 …
 
3. Java IO
 Oreilly Publishing House의 IO에 관한 책은 시중에 단 두 권 있으며, 둘 다 Elliotte Rusty Harold가 집필했습니다. 두 책의 스타일은 기본적으로 동일합니다. 추천 도서는 "Jvava I/O"의 초판입니다. 설명은 비교적 간단하고 내용은 비교적 집중되어 있으며 예가 많습니다. 2권은 올해 5월에야 해외에서 출간됐는데 다행히 인터넷에서 다운받았어요. 726페이지에 달하는 분량이에요. 이번에도 NIO와 IO를 합쳤어요. J2ME 부분도 포함되어 있는데 직렬포트와 병렬포트 통신 부분은 클래스 라이브러리 지원이 부족한 것 같아 실제로 운영을 못 하고 있습니다.
Oreilly에는 "Jvava I/O" 초판과 함께 "Jvava NIO"라는 책도 있는데, 이 책도 아주 좋습니다.
"Jvava I/O"와 "Jvava NIO"를 차례로 읽은 후 java.io 패키지의 소스 코드를 공부할 수 있습니다. 소스 코드를 공부하기 전에 몇 가지 팁을 드리겠습니다.
Java의 io 패키지에는 주로 다음이 포함됩니다.
1 스트림에는 바이트 스트림(바이트 스트림)과 문자 스트림(문자 스트림)이 없습니다. 소위 그들은 서로를 보완하지만 서로 다른 강조점을 가지고 있습니다.
2. 대칭에는 두 가지 종류가 있습니다. 1. 바이트 스트림과 문자 스트림의 대칭 2. 입력 및 출력의 대칭.
3. 브리지: 바이트 스트림을 문자 스트림으로 변환하는 InputStreamReader 및 OutputStreamWriter.
주의해야 할 점:
1. PipedInputStream과 PipedOutputStrem은 두 가지 흥미로운 클래스입니다.
2. Buffered를 지원하는 스트림은 우리가 자주 사용하는 클래스입니다.
3. Java에서 Decorator 패턴의 가장 유명한 응용 분야는 io 디자인입니다. 각 필터 흐름과 특정 흐름 사이의 관계를 주의 깊게 연구하고 디자인 패턴에 대한 더 많은 책을 읽어보세요. 나는 당신이 뭔가를 얻을 것이라고 믿습니다.
4. io패키지를 잘 배우는 것이 넷패키지, rmi패키지를 공부하는 기초가 됩니다...!
4. Java 데이터베이스
데이터베이스 책이 너무 많아서 너무 나빠요! 나는 기본적으로 이 분야의 모든 책을 연구했습니다. Apress의 "JDBC Recipes A Problem Solution Approach"를 읽어 보시기 바랍니다. 그것은 2005년 말에야 해외에서 출간된 것 같습니다. 하지만 반드시 중국어 버전일 필요는 없습니다. 외국 서적의 국내 번역은 종종 지저분하고 읽을 수 없습니다.) 하지만 인터넷에 전자 버전이 있다는 것은 정말 행운입니다. 볼만한 가치가 있습니다. 처음 읽었는데 상당히 만족스러웠던 책인 Wiley에서 출판한 "Java Database Bible"을 추천합니다. 정말 좋습니다! JDBC API를 소개하는 Sun의 저서 "JDBC API Tutorial and Reference"도 좋습니다. 나의 두 번째 JDBC 책은 이 API 세트에 관한 것이었습니다.
하지만 현재 이 책들은 모두 상대적으로 피상적인 API 응용 책입니다. 기회가 되면 JDBC API와 JDBC 구현 내부 내용을 소개하는 책도 들고오겠습니다! 최대한 빨리 열심히 노력해서 모두의 응원을 받을 수 있기를 바랍니다!
그런데 JDBC를 배우는 친구들을 위한 팁:
JDBC의 학습과 사용은 주로 이 API 세트를 기반으로 하며, 사용 과정도 매우 간단합니다. JDBC를 사용하는 일반적인 과정은 다음과 같습니다. :
1. 특정 데이터베이스의 드라이버(드라이버 클래스)를 로드합니다. 일반적으로 Class.forName("드라이버 클래스 이름")을 사용합니다.
2. 연결 con = DriverManager.getConnection(url, 사용자 이름, 비밀번호);
3. 세션 가져오기 - 명령문 stmt = con.createStatement();
4. 작업 실행-결과 rs = stmt.executeQuery("SQL 쿼리 문");
5. 결과--
while(rs.next()){
             String col1 = rs.getString(1); JDBC 전체에서 변경할 수 있는 사항은 일반적으로 다음과 같습니다.
1. Connection 객체로 생성할 수 있는 Statement에는 Statement,PreparedStatement 및 CallableStatement의 세 가지 유형이 있습니다.
2. 다양한 유형의 ResultSet을 생성할 수 있습니다. 단방향 이동과 자유로운 이동을 지원하고, 다양한 수준의 트랜잭션을 지원합니다...
3.
4. 결과 집합의 특수 유형(Blob, Clob, Arrary, Ref, Struct) 열에 대한 작업입니다.
5. 이러한 특별한 유형의 입력 데이터베이스입니다.
6. javax.sql 패키지의 특수 결과 세트(CachedRowSet, JdbcRowSet, WebRowSet) 작업.
7. 다른 하나는 DataSource인데 역시 매우 간단합니다! J2EE의 관리 객체
간단합니다! 나는 모두가 곧 JDBC를 정복할 것이라고 믿습니다.
5. Java 네트워크 프로그래밍
네트워크 프로그래밍 - 신비롭고 도전적인 방향입니다. 그러나 Java 네트워크 프로그래밍에 대해 이야기하기 전에 먼저 Sun Company의 개발자에게 감사의 말씀을 전하고 싶습니다. 그들의 천재적인 아이디어와 지능적인 아키텍처 덕분에 대부분의 Java 프로그래머가 Java 네트워크 프로그래밍을 매우 쉽게 배울 수 있었기 때문입니다.
Java 네트워크 프로그래밍에 관한 책으로는 현재 제3판이 나와 있는 O'Reilly의 "Java Network 프로그래밍"을 추천합니다. 2004년에 해외에서 출판되었으며 706페이지에 달하는 3판의 전자 버전이 이미 인터넷에 나와 있습니다. 매우 포괄적이고 심도가 깊다면 Sun의 일부 내용이 완전히 공개되지 않았기 때문일 수 있으므로 관심이 있는 경우 다운로드하여 가져가실 수 있습니다. 바라보다! 두 번째 책은 1998년 O'Reilly가 출판한 "Java 분산 컴퓨팅"입니다. 기본적인 부분은 더 자세히 설명되어 있으며, 이어지는 예제는 여전히 연구할 가치가 있습니다.
이 책을 읽기 전에 팁을 하나 드리겠습니다.
Java 네트워크 프로그래밍은 실제로 상대적으로 간단하며 시작하기가 매우 빠릅니다. Java 네트워크 프로그래밍은 주로 두 부분으로 구성됩니다. 1.소켓 부분; 하지만 두 번째 부분 역시 첫 번째 부분을 완전히 기반으로 하고 있습니다.
1. 소켓에는 클라이언트 측 소켓과 서버 측 ServerSocket이 포함됩니다. UDP 통신 프로토콜에 해당하는 DatagramSocket 및 DatagramPacket도 있습니다. 즉, 소켓 부분은 다른 고급 프로토콜을 설정하기 위한 기반입니다.
2. URL 클래스는 일반적으로 HTTP, FTP, Telnet과 같은 특정 네트워크 프로토콜과 관련된 네트워크 리소스 로케이터입니다. 이 클래스를 통해 네트워크의 리소스에 연결할 수 있습니다. OpenStream을 통해 OpenConnection 메서드를 통해 io 패키지의 스트림(InputStream) 형식으로 네트워크 리소스를 읽을 수 있습니다. 읽기 작업을 완료할 수 있을 뿐만 아니라 쓰기 작업도 완료할 수 있습니다.
Java 네트워크 프로그래밍에는 일반적으로 위의 두 부분이 포함됩니다. 네트워크 프로그래밍은 IO 및 멀티스레딩과 매우 밀접하게 관련되어 있습니다. 이 부분을 공부하기 전에 이 두 부분을 철저히 이해해야 합니다.
위 부분을 학습하신 후, java.net 패키지에서 관련 소스코드를 학습하시면 됩니다! 소스코드를 모두 공부하기에는 아직 이르다. 전체 넷 패키지에는 java.net 네트워크 프로그래밍의 프레임워크를 형성하는 ContentHandlerFactory, URLStreamHandlerFactory, URLStreamHandler, URLClassLoader 및 기타 보조 클래스가 포함되어 있습니다. 소스 코드를 연구하면 java.net 패키지를 빠르게 이해할 수 있을 뿐만 아니라 확장할 수도 있습니다. 이 패키지는 이러한 사고 방식을 자신의 프로젝트에 적용할 수 있는 기반을 마련합니다.
이제 java.net 패키지의 60%만 이해해야 합니다. 일부의 경우 JDecompiler와 같은 역컴파일 소프트웨어를 사용하여 JDK 설치 디렉터리의 jdkxxxjrelib 디렉터리에 있는 rt.jar을 열고 다음과 같은 소프트웨어를 사용할 수 있습니다. WinRAR sun.net 패키지를 열고 모든 파일을 디컴파일하면 URL 클래스의 세부 정보가 작동합니다. sun.net 패키지를 공부한 후에는 전체 네트워크 프로그래밍에 매우 익숙해질 것입니다.
우리는 이미 네트워크 프로그래밍에 능숙한 것 같습니다. 사실은 그렇지 않습니다. 더 깊이 들어가고 싶다면 시작에 불과합니다. 인터넷에는 우리에게 "힘을 더해줄" 수 있는 훌륭한 네트워크 프로그래밍 라이브러리와 심지어 소프트웨어도 많이 있습니다. 예를 들어, Apache의 HttpCore 및 HTTPConnection은 HTTP 프로토콜과 관련된 두 가지 라이브러리입니다. JGroups는 분산 통신 및 그룹 통신을 연구하기 위한 필수 라이브러리입니다. 그러면 Java 플랫폼일 수 있는 Sun의 JXTA와 같은 P2P 소프트웨어 패키지를 연구할 수 있습니다. Point-to-Point 통신의 미래 표준! 그렇다면 매우 성숙하고 널리 사용되는 P2P 소프트웨어 Azureus를 공부할 수 있습니다! www.sourceforge.net 다운로드 가능!
천리길도 한걸음부터 시작됩니다! 그냥 해! (현재 나는 net 패키지만 연구했으며 가까운 시일 내에 다른 패키지에 대해 계속 더 깊이 탐구할 것입니다. Sun은 몇 가지 이유로 net의 다른 구현 세부 사항을 공개하지 않았습니다. 소스 코드를 텍스트로 연구할 수 있습니다. 출판되지 않은 구현을 책에 작성할 때 독자들을 위해 Java 네트워크 프로그래밍에 관한 책을 출판하고 싶습니다! )
6. Servlet 및 JSP
Servlet 및 JSP에 관한 책도 어디에나 있습니다! 추천할만한 책은 2~3권 정도 밖에 없습니다. 저는 Addison Wiley의 "Servlets and JavaServer Pages: The J2EE Technology Web Tier"를 정말 추천합니다. 이 책도 매우 두꺼운 책입니다! 2003년에 해외에서 출판되었으며 784페이지로 구성되어 있으며 비교적 완전한 설명과 많은 예를 제공합니다. 특히 8장 필터에서는 몇 가지 좋은 예를 제공합니다. 내가 본 서블릿과 JSP에 관한 다른 모든 책은 그다지 깊이가 없습니다! (아마 제가 못 봤을 수도 있겠네요.) O'reilly의 "Java Servlet 프로그래밍"과 "Java Server Pages"는 비교적 이해하기 쉽고 읽을 수 있습니다!
서블릿과 Jsp를 배우기 전에 모두에게 상기시키고 싶습니다.
기본적으로 서블릿은 서블릿 인터페이스를 구현하고 서버 측에 배포되는 서버 측 프로그램입니다! 다른 Java 애플리케이션처럼 작성할 수 있습니다. 데이터베이스를 작동하고, 로컬 EJB를 연결할 수 있습니다. Servlet 프로그램을 작성하는 일반적인 프로세스는 다음과 같습니다.
1. HttpServlet 클래스 상속; doGet, doPost 메소드;
3. 내부 작업 메서드 매개변수에서 재정의된 메서드의 HttpServletRequest 및 HttpServletResponse.
4. 읽기 요청은 HttpServletRequest를 사용합니다. HttpServletRequest를 사용하면 Http 프로토콜의 프로토콜 헤더를 조작하고, 요청의 작업 방법을 가져오고, 요청의 경로를 가져오고, 요청 문자열 및 요청하는 클라이언트와 관련된 정보를 가져올 수 있습니다. 쿠키 및 HttpSession 개체.
5. 쿠키를 사용하면 "sweetheart" 개체를 작동하거나 HttpServletResponse에 쓸 수 있습니다.
6. HttpServletResponse를 사용하여 클라이언트에 정보를 출력할 수 있습니다. HttpServletResponse를 사용하면 다양한 유형의 프로토콜 헤더를 작성하고, 쿠키를 추가하고, 다른 URL을 리디렉션하고, Http 프로토콜 상태 코드를 고객에게 보낼 수 있습니다.
7. HttpSession을 사용하여 세션 내에서 구현하려는 기능을 완료하세요.
동시에 Servlet은 일부 이벤트와 이벤트 리스너(간단한 관찰자 모드)도 제공합니다. 필터와 래퍼(ServletRequestWrapper, ServletResponseWrapper)도 있습니다(간단한 스트림 사용 및 데코레이터 모드 사용).
 Sevlet과 JSP를 서버에 배포해야 합니다. 일반적인 파일 배포 단계와 매개변수 설정 및 이를 프로그램에서 사용하는 방법만 기억하세요.
서블릿을 완전히 이해하고 나면 JSP를 배우는 것은 상대적으로 쉽습니다! Jsp는 완전히 Servlet을 기반으로 하며 HTML 문서(예: PHP와 같은 웹 프로그래밍 언어)에 스크립트를 삽입하려는 프로그래머의 요구를 충족하도록 설계되었습니다. 배우기도 매우 쉽습니다!
모든 것이 매우 차분하고 단순하며 배우기 쉬워 보입니다! 단순한 외관 뒤에는 복잡한 메커니즘이 숨어 있습니다. Servlet과 Jsp를 철저하게 공부하려면 Tomcat과 같은 오픈 소스 소프트웨어의 구체적인 구현을 공부해야 합니다. 서버에 지나지 않습니다. 클라이언트가 웹 페이지를 사용하여 HTTP 프로토콜을 통해 서버에 요청을 보낸 후 서버는 HTTP 요청을 해당 HttpServletRequest 객체로 변환하고 작성한 Servlet을 호출해야 합니다. 서블릿의 HttpServletRequest. HttpServletResponse를 동시에 작동하면 서버는 HTTP 프로토콜의 요구 사항에 따라 HTTP 프로토콜을 사용하여 이 HttpServletResponse를 브라우저에 보냅니다. 클라이언트가 서버측 Jsp 웹페이지를 요청한 후 Tomcat은 컴파일 소프트웨어를 사용하고 javax.servlet.jsp 패키지의 템플릿을 사용하여 jsp 파일을 컴파일하면 서블릿이 됩니다. 후속 작업은 서블릿과 완전히 동일합니다!
Servlet과 Jsp를 기반으로 등장했습니다. 소위 고급 기술인 JSTL, Struts...는 일부 태그와 MVC 패턴을 사용하는 것에 지나지 않습니다.
계속 전진하세요! 승리가 코 앞에 놓여 있습니다! !
7. 멀티스레딩
신비해 보이지만 시작하기 쉽고 마스터하기 어려운 방향!
기분이 좋아지는 책 두 권을 추천해드려요. 우선 제가 이 분야에서 처음으로 읽을 수 있었던 책은 1998년에 Sams에서 출판한 "Java Thread 프로그래밍"이었습니다. 그 책은 매우 잘 쓰여졌고 읽기 쉬웠습니다. 시간을 가져라! 어떻게 하는지 알고 싶다면 직접 확인해 보세요! 두 번째 책 "Java Threads"는 OReilly에서 세 번 출판되었습니다. 최신판은 2004년판입니다. 중국에는 영어판도 있는 것 같습니다. 이 책에서는 IO, Swing, Collection 등 멀티스레딩과 관련된 N방향에 대해 이야기합니다.
몇 가지 팁을 알려드릴게요! Java 클래스 라이브러리에는 멀티스레딩과 관련된 클래스가 많지 않습니다. 여기에는 주로 Thread, ThreadGroup, ThreadLocal 및 InheritableThreadLocal 4개 클래스, 그리고 Runnable 인터페이스와 동기화 및 알림 메서드가 포함됩니다. 개체 개체!
1 Thread는 멀티스레딩의 핵심 클래스로, 멀티스레드를 생성하고 작동하는 일련의 메서드를 제공합니다.
2 ThreadGroup은 Thread를 관리하기 위한 도구 클래스입니다.
3 ThreadLocal 및 InheritableThreadLocal은 Thread에 스레드 객체를 저장하기 위한 안전한 기능과 유사한 기능을 제공합니다!
4 말할 필요도 없이 Runnable!
5 동기화는 동기화 방법과 동기화 블록의 핵심입니다! 여러 스레드가 이 메서드를 호출하면 하나의 스레드만 이 메서드를 사용할 수 있으며 다른 메서드는 차단되므로 작업 대상 개체의 내부 상태에 대한 무결성이 보장됩니다. 스레드가 동기화를 사용하여 메서드나 블록을 호출하면 해당 개체의 개체 잠금을 획득합니다. 블록에서 작업을 완료한 후 개체 잠금이 해제되어 다른 개체가 계속 작동할 수 있습니다.
6 대기, 알림 및 알림 모두 효과적인 대기/알림 메커니즘을 제공합니다. Java 언어의 모든 객체에는 휴게실이 있습니다. 작동하는 객체의 상태가 만족되지 않으면 모든 스레드는 해당 객체의 휴게실에 머물며 다른 스레드가 해당 객체를 작동할 때 객체 잠금을 해제합니다. 그러면 방 안의 스레드가 조건을 확인하고 조건이 충족되면 해당 작업을 수행합니다.
기본적으로 멀티스레딩에는 기본 사항이 너무 많습니다! 간단하지 않나요? 실제 프로그래머에게는 이것만으로는 충분하지 않을 수 있습니다. 멀티스레딩을 제대로 익히려면 java.util.concurrent 패키지를 연구하십시오! 마스터 Doug Lea의 작업은 원래 오픈 소스 일관성 있는 프로그래밍 라이브러리였으며 나중에 Sun에 의해 Java 클래스 라이브러리에 통합되었습니다. 저자의 웹사이트에는 이 라이브러리의 다른 버전도 있습니다! 연구할 가치가 있는 좋은 내용입니다! Hibernation 및 OpenJMS와 같은 오픈 소스 소프트웨어는 모두 이 패키지를 사용합니다!
8. 디자인 패턴
디자인 패턴에 관해서 많은 사람들이 GOF 책을 추천할 것입니다. 이 책은 아마존에서 별 5개를 받은 추천 책입니다. 그러나 오랫동안 자바를 배우지 않은 사람, 특히 자바 초보자에게는 이 책을 추천하지 않는다. 주된 이유는 책에 나오는 예제가 기본적으로 C++로 되어 있고, 많은 세부 사항이 충분히 명확하게 설명되지 않았기 때문입니다.
제가 모두에게 추천하는 첫 번째 책은 Yan Hong 박사의 "Java and Patterns"입니다. 중국인이 쓴 디자인 패턴에 관한 첫 번째 책입니다. 꽤 흥미롭고 중국 문화와 패턴이 많이 통합되어 있습니다. 많은 개념, 예제 및 클래스 다이어그램이 있으며 비교적 간단합니다! 아주 좋은 입문서이자 또 하나의 큰 책입니다!
두 번째로 와일리출판사에서 출간된 "Pattern In Java" 세권을 추천드려요. 첫 번째만 읽어봤는데 두 번째는 별로인 것 같은데, 세 번째는 꽤 괜찮은 것 같아요!
세 번째 책은 2003년 China Railway Press에서 출판된 멀티스레딩 모드에 대한 중국어 번역판(드문 중국어 번역판) "Java Multi-threading Design Patterns"입니다. 멀티스레딩 모드는 매우 간단하게 설명되어 있습니다. , 많은 그림과 각 장의 연습 문제, 그리고 마지막에 답변이 포함되어 있습니다! 멀티스레딩 모드에 대한 연구가 시작되었습니다!
올해 출간된 헤드 퍼스트 시리즈의 네 번째 책 '헤드 퍼스트 디자인 패턴'은 헤드 퍼스트 시리즈 책의 장점을 고수하며, 수많은 클래스 다이어그램과 풍부한 예제, 흥미로운 주석을 갖추고 있습니다. 구매할 가치가 있습니다!
둘째, J2EE 방향에서는 Addison Wesley가 2002년에 출판한 "Patterns of Enterprise Application Architecture"를 공부하고 읽을 수 있습니다. 많은 유명 인사들의 작품이 기업 정보 통합에 대해 이야기합니다! Sun에서 제공하는 "J2EE PATTERNS SL500"도 매우 좋습니다! 아마존에서 별 4개 반을 받은 책 "Holub on Patterns"를 추천하기엔 너무 늦었습니다. 하지만 위의 네 권의 책에 대해 잘 모르는 독자들은 읽지 마세요! 오히려 더 피곤해질 수도 있어요!
저는 아주 우여곡절 끝에 디자인 패턴을 배웠어요. 20권 정도 책을 연달아 읽었습니다. 처음에 기본적으로 이해하지 못한 책을 제외하고 Yan Hong 박사의 "Java and Patterns"를 4번 읽었습니다! 대학원 1학년 때 선생님께서 선택과목으로 컴퓨터과 석사, 박사과정 학생과 함께 마지막 수업에 40~50명 정도 수업을 주셨는데, 기억이 나네요. 그리고 3명 이상이 그것을 이해하지 못했습니다. (기본이 빈약합니다. 주로 C++ 언어를 전혀 이해하지 못합니다.) 저는 Java 언어에 대한 이해가 부족하다고 생각했습니다. 좋아, 그래서 "Java and Patterns"를 빌렸는데, 아직도 전혀 이해가 안 됐어요. 다행히 대학원 3학년 때 상해 교통대학교 라오 루오난(Rao Ruonan) 교수님의 자바 OOP 언어 강의를 듣고 결합북 패턴 등 3가지 디자인 패턴을 이해하게 되었고 큰 관심을 갖게 되었습니다. 다른 패턴으로 그들을 정복하고 싶었습니다! 일을 마치고 처음 구입한 책은 『Java and Patterns』였습니다. 1,000페이지가 넘는 이 거대한 책을 처음 공부하는데 2개월이 걸렸고, 세 번째는 약 15일 만에 끝낼 수 있었고, 메모를 많이 했어요! 그때부터 통제불능이었다.
적합한 책을 선택하고 공부에 푹 빠져보세요. 나는 당신이 곧 시작할 것이라고 믿습니다!

Java 언어를 배우기 위한 8가지 간단한 부분, 이것은 Java 언어 학습의 시작일 뿐입니다! 이 모든 것을 이해한다면 당신은 기껏해야 Java 프로그래머에 불과하며 앞으로의 길은 멀고도 험할 것입니다! 데이터베이스 구현 소스 코드, 서블릿 서버 소스 코드, RMI, EJB, JNDI, 관점 지향 프로그래밍, 리팩토링, ANT 도구, Eclipse 도구, Spring 도구, JBoss, JOnAS, Apache Geronimo 및 기타 J2EE 서버에 대해 계속해서 연구할 수 있습니다! 이것들을 공부한 후에는 훌륭한 J2EE 아키텍처가 될 수 있습니다! 프로파일러, 컴파일러, JNODE(Java로 작성된 운영 체제)를 계속 공부할 수 있습니다...

위 내용은 자바 프로그래머가 읽어야 할 좋은 책을 공유해 보세요의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.