Home  >  Article  >  Java  >  Share good books that Java programmers should read

Share good books that Java programmers should read

零下一度
零下一度Original
2017-06-25 10:41:401219browse

As a Java programmer, the most painful thing is that the range of choices is too wide, there are too many books to read, and it is often easy to be at a loss. I would like to select some of the technical books I have read and recommend them to everyone in the order of learning, especially those Java programmers who want to continuously improve their technical level.

1. Introduction to Java Programming
For programmers who have no experience in Java programming, it is the same as reading any introductory book. This stage requires you to quickly master the basic syntax and basic usage of Java. The purpose is "Swallow it without asking for a deeper understanding", first get familiar with Java. Use a short time to quickly go through the Java syntax, and write more codes without guessing. You must "know what it is."
1. "Java Programming Thoughts"
After you have a certain amount of Java programming experience, you need to "know why." At this time, "Java Programming Thoughts" is a good book to let you know why. It has a clear explanation of basic object-oriented knowledge, basic Java syntax, and basic class libraries, and can help you solve the problem. A good foundation in Java programming. The shortcoming of this book is that it is too thick and wordy, and is not suitable for modern people's fast-paced learning. Therefore, you need to know what to choose when reading this book. Not every chapter and section is worth reading. Just focus on the key points and read in depth. .
2. Chinese version of "Agile Java"
This book was given to me by the publisher. As soon as I got it, I put it on the shelf and put it on the bookcase without turning a page. But when I was organizing the bookcase two days ago, , took it out and flipped through it, and found that it was definitely a good book! A major feature of this book is that unit testing and TDD are used throughout the book. In the process of teaching you various important basic knowledge of Java, it will subtly influence your programming thinking to become agile and move towards TDD. In addition, this book is very new. It is based on the syntax of JDK5.0. It is also good to learn the new syntax of JDK5.0. In addition, this book is also very appropriate in its content selection. After all, the Java language has a huge class library and there is too much content to talk about. The selection and amount of content in this book are very appropriate, allowing you to master the most important aspects of Java in the least amount of time. It is a rare and good book that provides important knowledge and cultivates excellent programming ideas.
Although the author himself positions this book at the introductory level, I am not sure whether this book is a little bit in-depth for introductory purposes. I am also planning to read this book and study when I have time.
2. Java Programming Advanced Class
To lay a good Java foundation, you need to accumulate more practical experience. I don’t think there is any shortcut. There are two books worth reading at this stage of your programming career to develop good programming habits and improve the quality of your code.
1. "Refactoring to Improve the Design of Existing Code"
This book is very famous and needs no introduction. You can read it in your spare time and confirm it with your own practice. This book has a subtle impact on you.
2. "Test-Driven Development by Example"

The biggest feature of this book is that it is very thin and seems to have no burden. You can find a weekend afternoon, read and follow the instructions at the same time, and finish reading the book in one afternoon. You will have finished all the examples in this book. The purpose of this book is to let you develop TDD ideas through practical combat.
3. The Road to Java Architect
At this stage, you should be very proficient in using Java programming and have a good programming idea and habit, but you may still lack the overall architecture of the application software. Grasp, now is your first step towards becoming an architect.
1. "Expert One-on-One J2EE Design and Development"
This book is Rod Johnson's famous book, which is very classic. From the code in this book, springframework was born. But it seems that there is no Chinese translation of this book.
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, in fact JavaEye has not contributed much, and it is really embarrassing. The name of the translator.
The above two books are Rod Johnson's classics and must-read books for Java architects. Among the books I recommend, this is the most careful and serious book I have ever read. When I read this book, I almost forgot all sleep and food and read it in one go. I had the same energy as when I was a child, staying up late at night to read Jin Yong’s martial arts novels. The content mentioned was confirmed one by one with my own experience and knowledge, and it was summarized in an extremely incisive way. After reading this book, I felt like my meridians were opened and my power increased dramatically.
But then I read some other people’s reviews, and it seems that the reading experience is not as high as mine. Perhaps it is because everyone’s knowledge accumulation and experience are different. At that time, I happened to have accumulated enough experience and knowledge, but I had not yet organized it systematically. With this book, I immediately formed a complete knowledge system.
3. "Enterprise Application Architecture Patterns"
Another famous book by Martin, but I only read this book in general and did not read it carefully. This book seems to be more suitable for people who make frameworks. For example, if you plan to write an ORM yourself, this book is a must-read. But for people who make applications, it doesn’t matter if they don’t look at it. However, if you have time, I still recommend taking a serious look at it. It will let you know why the framework is designed this way, so that your level can be promoted to the perspective of a framework designer to think about problems. I have always admired Martin's books, but I have never read them as seriously as Rod Johnson's books.
4. "Agile Software Development Principles, Patterns and Practices"

