Books to be read for java Internet and books for java Internet

Source: Internet
Author: User

Books to be read for java Internet and books for java Internet
Java learning route: As a Java programmer, the most painful thing is that you can choose a wide range, and you can read too many books, which is often at a loss. I want to select some technical books I have read and recommend them to you in the order of study, especially Java programmers who want to continuously improve their technical skills. In addition, you can join the 457036818 discussion group to share your knowledge about JAVA.
I. Java programming Basics
Programmers who have no Java programming experience need to get started and read any introductory books at will. At this stage, you need to quickly master the basic Java syntax and basic usage. The purpose is to "Never get started ", get familiar with Java first. It takes a short time to quickly go through the Java syntax and write more code by using tokens with guesses ".
1Java programming ideas
After some Java programming experience, you need to "know why. At this time, "Java programming ideology" is a good book that gives you a clear understanding of the basic object-oriented knowledge and basic Java syntax, the basic class library has a clear explanation, which can help you lay a good foundation for Java programming. The disadvantage of this book is that it is too thick and coarse. It is not suitable for modern people to learn quickly. Therefore, it is not worth reading every chapter in this book, you can focus on it in depth.
2Chinese version of Agile Java
This book was handed to me by the publishing house. As soon as I got it, I had no pages on the bookcase, but I did it when I sorted it out two days ago, I found this is definitely a good book! A major feature of this book is unit testing and tdd throughout the book. In the process of teaching you all kinds of important basic knowledge of Java, it has a subtle influence on your Agile programming thinking and moving towards TDD. In addition, this book is quite new. Based on the JDK5.0 syntax, it is also good to learn the new JDK5.0 syntax. This book is also very suitable for the selection of content. After all, the Java language has a huge library and can talk too much about it. The content and content selected in this book are very suitable, it will give you the least time to master the most important knowledge of Java, and cultivate excellent programming ideas by the way. This is really a rare good book.
Although the author positions this book at the entry level, I am not sure if it is a little deep in getting started. I also want to flip this book and learn it when I have time.
Ii. Advanced Java programming
To lay a good Java Foundation, more practical experience is needed. I don't think there is any shortcut. There are two books worth reading at this stage of your programming career, cultivating good programming habits and improving your code quality.
1, Refactoring to improve the design of existing code
This book is very popular. You don't need to introduce it much. You can flip it over in your spare time and prove it with your own practices. This book has a subtle influence.
2, Test-driven development by Example
This book is very thin and seems to have no burden. You can find a weekend afternoon to read the book and complete all the examples of this book in one afternoon. The role of this book is to help you cultivate TDD ideas through practice.
Iii. Path to Java architect
At this stage, we should be very skillful at using Java programming and have a good programming idea and habit. However, we may still lack the grasp of the overall architecture of the application software, this is the first step towards architects.
1, Expert One-on-One J2EE Design and Development
This book is a famous book by Rod Johnson and is very classic. springframework was born from the code in this book. But it seems that this book does not have a Chinese translation.
2, Expert One-on-One J2EE Development without EJB
This book was translated by gigix, with the participation of many industry experts. Although the signed translator is JavaEye, JavaEye does not contribute much, but it is truly the name of the translator.
The above two books are the classic masterpiece of Rod Johnson, a must-read book for Java architects. Among the books recommended, I have read the most carefully and carefully-read books. At that time, I almost read this book with all my worries, when I was a child, I picked up the lights and went to night to read Jin Yong's martial arts novels. The content in the book and the knowledge of my own experiences confirmed one by one, and I was very incisive. After reading this book, I was able to get through the channels, A sense of explosive power.
However, after reading some comments from others, it seems that the reading experience is not so high, maybe because of the different knowledge accumulation and experience of each person. At that time, it was just that the accumulation of experience and knowledge was rich enough, but there was no systematic arrangement to form a complete knowledge system.
3Enterprise Application Architecture Model
Another famous book of Martin, but this book is extensive and not carefully read. This book seems more suitable for framework developers. For example, if you plan to write an ORM yourself, this book must be viewed. However, it doesn't matter if you don't look at the application. But if you are free, we recommend that you read it carefully to see why the framework is designed like this, such a level can be promoted to the perspective of the Framework designer to think about the problem. Martin's books have always been highly respected, but he has never been as serious as Rod Johnson's books.
4Agile Software development principles, models and practices
The famous book of Uncle Bob, the classic masterpiece of agility, is quite special. It is not so much a book about the software development process as a book about the software architecture, this book takes a lot of space to talk about various object-oriented software development models. I personally think that after reading this book, you don't have to read GoF's design pattern.
4. Software Development Process
Understanding the software development process is not only to improve the good programming habits of individual programmers, but also to enhance the foundation of team collaboration.
1, UML Essence
In fact, UML is not necessarily related to the software development process, but it is a tool required for the software team to collaborate and communicate and write software documents. However, there are not many practical diagrams in UML. It is enough to read this book and there is no need to chew on things like the UML user guide. I would like to remind you that the Chinese translation of this book is very bad. You are advised to read the original English version if necessary.
2, Parsing eXtreme Programming Embracing Change, XP
This is the second version of Kent Beck's masterpiece. There is nothing to say. You must read books.
3, Unified software development process UP
In fact, UP and agile are not necessarily in conflict. UP also emphasizes iteration and testing, but the document and process-driven by UP are not agile. In any case, UP is worth reading. After all, there are very few enterprises that really accept agility in China. They still need to arm themselves with UP, even if they are wearing up xp.
4, Agile modeling AM
Scott Ambler's masterpiece, this book is very progmatic, tells how to be agile and UP, unify agility and UP, and puts forward many progmatic suggestions and practices. We can read three books, resolution eXtreme Programming Embracing Change, unified software development process, and agile modeling, to see the differences between XP and UP, let's look at how AM unifies XP and UP, and integrates these three theories into one furnace to form its own theoretical system. Then you can write a book.
V. Software Project Management

