>  기사  >  Java  >  자바 프로그래머가 읽어볼만한 좋은 책 추천해주세요

자바 프로그래머가 읽어볼만한 좋은 책 추천해주세요

伊谢尔伦
伊谢尔伦원래의
2016-12-05 10:46:471270검색

"가장 좋은 학습 방법은 책을 읽는 것입니다." 이것은 제가 스스로 공부하고 경험을 쌓은 후 처음 경험한 것입니다. 개인적으로 책을 읽으면 두 가지 장점이 있다고 생각합니다.

출판될 수 있는 책은 고민과 다듬기, 검토를 거듭해야 하기 때문에 전문적인 관점에서 볼 때 좋은 책의 가치는 훨씬 뛰어납니다. 기타 자료
직접 책에 있는 코드를 입력할 때 편리합니다
"책을 읽은 후 다시 실력을 향상하는 가장 좋은 방법은 관련 좋은 블로그 게시물을 읽는 것입니다." 책은 수백 페이지에 달하는 경우가 많기 때문에 좋은 블로그 게시물은 책을 읽고 공부한 후 정리하고 정리하는 데 매우 유용합니다. 물론, 제가 말하는 것은 아닙니다. 여기에는 나만의 학습 방법이 있으므로 자세한 내용은 다루지 않겠습니다.

많은 프로그래머들은 책을 읽고 싶은 충동을 느끼지만 어떤 책을 읽어야 할지 모릅니다. 아래에서는 Java 프로그래머에게 좋은 책을 추천해 드리겠습니다. (각 책의 저자는 굵은 글씨로 빨간색으로 표시되어 있습니다.) , 그 중 대부분이 제가 평소에 즐겨 읽는 책들입니다.

시중에는 디자인 패턴을 설명하는 책이 많이 있습니다. 앞서 책을 읽는 것이 가장 좋다고 했지만, 디자인 패턴에 관심이 있는 친구들에게는 이 블로그를 추천합니다. 디자인 패턴에 대한 이 블로거의 설명은 매우 훌륭합니다. 내용의 90%는 문제가 없고 배울 가치가 있다고 생각합니다. 디자인 패턴을 설명하는 일반적인 경로는 다음과 같습니다.

1. . 이 디자인 패턴의 정의

2. 이 디자인 패턴의 구조를 그림과 텍스트로 설명

3. 이 디자인 패턴의 구현을 상세한 코드 형식으로 작성합니다

4. 보충 내용

5. 이 디자인 패턴의 장점과 단점을 설명하세요

바로 위의 디자인 패턴에 대해 우리가 주목하고 배우는 지식 포인트가 아닐까요?

그러나 동일한 디자인 패턴을 쓰는 방법은 여러 가지가 있다는 점을 네티즌들에게 상기시켜 드리고 싶습니다. 그렇다고 특정한 글쓰기 방식만이 디자인 패턴이라는 뜻은 아닙니다. 예를 들어 어댑터 패턴에 주의를 기울일 때 어댑터 패턴이 무엇인지에 주의해야 하며 어댑터 패턴을 어떻게 작성해야 하는지에 주의해야 합니다. 어댑터 패턴은 어댑터 패턴이 아닙니다. 이것을 기억하세요. 디자인 패턴을 배우면 코드에 사용되는 디자인 패턴에 대해 더 깊은 이해를 갖게 될 것입니다.

"Java Virtual Machine에 대한 심층적인 이해: JVM 고급 기능 및 모범 사례"

만약...else만 작성할 수 있는 Java 프로그래머로 만족하지 못한다면.. ., 하지만 더 나아가서 몇 가지 예를 들어 보겠습니다.

1. Java 코드의 기본 작동 메커니즘 이해

2. 성능 문제 찾기

3. 전체 시스템에 대한 성능 튜닝 훌륭함

4. 온갖 이상한 온라인 및 오프라인 문제 해결

5. 더 높은 수준에서 자신의 프로젝트에 적합한 가상 머신을 맞춤화하세요

그렇다면 자바 가상머신은 꼭 배워야 할 기술이다. "Java Virtual Machine에 대한 심층적인 이해: JVM 고급 기능 및 모범 사례"의 저자는 Zhou Zhiming입니다. 이 책은 지난 6개월간 중국에서 출간된 Java 가상 머신에 관한 최고의 책이라고 할 수 있습니다. 적어도 이 책을 5번은 읽어라. 중국의 가상 머신에 관한 이 책 외에도 실제로 다른 책도 몇 권 구입했지만 얼핏 보면 "Java Virtual Machines에 대한 심층적 이해"라는 책에도 많은 내용이 들어 있습니다. JVM 고급 기능 및 모범 사례'를 참조하세요.

