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 named thinking 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.
Sun's Java website should be visited frequently. Needless to say.
For the IBM developerworks website, go to the English site. This is not only an excellent Object-Oriented Analysis and Design website, but also an excellent website for Web Services, Java, and Linux. It is strongly recommended !!!
Discussions and news about many new Java technologies. I 'd like to know more about all aspects of Java, which is better here.
Bea's developer field, Bea, as the most important app server vendor, has many unique technologies that can be missed by partners who develop on weblogic.
The gray fox power website, a professional middleware website, is not a professional Java website, but has profound accomplishments in J2EE enterprise application technology.
Theserverside is a famous website dedicated to Java server applications.
The Java research organization has many excellent articles and tutorials on Java, especially in JDO.
JSP technology websites have a considerable number of Java articles and resources.
Jdon forum is a personalized Chinese J2EE Professional Technology Forum. Among the many Java Chinese forums, jdon is a forum with high technical content and excellent post quality.
Sourgeforge is the base camp of open source software, which also has a very rich set of Java open source famous software.
The following describes two good open-source project websites:
Hubei Province software public development platform http://gro.clinux.org/
China UDDI Technology Alliance http://www.uddi-china.org/
Chai Xiaolu column of csdn
Http://www.csdn.net/develop/author/ColumnAuthor/fennivel/ (Note: Chai Xiaolu is also a famous person on the internet, he published a lot of articles about web services, but also a book, it should be referred to as the pioneer of Web Service technology in China)
Xml & Web Service columns for the IBM Developer Network:
Http://www-900.ibm.com/developerWorks/cn/xml/index.shtml? Csdn IBM is a Web Service promoter
Sun's Java technology site
Sun's Java language site
This is Sun's main java site. As a Java developer, you will find that you frequently access this site. The following links are particularly important, especially for new Java developers:
New to Java Center
The new to Java center stores many step-by-step Java technical resource links. If you are new to this language, this is a good start.
Tutorial and code library
Here are the well-known Java tutorial and other tutorials on various aspects of the Java language (such as collection.
Selling yourself may be a bit cheeky, but developerworks is a huge resource that includes a large number of Java language tools and technology tutorials and articles. The content covers from beginner's Guide to learning this language to advanced Concurrency Technology. You can search for the content based on the topic and then browse the content based on the type.
Apache Software Foundation
Apache Software Foundation
The Apache site is the home page for many reusable libraries (common fields) and tools that help Java developers develop. All the content here is open source code, so please download it! Many of the most popular Java language libraries and tools (such as struts, ant, and tomcat) have started with Apache projects. The Jakarta area brings together most of the emerging Java language materials.
There are several good Java integrated development environments (IDE ). Eclipse (from IBM) is one of the latest IDES and soon becomes the primary IDE for Java development. It is completely open-source, which means it is free. This site contains various references for learning how to use eclipse effectively. There is also information about Standard Widget Toolkit (SWT), which is a more lightweight choice than swing.
JUnit is a basic unit test framework in Java. This site contains the latest and best JUnit versions, plus a large number of tests (for Java or other languages) (for desktop applications, web applications, J2EE applications, etc) other resources. If you want to find a test resource, this is the best start point.
If you want to (or want to) Develop the server-side Java language, this site is an important resource. You can find articles on JBoss, J2EE, LDAP, struts, and a large number of other topics, which are completely searchable. These articles not only briefly describe the features of the Java language or the supported libraries. They further describe the novel usage of libraries (for example, using Jakarta velocity as the rule engine rather than the template engine ). They also provide continuous comments on the status quo of the Java language (the current article is Java is boring written by Tim Bray ). One of the better general functions of this site is
A matrix comparison between Java language tools and products (application servers, etc.
Bruce Eckel's mindview, Inc.
Bruce Eckel's mindview, Inc.
Eckel wrote several "use ...... The book is about Java, Python, and C ++. When I learned the Java language, his thinking in Java is particularly helpful to me. It is very practical and crucial, and has excellent knowledge in "how to think object-oriented in the Java language environment. You can download an electronic copy of all his books from this website for free. He also wrote many good articles, and he put the links to these articles here (including articles on comparison of Jython, Java and. net ).
O'reilley has published some excellent books on programming languages and tools over the years. Their website focusing on the Java language is also good. It has some articles about various Java language tools (such as JDOM and hibernate) and Java platforms (such as j2se and J2EE) in different fields. All can be retrieved. They have excellent articles and tutorials. The site is arranged by topic. For example, Java and XML, Java security, wireless Java, and Java SysAdmin. This site also has a link to o'reilley learning lab, where you can get online references (Java
Language-related and other ). Those are not free, but many are for university certification. Therefore, you can learn your skills in a convenient way and get some certification.
The java.net community has multiple "communities" with topics-specific forums and articles. For example, the Java Desktop community has various materials related to Java Desktop development. The Java patterns community, as a portal, may be quite interested in providing mode resources for the Java language. There is also a Java User Groups (jug) community where you can find information about creating, adding, and managing a jug.
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, including analysis patterns. His book on restructuring is the basic book 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 Fowler refactoring. Every one uses its refactoring name, so they are familiar with extract.
Method and other refactoring 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. It is a skill to use patterns (or to know when mode is not used. 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, such as factory methods
It exists in Java. You can also read Joshua kerievsky's refactoring to patterns about the topic of pattern usage. The book says it allows code to 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 development has been completed before. 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 that "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 prioritize testing (which 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 voices and acronyms, sometimes software developers and managers forget that people make 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.