If you are suddenly Promoted to a project manager by a leader without any project management experience, you will be confused, therefore, PMP is definitely far from quenching thirst.
1, Fast Software Development
This is also a masterpiece. In this case, if you have a book in hand, you will have a senior project management adviser to give you advice, and you will no longer have to worry about your incompetency. This book is not about management theory. In actual project management, these theories do not solve problems. This book is a bit similar to "software project ideas, I listed the various problems faced by various software projects and the ideas on how to solve the problems. I just need to make some changes and find someone to take the medicine.
Vi. Summary
This list of recommended books does not list popular software framework learning books, such as Struts, Hibernate, Spring, or AJAX books. This is because these books are easy to get out of date, and the life cycle of most of the above books is long enough, so it is worth buying and collecting them.
[2. Top 10 Java books]
Below are ten good Java books recommended on Java Inside.
1) Java Language Specification,Third Edition(By James Gosling)
This book is written by the inventor of Java technology and is the authoritative technical guide of Java TM programming language. If you want to know the exact meaning of the language structure, this book is the best resource.

2)Valid Java,Second Edition(By Joshua Bloch)
This book introduces 78 practical experience rules in Java programming. These experience rules cover the solutions that most developers face every day. A comprehensive description of the technologies used by Java platform design experts reveals what should be done and what should not be done to generate clear, robust, and efficient code ..
Each rule in this book appears in the form of a short and independent small article, and further describes it through the example code. This book provides comprehensive content, clear structure, and detailed explanations. It can be used as a reference for technical personnel ....

3)Java Concurrency in Practice(By Brian Goetz)
With the popularization of multi-core processors, the use of concurrency becomes the key to building high-performance applications. Java 5 and 6 have made significant progress in developing concurrent programs, improved the performance of Java virtual machines, improved the scalability of concurrent classes, and added a wealth of new concurrent building blocks. In this book, the creators of these convenience tools not only explain how they work, how they are used, but also explain the reasons for their creation and the design patterns behind them. This book can be both theoretical support for readers and technical support for building reliable, scalable, and maintainable concurrent programs. This book not only provides a list of concurrent APIs and its mechanisms, but also provides design principles, models, and thought models that allow us to build correct and well-performing concurrent programs.
Readers of this book are programmers with certain Java programming experience, programmers who want to learn about Java SE 5 and 6 improvements and new features in thread technology, as well as Java and concurrent programming enthusiasts.