"Java Virtual Machine에 대한 심층적인 이해: JVM 고급 기능 및 모범 사례" 책이 전자 버전으로 제공되고 온라인 검색을 통해 다운로드할 수 있다는 점도 언급할 가치가 있습니다. 그러나 관심 있는 친구는 책을 구입하여 읽어보는 것이 좋습니다. 다운로드한 전자 버전은 "Java Virtual Machine에 대한 심층적인 이해: JVM 고급 기능 및 모범 사례"의 최신 개정판과 비교할 때 일반적으로 이전 버전입니다. , 저자가 새로 추가한 내용이 많이 있습니다. 지식 포인트가 없습니다.

"HotSpot in Action"

모든 Java 가상 머신은 Java 가상 머신 사양을 따릅니다. 시중에는 수십 개의 Java 가상 머신이 있습니다. "Java 가상 머신에 대한 심층적인 이해: JVM. 『고급 기능 및 모범 사례』 책에서 논의하는 가상 머신은 특정 가상 머신을 대상으로 하지 않고, 자바 가상 머신 사양의 관점에서 자바 가상 머신을 설명한다.

우리가 일반적으로 사용하고 심지어 상업적으로 사용하는 대부분의 Java 가상 머신은 Sun의 HotSpot입니다. cmd로 명령줄을 입력하고 "java -version" 명령을 사용하면 확인할 수 있습니다. Java 가상 머신 사양을 기반으로 가상 머신의 일부 세부 사항이 어떻게 구현되는지 더 깊이 이해하려면 Chen Tao가 쓴 "HotSpot Practice"라는 책을 읽어보세요. 그러나 HotSpot의 소스 코드는 C/C++로 작성되었기 때문에 독자는 C/C++에 대한 기초가 매우 탄탄해야 합니다. 이 두 언어에 익숙하지 않은 경우에는 이 책을 읽는 것이 큰 도움이 되지 않을 수 있습니다. 너.

마지막으로 관심이 있으시면 먼저 OpenJDK를 온라인으로 다운로드해 보시기 바랍니다. HotSpot의 소스 코드가 포함되어 있습니다.

"Java 동시 프로그래밍 실습"

이 책은 자바 프로그래머가 꼭 읽어야 할 책 10권에 자주 포함되지만, 개인적으로는 별로 추천하고 싶지 않습니다.

"Java 동시 프로그래밍 실습"의 저자는 Brian Goetz입니다. 이 책을 두 번 정도 읽었습니다.

1. code Less

2. 설명은 많이 하고 연습은 적게

이것이 책을 쓰는 외국인의 특징이 아닐까 싶습니다. Java는 북미 국가(캐나다, 미국)에서 개발 및 유지 관리되기 때문에 외국인은 Java의 이론적 지식 시스템의 모든 측면을 매우 명확하고 철저하게 파악하고 있습니다. 이 책을 펴서 읽어보세요. 멀티스레딩이 무엇인지, 교착상태가 무엇인지, 경쟁이 무엇인지, 스레드 안전성이 무엇인지 등을 읽어보세요. 지식 포인트의 모든 측면이 많은 텍스트로 설명되어 있어 사람들이 매우 지루하고 이해하기 어렵다고 느낍니다. 독자들은 상당한 진전을 이루었습니다. 나는 이 책을 두 번 읽었는데, 한 눈에 열 줄의 의미를 담고 있다. 내가 관심 있는 곳에 집중하겠다.

어쨌든 자바 프로그래머가 꼭 읽어야 할 책 10권에 자주 들어가는 책인 만큼 누구에게나 추천해야 할 책이다.

"Java 멀티스레드 프로그래밍 핵심 기술"

"Java 멀티스레드 프로그래밍 핵심 기술"의 저자 Gao Hongyan. 멀티스레딩을 배우고 싶은 친구들은 이 책을 적극 추천합니다. 제 개인 블로그에 있는 20개 이상의 멀티스레딩 관련 포스팅이 이 책을 바탕으로 정리되어 정리되어 있습니다. .

이 책은 『Java 동시 프로그래밍 실습』의 반대입니다. 이 책은 대규모 코드 + 소규모 상세 설명이 특징입니다. 이는 중국인이 쓴 책의 실용적 스타일과 관련이 있을 수 있습니다. 이 책은 스레드 안전성, 동기화, 재진입, 타이머 등을 상세한 코드로 설명하고 있으며, 각 큰 지식 포인트 아래에 여러 개의 작은 지식 포인트가 자세히 설명되어 있어 매우 실용적인 가치가 있습니다.