Uncle Bob's famous book, a classic masterpiece of agile, this book is quite special. It is not so much a book about software development process, but a book about software architecture. This book spends a lot of time talking about various object-oriented software. Regarding the various patterns of development, I personally think that after reading this book, you don't need to read GoF's "Design Patterns".
4. Software Development Process
Understanding the software development process is not only to improve the good programming habits of individual programmers, but also the basis for enhancing team collaboration.
1. "The Essence of UML"
UML actually has no necessary connection with the software development process, but it is a tool needed for software team collaboration and communication and writing software documents. However, there are not many truly practical diagrams of UML. It is enough to read this book. There is no need to read something like the "UML User Guide". I would like to remind everyone that the Chinese translation of this book is very poorly translated. It is recommended that you read the original English version if possible.
2. "Analysis of Extreme Programming and Embrace Change" XP
This is the second edition of Kent Beck's famous book, in Chinese and English. Not much to say, a must-read book.
3. "Unified Software Development Process" UP
In fact, UP and agile do not necessarily conflict. UP also emphasizes iteration and testing, but the documentation and process drive emphasized by UP are not adopted by agile. In any case, UP is worth reading. After all, there are very few companies in China that truly accept agile. You still need to arm yourself with UP, even if it is XP wearing UP.
4. "Agile Modeling" AM
Scott Ambler's famous book, this book is very progmatic. It tells you how to be both agile and UP, unifies agile and UP, and also puts forward many progmatic suggestions and practice. You can read the three books "Analysis of Extreme Programming and Embrace Change", "Unified Software Development Process" and "Agile Modeling" together to see the differences between XP and UP, and then see how AM unifies XP and UP. , integrate these three theories into one and form your own theoretical system, then you can also write a book.
5. Software Project Management
If you are suddenly promoted to project manager by your leader and you have no project management experience at all, you will definitely feel unsure; if you feel that you are not managing the project well, you would like to improve your project. Management ability, then taking the PMP exam will definitely not quench your thirst.
1. "Rapid Software Development"
This is also a famous book. It can be said that with this book in hand, you will have a senior project management consultant to advise you, and you no longer have to worry about your incompetence. This book is not about management theory. In actual project management, talking about these theories will not solve the problem. This book is somewhat similar to a "Comprehensive Collection of Software Project Ideas", which lists various problems faced in software projects. Various problems and ideas on how to solve them, you just need to make some changes and find prescriptions and medicines.
6. Summary
In this list of recommended reading books, I did not list popular software framework learning books, such as Struts, hibernate, spring, etc., nor did I list books on AJAX. This is because such books tend to become outdated, and most of the above-mentioned books have a long enough life cycle that they are worth buying and collecting.