4) Java Puzzles: Traps, Pitfalls and Corner Cases(By Joshua Bloch)
Another classic masterpiece of Java-Java Puzzlers, Amazon five-star books. I think you know more about Java? Are you a code probe? Have you ever spent several days tracking bugs caused by traps and defects in Java or its class libraries? Do you like quiz? This book is suitable for you!

5)Thinking in Java(By Bruce Eckel)
This book has won widespread praise from programmers around the world. Even the most obscure concept will be resolved in front of Bruce Eckel's text affinity and small and direct programming examples. From the basic syntax of Java to the highest level of features (in-depth object-oriented concepts, multithreading, automatic project building, unit testing and debugging), this book will guide you through the process.
It is not hard to tell from the awards and comments from readers around the world that this book has won. The author of this book has many years of teaching experience and has unique and in-depth insights into C, C ++, and Java languages, it explains obscure abstract concepts in simple and straightforward examples. This book consists of 22 chapters, including operators, control execution processes, access permission control, reuse classes, polymorphism, interfaces, exception handling errors, strings, generics, arrays, containers, Java I/O systems, enumeration type, concurrency, and graphical user interface. These rich content includes the basic syntax and advanced features of the Java language, which is suitable for Java programmers at all levels to read, it is also an excellent teaching material and reference book for colleges and universities to teach object-oriented programming language and Java language.


6)Better, faster, lighter Java(By Justin Gehtland, Bruce A. Tate)
Java developers are deeply immersed in complexity and cannot extricate themselves. Our experience and capabilities are approaching the limit. Programmers spend much more time writing programs that support the selected framework than solving real problems. We can't help but ask, is it necessary to make Java so complicated ?.
The answer is no. This book guides you a way out. Whether it is to maintain the application or to design it from the beginning, you can go beyond the rules and greatly streamline the basic framework, development process and final code. You can re-master the once out-of-control J2EE application...
In this book, the original authors Bruce A. Tate and Justin Gehtland will step by step. First, they listed five basic laws. They demonstrate how to build simple, decoupled code and tell you how to select technology. They also analyzed how two widely used open-source programs cater to these concepts. Finally, the author will use these basic concepts to build a simple but rich application to solve the problems encountered in the real world.

7)Core Java (vol. 1, 2)(By Cay S. Horstmann, Gary Cornell)
Since its publication, Java core technology has been selling well and favored by readers. Each new version keeps up with the development of Java Development Toolkit as quickly as possible, and each version has rewritten part of the content, to adapt to the latest Java features. This version is no exception. It reflects the new features of Java SE 6. The book consists of 14 chapters, including Java BASIC program structure, objects and classes, inheritance, interfaces and internal classes, graphical program design, event processing, Swing user interface components, deployment applications and applets, exception log assertions and debugging, generic program design, collection, and multithreading ..
This book provides a detailed description of the Java technology in a simple way and contains a large number of examples to help readers fully understand the Java language and Java class library features.

8) The Java Virtual Machine Specification(By Tim linhoma, Frank Yellin)
If you need to know the byte code of the Java Virtual Machine or some compilation, this book will definitely make you what you want. It not only contains the specification of the machine code, but also the specification of the Java compiler and runtime environment.


9) Robust Java: Exception Handling, Testing, and Debugging(By Stephen Stelting)
Handling exceptions involves development, design, architecture, and other knowledge. This book is divided into three parts.
Part I introduces the mechanism and usage of Java exceptions, introduces some best practices, and describes common APIs and technologies used for exception handling.
Part II describes the testability design, describes the failure mode analysis, discusses common API exceptions and causes, and analyzes the J2EE architecture and distributed API exception modes.
Part III discusses how to handle exceptions and errors during the software development cycle, analyze the software architecture, design patterns, testing and debugging, and list mature design patterns, this section describes the impact of processing policies on the system architecture and how to build a robust system.

10) Java Code Convention
The last one is of course the Java coding specification, which was officially produced by Sun. This is what every programmer needs to know in order to make the program easy to understand and maintain.

[3. Books required by Java professionals]
Every programmer has some books that are often worn out as professional materials. The following books should be necessary for Java programmers. Books are very expensive, so I intentionally made this list very short, limited to important books.
Thinking in Java (Bruce Eckel)
Thinking in Java, 3rd edition (Bruce Eckel; Prentice Hall PTR, December 2002)
Java programming ideology: Version 3rd (translated by Chen haopeng; Mechanical Industry Press, 2005)
The Book of Eckel is extremely useful in learning how to use object-oriented technology in a Java language environment. A large number of code samples in the book explain the concepts he introduced. The text comes from a person who does not think that Java technology is always the correct answer, so it is quite practical. Eckel has a wealth of experience in multiple languages and has solid skills in thinking in an object-oriented manner. This book puts these skills into a practical Java language environment. He is still writing a new book namedThinking in Enterprise Java.
Valid Java (Joshua Bloch)
Valid Java: Programming Language Guide (Joshua Bloch; Addison-Wesley, February 2001)
(Translated by Pan aimin; China Machinery Industry Press, 2003)
This book is the best book to understand the principles of excellent Java programming. Most materials cannot be found in other "Learning Java" books. For example, covering equals () in the Bloch book is one of the best references I have ever read. He also included practical suggestions in his book: replacing abstract classes with interfaces and flexible usage exceptions. Bloch is an architect of Sun's Java platform library, so he has a thorough understanding of the language. In fact, he has compiled a large number of useful libraries in this language. This book must be read!
The Java Programming Language (Ken Arnold, James Gosling, David Holmes)
The Java Programming Language (Ken Arnold, James Gosling, David Holmes; Addison-Wesley, February 2000)
Java programming language (3rd) (translated by Yu Wanrong et al., China Power Press, 2003)
This may be the best Java getting started book. It is not a standard specification, but a readable book that describes the features of each language. This book balances rigor and education, allowing programmers to be quickly attracted to the Java language (and its rich class libraries.
Concurrent Programming in Java: Design Principles and Patterns (Doug Lea)
Concurrent Programming in Java: Design Principles and Patterns, 2nd edition (Doug Lea; Addison-Wesley, February 1999)
Java concurrent programming-design principles and patterns (second edition) (translated by ZHAO Yong, China Power Press, 2004)
Not every developer needs to have such a detailed understanding of concurrency, and not every engineer can reach the level of this book, but there is no better overview of concurrency programming than this book. If you are interested in this, start from here. Lea is a professional SUNY programmer. His works and ideas related to concurrency are included in the JDK 5.0 standard (derived from JSR166), so you can rest assured that, his suggestions on effective use of the Java language are worth hearing. He is a good communicator.
Expert One-On-One J2EE Design and Development (Rod Johnson)
Expert One-On-One J2EE Design and Development (Rod Johnson)
WROX: J2EE design and development programming guide (translated by Wei Haiping, Electronic Industry Press, 2003)
For those who are new to J2EE, This is the only book that faithfully reflects this technology. This book contains many years of success and failure experiences. unlike many other authors, Johnson is happy to publish his failure experiences to the public. J2EE is often used excessively. Johnson's book can help you avoid this.
Refactoring (Martin Fowler, Kent Beck, John Brant, William Opdyke, Don Robert TS)
Refactoring: Improving the Design of Existing Code (Martin Fowler, Kent Beck, John Brant, William Opdyke, Don Robert ts; Addison-Wesley, 1999)
Reconstruction: improved the design of existing code (Chinese version) (translated by Hou Jie, China Power Press, 2003)
Fowler has written several of the most popular programming books that are now published, includingAnalysis Patterns. HisReconstructionBooks are the basic books on this topic. Refactoring code is a training neglected by programmers, but it is the most intuitive idea of programmers. Refactoring is to improve the design of existing code without changing the Code results. This is the best way to keep the code clean, and the code designed in this way is always easy to modify. When will it be reconstructed? When the code "emits taste. Fowler's book is full of examples of Java code. Many Java integrated development environments (IDE) (including IBM Eclipse) include the reconstruction of Fowler. Every one of them uses the name of the refactoring, so they are familiarExtract methodAnd other reconstruction methods are worthwhile.
Design Patterns (Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides)
Design Patterns: Elements of Reusable Object Oriented Software (Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides; Addison-Wesley, 1997)
Design Model: The basis for reusable object-oriented software (translated by Li Yingjun, Mechanical Industry Press, 2005)
This is a more famous book in the circle of professional programmers. Based on the nickname shared by the authors, this book is considered a "GOF" book ". Patterns can be reused when thinking about and solving common programming problems. The learning model is a discipline. Use mode (or know whenNoUsage mode) is a skill. The ignore mode is incorrect. All examples in the book are represented in C ++, but the Java language was born from there, which makes it easier for Java programmers to relate to how to implement these modes in Java. Be familiar with the mode and learn how to use the mode to make programming easier. This makes it easier to communicate with other programmers, because in general solutions for general problems, the pattern is a shortcut to describing a large number of related programming concepts in the solution collaboration. Some more common methods, suchFactory methodIt exists in Java. You can also read the topic of Joshua KerievskyRefactoring to PatternsThe book says that the code can tell you when to implement the pattern.
Patterns of Enterprise Application Architecture (Martin Fowler)
Patterns of Enterprise Application Architecture (Martin Fowler; Addison-Wesley, December 2002)
Enterprise Application Architecture Model (translated by Wang Huai min, China Machinery Industry Press, 2004)
Compared with small and one-time projects, enterprise development certainly represents a greater challenge. That does not mean that all the challenges posed by enterprise development are new challenges. In fact, sometimes this developmentAlreadyIt was previously completed. Fowler has done many such projects. His book mentions some general solutions and provides guidance on the use, compromise, and optional solutions. In the book, Fowler includes some familiar patterns, such as model View Controller (MVC). It also provides some patterns that you may not understand, for example, the Page Controller mode that processes specific Page requests or behavior requests on a Web site. As you do with most models, once you read many models, you will think "I already know that model ". This may be the case, but there is a general expression used to reference the pattern. This type of reference is helpful for large projects with multiple components (developed by different people.
UML Distilled (Martin Fowler)
UML Distilled: A Brief Guide to the Standard Object Modeling Language (Martin Fowler; Addison-Wesley 2003)
UML essence: Concise Guide to Standard Object Language (version 3rd) (translated by Xu Jiafu, Tsinghua University Press, 2005)
For professional programmers, UML is a very important universal visual communication language, but it is over-used and rashly abused. You do not need to know too much about communication using UML. Martin's refinement of UML provides you with the core things. In fact, the front and back pages provide everything that may be used on a regular basis. The UML examples in this book are all Java code.
Test-Driven Development: By Example (Kent Beck)
Test-Driven Development: By Example (Kent Beck; Addison-Wesley 2002)
Test-driven development (Chinese version) (translated by Cui Kai, China Power Press, 2004)
Test-first programming will make a revolutionary change in programming and help you become a better programmer. Writing a test is difficult before writing code, but it is a powerful skill. By writing tests with priority, you can make the code simpler and make sure it can work from the very beginning (Beck practices the test priority he advocated and shares JUnit with people, this is the most popular Java testing framework ). Beck's book is an authoritative reference, and the extended Money example is also written in Java. Beck details how to use test firstThoughts(This may be the first obstacle for many programmers ).
The Pragmatic Programmer: From Journeyman to Master (Andy Hunt and Dave Thomas)
The Pragmatic Programmer: From Journeyman to Master (Andrew Hunt and David Thomas; Addison-Wesley 1999)
The path for programmers to practice-from small workers to experts (MA Vida translated, e-Industry Press, 2004)
Being a pure object-oriented developer has its own advantages. In today's complex society, as Java developers, they often have to compromise to complete their tasks. Hunt and Thomas discussed how to complete the task without compromising what really matters. This is not a book about the Java language, but an important ideological book by Java developers. For example, a programmer who has not benefited from the loyal saying "to solve the problem, rather than shirking responsibility" cannot sign a name on his masterpiece like a proud artist.
Peopleware: Productive Projects and Teams (Tom DeMarco and Timothy Lister)
Peopleware: Productive Projects and Teams (Tom DeMarco, Timothy Lister; Dorset House, 1999)
UMLChina translation group, Tsinghua University Press, 2003)
All other books in this list are at least technically related. This book is not. In the ocean of all technical lines and acronyms, sometimes software developers and managers forget: YesPersonMade software. DeMarco and Lister reminded us of this fact and the reason for the difference. This is not a book about a specific programming language, but it is a book that every Java programmer should read. There are many other good books about "How tired Programmers Make managers counterproductive", but this is the best one.
[4. 3 advanced books recommended to junior Java programmers]
The original author introduced three good technical books in this article. The authors believe that these books are especially helpful for beginners or students. After getting started with some basic tutorials, we can use Java for basic programming. However, most people do not know where to start when we need to upgrade from the initial level to a higher level. Some good books can help beginners at this stage.
Head First design model
This book introduces the fascinating methods of common GoF design patterns. This is a technical book, not to mention the useful techniques of object-oriented programming. This book adopts the Kathy sitlestyle: although her blog is closed, I still can see some of her articles from the previous link. I suggest you read them. If someone around you thinks that design patterns are useless, this book can change their views. Personally, I think the classic GoF manual is a good reference, but it is not designed for beginners. Therefore, it is strongly recommended that students (including programmers who do not know what the combination mode is) read this book.
The design pattern introduced in the book is a basic programming pattern in program development, and should be understood and mastered by Object-Oriented Programming programmers. The book to be introduced is more inclined to the Java language itself, which is also the programming language I use everyday.
Copyright tive Java Chinese Version 2
Every Java programmer should have this book on his desk. Let's first understand the author:
Joshua Bloch is Google's chief Java designer and also a winner of the Jolt award. He was previously Sun's distinguished engineer (distinguished engineer) and a senior system designer at Transarc. Bloch has led the design and implementation of a number of software systems based on the Java platform, including the enhancement of JDK5.0 functions and the design and implementation of the award-winning Java Collection framework. He also participated in the compilation of the two technical books "Java puzzles | Java Puzzlers" and "Java concurrent programming practices | Java Concurrency in Practice.
With the title of "Java Collection framework developer", we should carefully listen to the suggestions of this respected programmer. These suggestions are organized into 78 points in this book: readers can read at their own speed.

  • What rules should we follow when rewriting equals and hashcode methods?
  • What is immutable class?
  • Under specific circumstances, which of the most relevant exception types should be selected? Is it possible to catch a Runtime exception )?
  • For a managed language (For details, refer to the wiki Introduction), how to retain (preserve) Class Members during obfuscation compilation?
All of the above questions (and 74 others) have detailed explanations of the pragmatic Joshua Bloch. After reading this book, programmers should be aware of the necessity of using Findbugs and Checkstyle tools.
Java concurrent programming practices
I read this book a year ago when I was working on UI development (using SWT/JFace in Eclipse plug-ins, and using Swing in some other projects. At that time, I wanted to know how to implement a Quick Response UI to give users a better user experience. I know that writing thread-safe code is very complicated, although long-running operations are usually an independent thread. UI development and multi-core system application development are a good reason to learn how to develop a software system with thread security.
The author of this book is: Brian Goetz, Joshua Bloch (this guy again appears, we just mentioned, remember ?), Doug Lea (developer of java. util. concurrent package), David Holmes, Tim Peierls, and Joseph Bowbeer.
The style of this book is very direct. Some code performs well in a non-thread-safe environment, but it becomes very dangerous once it reaches the thread-safe environment. Next, this book introduces the basic mechanism to ensure thread security: synchronization mechanism and volatile keywords. This book also introduces java. util. concurrent interface. You can select a suitable concurrent collection class based on your needs. This book also describes how to manage program errors and test whether the code is thread-safe. In addition, the book also provides descriptive annotations (Annotation), which have passed the FindBugs check! Jaav

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.