관심 있는 분들은 이 책에 나오는 코드를 따라 입력하고, 실행하고, 생각하는 세 단계를 거치면 멀티스레딩을 사용하고 이해하는 데 확실히 많은 시간이 걸릴 것이라고 믿습니다. 몇 가지 큰 진전이 있습니다.

그러나 이 책의 단점은 CountDownLatch, Sephore, CyclicBarrier, Future, Callable 등과 같은 Java 동시성 패키지의 일부 클래스를 다루지 않는다는 것입니다. 핵심 CAS 및 AQS는 다루지 않으며, 주요 클래스의 구현도 언급되지 않았습니다. 물론 이 책을 공부한 후에도 이 지식을 계속 공부하고 연구한다면 당신은 천천히 매우 강력한 멀티스레딩 전문가로 성장할 수 있을 것이다.

"효과적인 자바 중국어판"

이 책은 제가 유일하게 사지 않은 책입니다. 저는 이 책을 제 블로그 포스팅인 Java Code Optimization(장기 업데이트)에서 처음 접했습니다. 그 당시 친구가 이 책을 사고 싶다고 말했는데 시간이 없어서 못 읽었습니다. 지난 두 달 동안 서점에 갔는데 아쉽네요. 앞으로는 꼭 시간을 내서 이 책을 사겠습니다.

"Effective Java Chinese Edition"의 저자는 Joshua Bloch입니다. 이 사람은 Google의 수석 설계자이며, 슈퍼 기술 전문가입니다. 제가 이 책을 읽어보지 않았기 때문에 논평할 수는 없지만, 이 책의 인기와 저자의 배경으로 판단하면(한 가지 더, 이 책은 자바의 아버지인 제임스 고슬링 박사가 추천한 책이기도 합니다), 나는 이 책이 읽을 가치가 있는 좋은 책임에 틀림없다고 믿는다.

좋은 코드는 모든 Java 프로그래머가 추구해야 할 것입니다. 오늘 좋은 코드를 작성하면 나쁜 코드를 작성하는 것보다 성능이 향상된다는 것이 아닙니다. 코드의 가독성은 잠재적이고 알려지지 않은 많은 문제를 방지하고 코드가 온라인 상태가 된 후 코드를 유지 관리하는 데 시간을 낭비하지 않도록 해줍니다. 이는 시간 비용, 인건비 및 위험 비용 측면에서 매우 높습니다.

"Java 웹 기술 내부자 심층 분석"

"Java 웹 기술 내부자 심층 분석", 저자 Xu Lingbo, Taobao 엔지니어.

이 책을 한 단어로 요약하자면 '완성'입니다. HTTP, DNS, CDN, static, Jetty, Tomcat, Servlet, Spring, MyBatis 등 정말 포괄적입니다. 광범위한 지식을 다루고 있지만 특정 내용에 초점을 맞춘 책과는 다릅니다. 지식 포인트는 매우 깊이 있고, 이 책은 자바 웹에서 사용되는 기술의 내부 이야기를 간략하게 설명하여 독자들이 기술적 내용을 합리적으로 이해할 수 있도록 하려는 의도가 있다고 생각합니다. 이러한 지식 포인트의 내부 이야기.

그렇지만 각 지식 포인트에 대한 지면이 많지는 않지만 기본적으로 핵심 내용을 다루고 있어 정말 보람있는 책입니다. 이러한 기술의 기술적 세부 사항에 대해 더 알고 싶다면 관련 서적을 구입하거나 온라인에서 직접 정보를 확인해야 합니다. 새로운 아이디어를 끌어내려는 것처럼 느껴지거나 마스터가 당신을 인도한다고 말할 수 있습니다. , 그리고 스스로 연습합니다.

"대형 웹사이트 기술 아키텍처의 핵심 원칙 및 사례 분석"

이 책을 설명하는 한 단어, 이 책을 설명하는 두 단어, 이 책을 설명하는 세 단어, 아주 멋지다. 하하, 알았어. 계속 얘기하면 다른 사람들이 나를 트롤이라고 생각할 수도 있다.

의 저자는 전 알리바바 기술 전문가인 Li Zhihui입니다.

대부분의 Java 애플리케이션은 웹에서 사용됩니다. 오늘날 더 큰 웹 애플리케이션은 분산 시스템이어야 합니다. 그렇다면 분산 시스템에서는 어떤 기술이 사용됩니까? 작은 웹사이트에서 대규모 웹사이트가 어떻게 성장하나요? 웹사이트를 안전하게 유지하는 방법은 무엇입니까? 분산 시스템에서는 캐시를 사용합니다. 어떤 캐시가 있나요? 캐시를 사용할 때 주의할 점은 무엇인가요?

분산 유통에 대한 모든 지식이 이 책에 반영되어 있습니다. 생각하지 못하면 쓸 수도 없습니다. 게다가 기본적으로 한두 번 읽어도 아주 쉽습니다. 무슨 일인지 메모해 보세요. 몇 번 더 읽으면 배포에 대한 이해가 확실히 깊어질 것입니다. 그리고 분산된 지식을 담고 있을 뿐만 아니라, 좋은 건축가가 되는 방법을 매우 현실적으로 기술하고 있습니다. 사실 이것은 건축가가 되고 싶은 독자들만을 위한 것이 아니라, 독자들에게도 조금이나마 도움이 되는 글이라고 생각합니다. 좋은 건축가가 되는 방법, 자신의 의견을 더 잘 표현하는 방법, 다른 사람이 자신의 목소리에 더 주목하게 만드는 방법, 다른 사람의 장점을 보고 많은 것을 얻는 방법에 대한 제안입니다.

"대형 웹 사이트 시스템 및 Java 미들웨어 실습"

"대형 웹 사이트 시스템 및 Java 미들웨어 실습"의 저자 Zeng Xianjie는 Taobao의 기술 이사이며 최소한 P8이 있어야 합니다. 알리바바에서.

이 책의 내용 중 분산 시스템의 진화, CDN, CAP 이론, BASE 이론 등 Li Zhihui의 전 저서 "대형 웹사이트 기술 아키텍처의 핵심 원리 및 사례 분석"과 일부 중복되며, 등등. 이것은 또한 이것이 분산 시스템이거나 대규모 웹 사이트의 초점임을 보여줍니다.

이 책에서 강조할 핵심은 미들웨어라는 단어입니다. 미들웨어는 분산 시스템에서 매우 중요한 역할을 하며, 모듈 간 의존성을 분리하고 줄이는 것이 가장 중요합니다. 이를 줄여 각자가 독립적으로 자신의 기능을 개발할 수 있다는 것이 소프트웨어 공학 개발의 목표이자 원동력이라고도 할 수 있다.

따라서 이 책의 내용 중 일부는 미들웨어를 기반으로 하여 미들웨어와 JMS에 대한 다양한 지식을 자세하게 설명하고 있으며, 분산 시스템에 익숙하고 미들웨어에 대해 연구하고 싶은 독자에게 적합합니다. .

"Paxos에서 ZooKeeper 분산 일관성 원칙 및 관행까지"

"Paxos에서 ZooKeeper 분산 일관성 원칙 및 관행까지", 저자 Ni Chao, Alibaba 엔지니어.

이 책은 위의 "대형 웹사이트 시스템과 자바 미들웨어 실습"처럼 제가 최근에 공부하고 있는 책으로, 분산 컴포넌트 카테고리에 속하며 물론 다소 심도 있는 내용입니다. 내 개인적인 관심사이기도 하다. 물론, 훌륭한 대규모 웹 사이트 아키텍트, 기업의 기술 이사 등을 열망한다면 이러한 지식을 마스터해야 합니다.

이 책은 분산 시스템의 기본 이론부터 시작해 팍소스(Paxos) 알고리즘에 대해 이야기하고 마지막으로 이를 주키퍼(Zookeeper)에 단계별로 소개한다. 물론, 아직 이 책에서 팩소스 알고리즘의 2장을 아직 이해하지 못했기 때문에 더 이상의 의견을 표현하는 것은 현재로서는 불편합니다. (팍소스 알고리즘은 사실 좀 이해하기 어렵고 이해하기 쉽지 않습니다.) , 다음 장은 아직 사용할 수 없습니다.

네티즌들이 일하는 회사가 주키퍼를 사용하고 있는데, 주키퍼에 관심이 있고 그 원리를 연구하고 싶다면 이 책이 최고의 선택이 될 것이다.

"처음부터 MySQL 5.6 배우기"

"처음부터 MySQL 5.6 배우기", Liu Zengjie 및 Li Kun 작성.

Java 프로그래머로서 데이터베이스가 DBA의 문제라고 생각해서는 안 된다고 생각합니다. 데이터베이스 역시 Java 프로그래머가 갖춰야 할 지식입니다. 데이터베이스 성능 최적화에 대한 풍부한 경험은 Top에게 꼭 필요한 기술입니다. 프로그래머.

현재 주류 데이터베이스에는 Oracle과 MySQL이 있습니다. 물론 MySQL은 두 가지 주요 이유가 있다고 생각합니다.

1. MySQL은 Oracle보다 가볍고 작습니다. 설치하고 제거하는 것이 더 편리합니다. SQL은 실제로 동일합니다. 데이터베이스를 배우고 싶다면 집에서 편리하게 공부할 수 있습니다. Oracle을 사용하는 경우 비교 학습 방법을 사용하십시오. 그리고 MySQL의 차이점은

2. 알리바바가 2009년 IOE로의 움직임이 진행되면서 많은 국내 인터넷 기업들이 MySQL을 데이터베이스로 선택하게 될 것입니다. MySQL은 무료이기 때문에 비용이 절약되고 필요가 없습니다. 뭔가 잘못되면 오라클에 의존

제가 MySQL을 배울 때 추천하는 것은 "MySQL 5.6 Learning from Scratch"인데 제가 직접 공부하고 읽어본 책인데 꽤 좋다고 생각해서 책에 나와있어요. 책의 지식 포인트는 매우 상세하고 포괄적입니다. 이 두 가지 포인트가 독자가 책을 선택하는 주요 기준이 아닐까요?

"Spring 소스 코드 심층 분석"

"Spring 소스 코드 심층 분석", 저자 Hao Jia.

Spring 프레임워크는 너무 잘 구성되어 있고 기능도 강력해서 많은 개발자들이 Spring만 알고 팩토리가 무엇인지, 싱글톤이 무엇인지, 에이전트가 무엇인지 모르고 있습니다(내 실제 경험으로는 다른 사람을 인터뷰하는 것). 이 강력한 프레임워크에는 내부에 매우 복잡한 구현이 있어야 합니다. 이는 프로그램이 Spring을 사용하면 문제를 일으킬 수 있습니다. 오류일 수도 있고, 예외일 수도 있으며, 프로그램 실행 결과가 예상한 것과 다를 수도 있습니다. . 때로는 혼란스러울 수도 있습니다. 온라인으로 정보를 확인하거나 다른 사람에게 물어보는 것 외에는 더 나은 해결책이 없는 것 같습니다.

Spring의 소스 코드를 공부하는 것은 개인적으로 많은 이점이 있다고 생각합니다.

1. 프레임워크의 내부 구현을 이해한 후 주도적으로 문제를 해결할 수 있습니다. , 그리고 다른 사람에게 의존할 필요가 없습니다

2. Spring 프레임워크의 내부 구현은 많은 디자인 패턴과 좋은 코드 디자인 아이디어를 사용합니다. 이를 통해 코드 작성 및 디자인 패턴에 대한 이해가 크게 향상됩니다. 🎜>

3. Spring 프레임워크를 공부하면 코드를 읽는 능력이 크게 향상됩니다. Spring이 내부적으로 어떻게 구현되는지 명확하게 공부할 수 있다면 다른 프레임워크의 소스 코드도 어렵지 않을 것입니다.

전체적으로 일반 프로그래머와 좋은 프로그래머의 가장 큰 차이점 중 하나는 코드를 읽는 능력이라고 생각합니다. 전자는 남이 작성한 것만 사용하는 반면, 후자는 잘 사용할 뿐만 아니라, 또한 다른 사람이 작성한 것의 맨 아래 레이어가 어떻게 구현되는지 명확하게 알면 문제가 발생할 때 쉽게 해결할 수 있습니다.

스프링 소스코드, 정말 철저하게 공부하고 스프링 소스코드를 명확하게 적고 싶다면 "스프링 소스코드 심층 분석"이라는 책을 개인적으로 추천합니다. 책만으로는 부족하다. 400페이지에 달하는 분량에 저자는 최선을 다해 스프링 소스 코드를 구현하는 방법을 설명하기는 쉽지 않지만, 저자의 설명과 독자의 연구를 결합하면 분명 도움이 될 것이라고 믿는다. Spring 구현에 대한 더 깊은 이해를 제공합니다.

후기

위 내용은 제가 자바 개발자들에게 추천해 볼만한 좋은 책들입니다. 하지만 이 책들에는 자바 기초나 자바 튜토리얼이 없다. 추천하지 않는다는 것은 아니지만, 자바 기초 기술을 직접 배운 지 몇 년이 지났기 때문에 공부할 때 읽은 것을 다 잊어버렸다. 내가 읽지 않은 책을 모든 사람에게 무책임하게 추천하는 것은 아닌가?


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