1. Java Language Basics
When it comes to books on basic Java language learning, everyone will definitely recommend "Thinking in Java" by Bruce Eckel. It is a very profound technical book written. Basically no other book can surpass it in the basics of Java language. The author of the book, Bruce Eckel, is known as a genius speculator on the Internet. The author's "Thinking in C++" won the Software Development Jolt Award for Best Book in 1995, and "Thinking in Java" was named the "Java World" in 1999. Favorite Readers' Welcome Books" and won the Editors' Choice Book Award. Since 1986, the author has published more than 150 computer technology articles, 6 books (4 of which are about C++), and has given hundreds of lectures around the world. He is the author of "Thinking in Java", "Thinking in C++", "C++ Inside & Out", "Using C++" and "Thinking in Patterns", and is the editor of the anthology "Black Belt C++". His books have been called "the best Java reference book...absolutely shocking"; "the smartest choice to buy a Java reference book"; "the best programming guide I have ever seen". The author's extraordinary talent and ability to span languages ​​have made the author selected as one of the 10 people most closely related to Java in the 10 years of Java development.
"Thinking in Java" talks about all aspects of the Java language. Many Java language veterans commented that "This is a book that talks about the Java language in a rather ugly way." The book talks about many details of the Java language, and every aspect is quite profound. Through this book you can see the "ugly" Java language.
There are many videos on the Internet about Java language explanations, and some of them are rubbish. "Weng Kai - JAVA Language" may be your only choice to learn the basics of the Java language. This lecture is basically based on the book "Thinking in Java", and contains many interesting jokes by Teacher Weng. I'm so lucky that my learning started with this video. The content includes 30 lectures, and I read it 3 times in total.
However, for beginners, I do not recommend using "Thinking in Java". I prefer Prentice Hall PTR's "Core Java 2", which is called "Java 2 Core Technology" in China and is currently in its seventh edition. Everyone on the Internet can download the electronic version. Oreilly's "Java in a nutshell" is also a good choice. After reading the above two books, you can watch Teacher Weng Kai's video, and then study "Thinking in Java".
2. Java Data Structure
There are very few books on Java data structure on the market. There are roughly "Java Collections" by APress, "Data Structures in Java", "Object-oriented Data Structures Using Java" by Jones and Bartlett, and "Data Structures and Algorithms in Java" published by Prentice Hall (Dec 19, 2005). This is "Data Structures And Algorithms With Object-oriented Design Patterns In Java". I'm very lucky that my first English book is "Java Collections" by APress (this book may not have a Chinese version at all in China - you can only download the English version). It's very good. It's very logical and simple. A complete introduction to the Java Collections API, with many examples of extending the API. This is the only good book I recommend you to learn java data structures. There seems to be a Chinese version of the other two books by Jones and Bartlett in China, so you can take a look if you want.
After learning the API, you can look at the corresponding classes in the java.util package. However, only after learning design patterns can you fully understand the entire Java Collections Framework. Java Collections Framework uses many well-known design patterns such as: iterator (Iterator) pattern, factory method pattern, decorator pattern, adapter pattern, etc. By studying the source code of the data structure in the java.util package, you can know the design of the infamous Properties class, and at the same time you may basically have the ability to design simple data structures.
It is said that there is no end to learning. After studying the Java Collections Framework provided by Sun, you can study another Java Collections Framework of Apche, which is very interesting. Two frameworks that complement each other.
Before everyone learns and studies Java Collections, I would like to remind you that Java Collections mainly includes the following three parts: interface (Interface), implementation (Implemention) and algorithm (Algorithm).
1. The main interfaces are List, Set, Queue and Map. List, Set and Queue are sub-interfaces of the Collection interface.
2. Implementation is mainly the specific classes that implement these interfaces. For example, ArrayList, LinkedList, Stack and Vector that implement the List interface; HashSet, TreeSet and LinkedHashSet that implement the Set interface; PriorityQueue, SynchronousQueue, etc. that implement the Queue interface; HashMap, TreeMap, Hashtable, Properties, WeakHashMap, etc. that implement the Map interface.
3. The algorithm is mainly provided by the Arrays class and Collections class, which is the core of the entire Java Collection Framework algorithm. Supports various types of common operations such as sorting and searching.
Java Collections contains two versions of data structures, mainly the original data structure that supports synchronization and the later data structure that does not support synchronization.
Java Collection Framework supports sorting using the Comparator and Comparable interfaces. Both the old and new versions of Iterator and Enumeraton are provided, as well as how they are converted, etc.
The Observable interface and Observer class in the java.util package are the core of the observer pattern.
……
3. Java IO
There are only two books about IO on the market, both from Oreilly Publishing House, both by Elliotte Rusty Harold's writings. The styles of the two books are basically the same. The recommended reading is the first edition of "Jvava I/O". The explanation is relatively simple, the content is relatively concentrated, and there are many examples. The second edition was only published abroad in May this year. Fortunately, I downloaded the second edition from the Internet. It is extremely detailed - 726 pages (I took makeup for two weeks). This time, NIO and IO are combined. , also includes the J2ME part, but the serial port and parallel port communication part seems to have insufficient class library support, and I cannot actually operate it.
Along with the first edition of "Jvava I/O", Oreilly also has a book "Jvava NIO", which is also very good.
After reading "Jvava I/O" and "Jvava NIO" in sequence, you can study the source code in the java.io package. Before you study the source code, let me give you some tips:
Java’s io package mainly includes:
1. Two streams: byte stream (byte stream) and character stream (character stream) , these two streams do not have the so-called theory of who replaces the other or who is superior to the other. They complement each other, but they have different focuses.
2. There are two kinds of symmetry: 1. Symmetry of byte stream and character stream; 2. Symmetry of input and output.
3. A bridge: InputStreamReader and OutputStreamWriter that convert byte streams into character streams.
It must be noted:
1. PipedInputStream and PipedOutputStrem are two interesting classes.
2. The stream that supports Buffered is a class we often use.
3. The most famous application of the Decorator pattern in Java is for io design. Carefully study the relationship between each Filter flow and the specific flow, and read more books on design patterns. I believe you will gain something.
4. Learning the io package well is the basis for studying the net package, rmi package...!
4. Java Database
There are too many database books, and they are too bad! I have basically studied all the books in this area. I recommend you to read "JDBC Recipes A Problem Solution Approach" by Apress. It is very good. It was only published at the end of 2005 abroad. (There does not seem to be a Chinese version in China, but it is not necessarily a Chinese version. It’s worth reading—domestic translations of foreign books are often messy and unreadable.) But we are really lucky that there are electronic versions on the Internet. Worth a look. I recommend the first book I read that I was quite satisfied with - "Java Database Bible" published by Wiley, which is very good! Sun's own book "JDBC API Tutorial and Refernece" that introduces the JDBC API is also good. My second JDBC book was on this set of APIs.
However, these books are currently books on relatively superficial API applications. When I have the opportunity, I will bring you a book introducing the JDBC API and the internal details of JDBC implementation! I will work hard as soon as possible and hope to get everyone's support!
By the way, a few tips for friends who are learning JDBC:
The learning and use of JDBC is mainly this set of APIs, and its use process is also extremely simple. The following is the general process of using JDBC:
1. To load the driver (Driver class) of a database, usually use Class.forName ("driver class name");
2. Connect to the database--
Connection con = DriverManager.getConnection(url,username,password);
3. Get the session--Statement stmt = con.createStatement();
##4. Perform the operation--Result rs = stmt. executeQuery("SQL query statement"); ; What can be changed in the entire JDBC is generally:
1. There are three types of Statements that can be created by the Connection object: Statement, PreparedStatement and CallableStatement.
2. You can create multiple types of ResultSets: support one-way movement and free movement; updateable and non-updatable; support different levels of transactions...
3. Batch processing of data input.
4. Operations on special types of columns (Blob, Clob, Arrary, Ref, Struct) in the result set.
5. These special types are entered into the database.
6. Operations of special result sets (CachedRowSet, JdbcRowSet, WebRowSet) in javax.sql package.
7. The other one is a DataSource, which is also very simple! A managed object in J2EE
Simple! I believe everyone will conquer JDBC soon.
5. Java network programming
Network programming - a mysterious and challenging direction. But before talking about Java network programming, first of all, I would like to thank the developers of Sun Company, because their genius ideas and intelligent architecture have made it extremely easy for the majority of Java programmers to learn Java network programming.
For books on Java network programming, I recommend O'Reilly's "Java Network Programming". It is currently in its third edition. The previous version must be available on the market! There is already an electronic version of the third edition on the Internet. It was published abroad in 2004 and has 706 pages! It is very comprehensive and in-depth. If it is too in-depth, it may be because some things from Sun have not been fully disclosed, so it is difficult to explain. If you are interested, you can download it and take a look! The second book is "Java distributed computing" published by O'Reilly in 1998. The basic part is written in more detail, and the following examples are still worth studying.
Before you read these books, let me give you a tip:
Java network programming is actually relatively simple, and you can get started quickly. Java network programming mainly includes two parts: 1.Socket; 2.URL part. But the second part is also completely based on the first part.
1. Socket includes client-side Socket and server-side ServerSocket. There are also DatagramSocket and DatagramPacket, which correspond to the UDP communication protocol. In short, the Socket part is the basis for establishing other advanced protocols.
2. The URL class is a network resource locator, usually related to specific network protocols such as HTTP, FTP, Telnet... Through this class, you can connect to resources on the network. Through its openStream, you can read network resources in the form of a stream (InputStream) in the io package; through its OpenConnection method, you can open a connection, on which you can not only complete reading operation, you can also complete the writing operation.
Java network programming generally includes the above two parts. Network programming is very closely related to IO and multi-threading. You must have a thorough understanding of these two parts before studying this part.
After studying the above parts, you can study the related source code in the java.net package! It's too early to study all the source code. The entire net package contains: ContentHandlerFactory, URLStreamHandlerFactory, URLStreamHandler, URLClassLoader and other auxiliary classes, which form the framework of java.net network programming. By studying its source code, you can not only quickly understand the java.net package, but also expand it for the future. This package lays the foundation for you to even apply this way of thinking to your own projects.
By now you should only understand 60% of the java.net package. For some of it, you can use decompilation software such as JDecompiler to open the rt in the \jdkxxx\jre\lib directory under your JDK installation directory. .jar, open its sun.net package with software like WinRAR, and decompile all files. It is the details of how the URL class works. After studying the sun.net package, you will be very familiar with the entire network programming.
It all looks like we are already proficient in network programming. In fact, it’s not the case. It’s just the beginning. If you want to go deeper, please continue! There are many excellent network programming libraries and even software on the Internet that can "add power" to us. For example, Apache's HttpCore and HTTPConnection are two libraries related to the HTTP protocol; JGroups is a must-read library for studying distributed communication and group communication; then we can study P2P software packages, such as Sun's JXTA, which may be a Java platform The future standard of point-to-point communication! Then you can study the extremely mature and widely used P2P software Azureus! www.sourceforge.net can be downloaded!
A thousand miles begins with a single step! Just do it! (At present, I have only studied the net package, and I will continue to delve into the others in the near future. Sun has not disclosed other implementation details of net for some reasons. It allows its source code to be studied in text form, and allows When writing its unpublished implementation into the book, I really hope to publish a book on java network programming for the readers! )
6. Servlet and JSP
Servlet , JSP books are also everywhere! There are only two or three books worth recommending. I really recommend "Servlets and JavaServer pages: The J2EE Technology Web Tier" by Addison Wiley, it is another very thick book! It was published abroad in 2003 and has 784 pages. It gives a relatively complete explanation and many examples, especially Chapter 8 Filter, which gives several good examples. All other books about Servlets and JSP that I have seen are not so in-depth! (Maybe I just didn’t see it). O’reilly’s “Java Servlet Programming” and “Java Server Pages” are relatively easy to understand, you can read them!
Before everyone learns Servlet and Jsp, I still want to remind you:
Essentially, Servlet is a server-side program that implements the Servlet interface and is deployed on the server side! It can be written like any other java application. It can operate databases, operate local files, and connect local EJBs... The general process of writing Servlet programs is:
1. Inheriting an HttpServlet class;
2. Override its doGet and doPost methods;
3. In the internal operation method parameters HttpServletRequest and HttpServletResponse of the overridden method.
4. Read requests use HttpServletRequest. Using HttpServletRequest, you can operate the protocol header of the Http protocol, get the operation method of the request, get the path of the request, get the string of the request, and information related to the requesting client. More importantly, you can get Cookie and HttpSession. objects.
5. Using Cookie, you can operate the "sweetheart" object or write it into HttpServletResponse.
6. You can use HttpServletResponse to output information to clients. Using HttpServletResponse, you can write various types of protocol headers, add cookies, redirect other URLs, and send Http protocol status codes to customers.
7. Use HttpSession to complete any function you want to implement within the session.
At the same time, Servlet also provides some events and event listeners (just a simple observer mode). There are also filters and wrappers (ServletRequestWrapper, ServletResponseWrapper) - the use of simple streams and the use of decorator mode.
To learn Sevlet and JSP, you must deploy them to the server. Just remember the usual file deployment steps and parameter settings and how to use them in the program.
After fully understanding Servlet, it is relatively easy to learn jsp! Jsp is completely based on Servlet. It is designed to cater to the needs of programmers who like to embed scripts in Html documents (such as web programming languages ​​​​such as PHP)! It’s also quite easy to learn!
Everything seems so calm, simple and easy to learn! There is a complex mechanism behind the simple appearance. If you want to thoroughly study Servlet and Jsp, you have to study the specific implementation of open source software such as Tomcat. It is nothing more than a server. After the client uses the web page to send a request to the server through the HTTP protocol, the server converts the HTTP request into the corresponding HttpServletRequest object and calls the Servlet you wrote. You must have operated this HttpServletRequest in your Servlet. Well, if you operate HttpServletResponse at the same time, the server will send this HttpServletResponse to your browser using the HTTP protocol in accordance with the requirements of the HTTP protocol! After the Jsp webpage on the server side is requested by the client, Tomcat will use the compilation software and use the template in the javax.servlet.jsp package to compile the jsp file. After compilation, it will be a Servlet! The subsequent operations are exactly the same as Servlet!
Based on Servlet and Jsp, the so-called advanced technologies: JSTL, Struts... are nothing more than the use of some tags and MVC patterns.
Keep moving forward! Victory lies ahead! !
7. Multi-threading
A direction that seems mysterious, but easy to get started and difficult to master!
I recommend two books that I feel good about. First of all, it was the first book in this area that I was able to read, "Java Thread Programming" published by Sams in 1998. It was very well written and easy to read. I often read my notes at that time when I have time! If you want to know how to do it, see for yourself! The second book "Java Threads" has been published by OReilly three times. The latest is the 2004 edition. There seems to be a Chinese version in China. I recommend you read the English version! The book talks about N directions related to multi-threading, such as IO, Swing, Collection, etc.
Let me give you some tips! There are not many classes related to multi-threading in the Java class library, mainly including: Thread, ThreadGroup, ThreadLocal and InheritableThreadLocal four classes and a Runnable interface; keywords synchronize, volatile; and the wait, notify, notifyAll methods of the Object object!
1            Thread is the core class of multi-threading, providing a series of methods to create and operate multi-threads.
2              ThreadGroup is a tool class for managing Thread.
3                ThreadLocal and InheritableThreadLocal provide Thread with a class that stores thread objects similar to a safe function!
4 It goes without saying that Runnable!
5                                 Synchronize is the core of synchronization methods and synchronization blocks! When multiple threads call this method, only one thread can use this method, and other methods are blocked, thereby ensuring the integrity of the internal state of the operated object. When a thread calls a method or block with synchronize, it will obtain the object lock of the object. After completing the operation in the block, the object lock is released, so that other objects can continue to operate.
6 Wait, notify, and notifyAll provide effective waiting/notification mechanisms. Every object in the Java language has a rest room. If the state of the object it operates is not satisfied, any thread will rest in the rest room of the object and release the object lock; when other threads operate the object, they will wake up and rest. The threads in the room then check the conditions and perform corresponding operations when the conditions are met.
There are basically so many basics to multi-threading! Isn't it simple? This may not be enough for a real programmer. To truly master multi-threading, please study the java.util.concurrent package! The work of master Doug Lea was originally an open source consistent programming library, which was later incorporated into the Java class library by Sun. There is also another version of this library on the author's website! Good stuff worth studying! Open source software such as Hibernation and OpenJMS all use this package!
8. Design Patterns
When it comes to design patterns, many people will recommend the GOF book. This book is a five-star recommended book on Amazon. However, I do not recommend this book to those who have not been learning Java for a long time, especially Java beginners. The main reason is that the examples in the book are basically in C++, and many details are not explained clearly enough.
The first book I recommend to everyone is "Java and Patterns" by Dr. Yan Hong. It is the first book about design patterns written by a Chinese. It is quite interesting and incorporates many Chinese concepts. There are many examples and class diagrams of national culture and concepts, and they are relatively simple! A very good introductory book - another big one!
Secondly, I recommend a set of three books of "Pattern In Java" published by Wiley Publishing House. I just read the first one. It seems that the second one is not that good, but the third one is not bad!
The third book is the Chinese translated version about multi-threading mode (a rare Chinese translation version) "Java Multi-threading Design Patterns" published by China Railway Publishing House in 2003, which explains the multi-threading mode very well. Easy to understand, with lots of illustrations, exercises in each chapter, and answers at the end! It started my research on multi-threading mode!
The fourth book in the Head First series, "Head First Design Pattern" published this year, adheres to the advantages of the Head First series of books, with a large number of class diagrams, rich examples, and interesting annotations. It is worth buying!
Secondly, in the J2EE direction, you can study and read "Patterns of Enterprise Application Architecture" published by Addison Wesley in 2002. The works of many big names talk about enterprise information integration! "J2EE PATTERNS SL500" provided by Sun is also very good! It’s too late to recommend the book “Holub on patterns” with 4 and a half stars on Amazon. The master’s work provides examples that are worth studying. However, readers who are not very familiar with the above four books should not read it! It may make you more tired!
I learned design patterns through a very tortuous route. I read about 20 books one after another. I read Dr. Yan Hong’s "Java and Patterns" 4 times, except that I basically didn’t read it the first time. Understand it! I remember when I was in my first year of graduate school, my teacher taught us the GOF book. As an elective course, I went with the masters and doctoral students from their computer department. There were 40-50 people in the last class, and no more than 3 people understood it. I didn’t understand any of it. (The basics are poor - mainly I don't understand the C++ language at all). With my unyielding character, I thought my understanding of the Java language was OK, so I borrowed "Java and Patterns", but I still didn't understand it at all. . Fortunately, when I was in my third year of graduate school, I listened to a lecture on the Java OOP language by Professor Rao Ruonan of Shanghai Jiao Tong University. After I understood three design patterns such as the combined book pattern, I became very interested in other patterns and wanted to conquer them. desire! The first book I bought after working was "Java and Patterns". It took me 2 months to study this huge book of more than 1,000 pages for the first time, and then I could finish it in about 15 days for the third time, and I took a lot of notes! From then on it was out of control.
Choose the right book and immerse yourself in study. I believe you will get started soon!

8 simple parts of learning Java language, this is just the beginning of our study of Java language! If you understand all this, you are just a Java programmer at best, and the road ahead will be long and long! We can continue to study the source code of database implementation, Servlet server source code, RMI, EJB, JNDI, aspect-oriented programming, refactoring, ANT tools, Eclipse tools, Spring tools, JBoss, JOnAS, Apache Geronimo and other J2EE servers! After studying these you may become an excellent J2EE Architecture! You can continue to study the profiler, compiler, JNODE (operating system written in java)...

The above is the detailed content of Share good books that Java programmers should read. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn