1. Java Language Basics
When it comes to basic Java language Learning books, you will definitely recommend Bruce Eckel's "Thinking in Java". It is a very profound technical book written, the Java language
Basic part basically no other book can go beyond it. Bruce Eckel, the author of the book, is known as a genius speculator on the internet, and the author's thinking in C + +
1995 won the Softwaredevelopment Jolt Award Best Book Award, "Thinking in Java" was named 1999 Java World "favorite readers Welcome book",
and won the Editorial Preferred Book Award. Since 1986, the author has published more than 150 computer technology articles, published 6 books (4 of which are about C + +), and
and made hundreds of speeches around the world. He is "thinking in Java", "thinking in C + +", "C + + Inside & Out" "Using C + +" and "thinking in
Patterns is the author of the "Black Belt C + +" anthology. His book is known by readers as "The best Java reference book ... Absolutely shocking ";" Buy Java
The wisest choice of reference books ";" The best Programming Guide I've ever seen. The author's extraordinary talent, the ability to transcend language, has enabled the author to be selected as Java development for 10 years with Java
One of the 10 most closely related people.
"Thinking in Java" covers every aspect of the Java language, and many veteran of the Java language evaluate "This is a very ugly book to speak the Java language." The book talks about
And a lot of details of the Java language, every aspect is quite profound. Through this book you can see the "ugly" Java language.
There are a lot of videos on the web about the Java language, among which there is rubbish. The Onge-java language may be your only choice for learning the basics of the JAVA language, and the lecture is basically
According to "Thinking in Java" This book explains, among them uncommon has many interesting jokes of Weng's teacher. I was fortunate to learn to start with this video. The content includes 30 speaking,
I watched it 3 times in total.
However, for beginners I do not recommend the use of "thinking in Java", I would recommend Prentice Hall PTR "core Java 2" in the country called "Java 2 core technology
is now the seventh edition. Everyone on the Web can download it to the electronic version. OReilly's "Java In a Nutshell" is also a good choice. After reading the above two books, you
Can look at Onge teacher's video, then can study "thinking in Java".
2. Java Data Structure
There are very few books on the market for Java data structures. Roughly apress Java collections, Jones and Bartlett's "Data Structures in"
Java, object-oriented data Structures Using Java and Prentice Hall published data structures and algorithms in Java
(Dec 19, 2005) There is also a copy of "Data structures and algorithms with object-oriented Design Patterns in Java". Luckily, my first
An English book is Apress's "Java Collections" (This book may not have a Chinese version at home-can only download the English version), very good, speak very much of the regulations,
Very simple, is a complete Java Collections API introduction of the book, which is uncommon with the extension API examples. This is the only one I recommend you to learn Java data structure
This is a good book. The other Jones and Bartlett of the two domestic seems to have a Chinese version, want to see you can also see.
After learning the API, you can look at the corresponding class in the Java.util package. But only after you've studied design patterns can you fully understand the entire Java collections
Framework. The Java collections Framework uses a number of well-known design patterns such as: iterator (Iterator) mode, factory method mode, adorner mode, adaptation
mode, and so on. 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 may have basic design simplicity
The ability to structure the data.
The so-called learning endless, after studying sun provided the Java Collections Framework, you can study apche another Java collections framework, very
Meaning Oh. Two frameworks that complement each other.
Before you learn and study Java collections, I suggest that Java collections mainly includes the following three parts: interface (Interface), implementation (Implemention)
and algorithms (algorithm).
1. The main interfaces are list, Set, Queue, and map. List, Se T, and queue are sub-interfaces of the collection interface.
2. Implementations are primarily specific classes that implement these interfaces. such as the ArrayList, LinkedList, Stack and vector of the list interface, implement the HashSet, TreeSet of the set interface.
Priorityqueue, Synchronousqueue and so on for the queue interface, HashMap, TreeMap, Hashtable, and Linkedhashset of the map interface.
Properties, Weakhashmap and so on.
3. The algorithm is mainly provided by the arrays class and the collections class, which is the core of the entire Java Collection Framework algorithm. Supports various types of sorting, finding
and other common operations.
Java collections contains two versions of the data structure, mainly the original data structures that support synchronization, and data structures that later do not support synchronization.
The Java Collection Framework supports sorting using the comparator and comparable interfaces. The new and old two versions of the iterators iterator and Enumeraton are also available,
And how they are converted and so on.
The Obserable interface and the Observer class in the Java.util package are the core of the explorer pattern.
......
3. Java IO
The book on the market for IO is only two copies of OReilly publishing house, both of which are Elliotte Rusty Harold's writings. The style of the two books is basically the same, recommended reading is the first
A version of the "Jvava I/o", speak relatively simple, relatively concentrated content, examples are also many. The second edition was published abroad in May this year, and I was fortunate to have downloaded the second edition on the Internet.
Very detailed ――726 page of the big (I took two weeks), this time will nio and IO and together, also including the J2ME part of the, but the serial port, the communication part of the port seems
Class library support is not enough, you can not actually operate.
With the first version of the "Jvava I/O" oreilly also has a "Jvava NIO", is also very good oh.
After reading "Jvava I/O" and "Jvava NIO" in turn, we can study the source code in the Java.io package. Before you look at the source code, I'll give you some hints:
The IO packages for Java mainly include:
1. Two streams: byte stream and character stream (character stream), these two streams do not exist so-called who replace who, who is more advanced than the said, they complement each other,
It's just a different focus.
2. Two kinds of symmetry: 1. Byte stream, character stream symmetry; 2. The symmetry of the input and output.
3. A bridge: Converts the byte stream into a inputstreamreader and outputstreamwriter of character streams.
One must note:
1. PipedInputStream and Pipedoutputstrem are two of the more interesting classes.
2. Streams that support buffered are classes that we use frequently.
3. The most famous application of the adorner (Decorator) mode in Java is the design for IO. Carefully study the relationship between each filter flow and the specific flow, and read more about the design patterns of the books.
I'm sure you'll get what you've been given.
4. Learn Good IO package, is the research net package, RMI package ... Foundation of the Oh!
4. Java Database
The database of books too many too many, is too rotten too bad! I have basically studied this book, recommended you look at Apress's "JDBC Recipes A Problem Solution
Approach "is very good, foreign 2005 at the end of the publication, (China seems to have no Chinese version, but out of the Chinese version is not necessarily worth seeing-the domestic often translation of foreign books to a
But we are really lucky that there is an electronic version on the Internet. Worth a look. I would like to see the first of the more satisfactory ――wiley published by the Java Database
Bible ", Speak very good! The "JDBC API Tutorial andrefernece" that Sun's own introduction to the JDBC API is also good. The second of my JDBC is
Study this set of APIs.
But at the moment these books are some of the more superficial API applications. I will give you the opportunity to introduce the JDBC API and the internal details of the JDBC implementation of the book! Me as soon as
Efforts, but also hope to get everyone's support!
By the way, a little hint to a friend who learns JDBC:
The learning and use of JDBC is primarily the set of APIs, and its use is extremely simple, following the general process of using JDBC:
1. Load a database driver (Driver Class), usually using Class.forName ("Driver class name");
2. Connect to the database –
Connection con = drivermanager.getconnection (Url,username,password);
3. Get session ――statement stmt = Con.createstatement ();
4. Perform operation ――result rs = stmt.executequery ("SQL query statement");
5. Processing Results-
while (Rs.next ()) {
String col1 = rs.getstring (1);
......
}
It's simple! The general variation in the entire JDBC can be:
1. Three types of statement can be created by Connection object creation statement, PreparedStatement, and CallableStatement.
2. Multiple types of resultset can be created: one-way movement and one free movement, updatable and non-updatable, support for different levels of trading .....
3. Batch processing of data input.
4. Result sets the operation of special types (BLOBs, Clob, arrary, and ref, Struct) columns.
5. These special types of input databases.
6. Javax.sql the operation of the special result set (CachedRowSet, Jdbcrowset, Webrowset) in the package.
7. The other is a DataSource, also very simple! A managed object in a Java EE
It's simple! I'm sure you'll soon conquer JDBC.
5. Java Network Programming
Network Programming-a mysterious, challenging direction. But before talking about Java network programming, I would first thank the developers of sun for their genius vision, full of intellectual
HPE's architecture makes Java programming a great Java programmer to learn.
Java Network Programming in the book, I recommend O ' Reilly's "Java Network Programming", is now the third edition, the previous version of the market must have! Early on the network
There is the third edition of the electronic version, published in 2004 abroad, 706 pages Oh! It's all very, very deep, too deep, maybe because sun has something that isn't completely public, so it's not good.
Speaking of, interested can download look! The second book is the "Java distributed Computing" published by O ' Reilly in 1998, and the basic part is written in more detail, followed
is worth studying.
Before you read these books, give us a hint:
Java network programming is relatively simple and quick to get started. Java network programming mainly consists of two parts: 1. Socket;2. The URL section. But the second part is completely built
On the basis of the first part.
1. The socket includes the client socket and server-side serversocket. There is also Datagramsocket and Datagrampacket, which corresponds to the UDP communication protocol. Total
, the Socket section is the basis for other advanced protocols.
2. The URL class is a network resource locator, usually with specific network protocols such as Http,ftp,telnet ... Related. This class allows you to connect to resources on the network through its
OpenStream can read network resources in the form of streams (inputstream) in IO packets, and through its OpenConnection method, you can open a connection where you can
You can also complete the write operation by not only reading the operation.
Java's network programming generally includes the above two parts. Network programming and IO and multi-threaded parts are very close, before you learn this part of the two must understand the more thorough.
Learn the above section you can study the java.net package in the relevant source code! The source code of the Institute is still too early. Include in the entire net package:
ContentHandlerFactory, URLStreamHandlerFactory, URLStreamHandler, URLClassLoader and other auxiliary classes, they constitute the java.net network programming
Framework, by studying its source code, you can not only quickly understand the java.net package, but also for the future expansion of the package to lay the foundation, and even can use this way of thinking to their own
The project.
So far, you should know about the java.net package. 60%, and part of it you can use anti-compilation software such as Jdecompiler to open your JDK installation directory \jdkxxx\
Jre\lib directory of Rt.jar, with software such as WinRAR open its sun.net package, decompile all the files, it is the URL class work details. When the study of the sun.net was completed
Package, you will be familiar with the whole network programming.
Everything seems to be well versed in network programming. Actually, just started, want to go deeper, please continue! Many of the network's best network programming libraries and even software can
Thought we "added the skill". such as Apache Httpcore and Httpconnection are two and HTTP protocol related libraries; JGroups is the research of distributed communication, group communication
Must read the library, then we can study the peer-to software package, such as Sun Company's jxta, it may be the Java platform Point-to-point communication future standards Oh! Then you can study the mature
Extremely widely used software azureus! Www.sourceforge.net can be downloaded to!
A journey begins! Just Do it! (I've only studied net packages at the moment, and others will continue to go deeper in the near future.) For some reason, Sun has no public net.
Other implementation details, and when it allows to write its source code in the form of text, and allows it to be written in an implementation that is not public, I would like to have a Java network
Programming books to supper the vast readership!! )
6. Servlets and JSPs
The Servlet and JSP books are everywhere! It is worth recommending only two or three copies. Real Push Addison Wiley's servlets and JavaServer pages:the ee
Technology Web Tier "is also a very thick oh! Published in 2003 abroad, 784 pages, speak a relatively full, examples are many, especially the eighth chapter filter, to give a few
The wrong example. All the other books I've seen about Servlets and JSPs are not so deep! (Maybe I didn't see it). O ' Reilly's Java Servlet
Programming "and" Java Server Pages "are relatively understood some, can read!
Before you learn about Servlets and JSPs, let me remind you:
In essence, the servlet is a server-side server-side program that implements the Servlet interface. It can be written like any other Java application,
It can manipulate the database, can manipulate local files, can connect to local EJBS ... The general process for writing a servlet program is:
1. Inheriting a HttpServlet class;
2. Covering its doget and DoPost methods;
3. Internal operation method Parameters HttpServletRequest and HttpServletResponse in the override method.
4. Read requests take advantage of HttpServletRequest. With HttpServletRequest you can manipulate the protocol header of the HTTP protocol, the method of operation that can be requested, the
The path of the request, the string that can be requested, and the information related to requesting the client, the more important you can get both the cookie and the HttpSession object.
5. Using cookies you can manipulate the "sweetheart" object or write it to HttpServletResponse.
6. You can use HttpServletResponse to export information to customers. With HttpServletResponse, you can write to various types of protocol headers, add cookies,
Directs other URLs, which can send the HTTP protocol status code to the customer.
7. Use HttpSession to complete any functions you wish to implement within the session.
The servlet also provides some event and event listeners (simple observer mode only). There is also the filter and the wrapper (Servletrequestwrapper,
Servletresponsewrapper)--Simple flow usage and adorner mode use.
Learn Sevlet, JSP must be deployed to the server, remember the usual file deployment steps and parameters of the settings and how to use in the program can be.
After fully understanding the servlet, learning JSP is relatively easy! The JSP is built entirely on the servlet, and it is designed to cater to those who prefer to embed scripts in HTML documents such as:
PHP and other Web programming languages) of the programmer's needs! It's quite easy to learn!
Everything seems so calm, simple and studious! There is a complex mechanism behind the simple representation. To thoroughly study servlets and JSPs, you have to study Tomcat and other open
The specific implementation of the source software. It is nothing more than a server, after the customer uses the Web page through the HTTP protocol to send a request to the server, the server will convert this HTTP request to the corresponding
HttpServletRequest object, call the servlet you wrote, you must have manipulated this httpservletrequest in your servlet, and manipulated
HttpServletResponse, the server will send this httpservletresponse to your browser using the HTTP protocol as required by the HTTP protocol! On the server
End of the JSP page after being requested by the customer, Tomcat will use the compiler software, using the template in the javax.servlet.jsp package, compile this JSP file, compiled is a servlet!
The next operation is exactly the same as the servlet!
In the servlet and JSP based on the emergence of the so-called advanced technology: Jstl,struts ... Nothing more than the use of some tags and mvc patterns.
Go ahead! Victory is in front!!
7. Multithreading
A very mysterious, but very easy to get started, difficult to master the direction!
I recommend two books that I feel are very good. The first is my first instinct to read this book, Sams published in 1998, "Java Thread programming", Write Bad,
It is easy to read, I have time to read the notes at times! You know how to be good to see it yourself! The second oreilly three published "Java Threads", the latest is version 2004,
Domestic seems to have Chinese version, recommend you or read English version of it! The book talks about n directions related to multithreading, such as Io, Swing, Collection, and so on.
Give us a little hint! There are not many multithreaded-related classes in the Java class Library, mainly: thread, Threadgroup, and Threadlocal and inheritablethreadlocal
Four classes and one runnable interface; keyword synchronize, volatile, and wait, notify, Notifyall methods for object Objects!
1 Thread is the core class of multithreading and provides a series of methods for creating and manipulating multithreading.
2 Threadgroup is a tool class that manages thread.
3 ThreadLocal and inheritablethreadlocal provide thread with a class of storage thread objects similar to the Safe box function!
4 Runnable Needless to say!
5 Synchronize is the core of synchronous method and synchronization block! When multiple threads call this method, only one thread can use this method, and other methods block, thus guaranteeing the operation
The internal state integrity of the object. When a thread calls a method or block with synchronize, it gets an object lock on the object, frees the object lock when it completes the block, and
It can continue the operation of the object.
6 Wait, notify, Notifyall provide an effective wait/notification mechanism. Every object in the Java language has a lounge, and any thread in its manipulated object's state does not
Satisfies the case, breaks in the object's lounge, releases the object lock, and when other threads manipulate the object, wakes up the threads in the lounge, they check the condition again, when the condition is full
To perform the appropriate operation.
Multithreading roughly on so many foundations! It's simple! This should not be enough for a real programmer, really have some knowledge of multithreading, please study java.util.concurrent
Pack it! Master Doug Lea's work, originally a repository of open source conformance programming, was later incorporated into the Java class Library by Sun. The author's website also has another version of the
The Class Library! A good thing worth studying! Hibernation, OPENJMS and other open source software have used this package!
8. Design mode
When it comes to design patterns many people will recommend Gof, the book on Amzon is a five-star recommended book. But for learning Java not long, especially Java beginners,
I don't recommend this book very much. The main examples of this book are basically C + +, and many details are not sufficiently clear.
I recommend the first one is Dr. Shanhong's "Java and Mode", it is the first Chinese to write about the design patterns of books, writing more interesting, a combination of a lot of
The culture and concept of Hua nationality, examples, class diagram are more, and relatively simple! Very good introductory book-again big Oh!
Second I recommend Wiley Publishing "Pattern in Java" Set of three, I read the first, as if the second book is not good, the third is not bad!
The third is the Chinese translation version of the multi-threaded mode (very rare Chinese translation) China Railway Publishing house in 2003 published the "Java multithreaded design mode", the multi-threading module
The style speaks very simple, with a large number of legends, each chapter has exercises, finally have the answer! I started by studying the multithreading pattern!
Fourth, this year's head first series, "head First Design," has the advantages of Head first series, a large number of class diagrams, rich examples,
Interesting annotations that are worth buying!
Second in the direction of the Java EE you can study reading Addison Wesley published in 2002, "Patterns of Enterprise application Architecture", many of the
Works, speak Enterprise message Integration! Sun-Provided "PATTERNS SL500" is also very good! Late recommended that a Amzon 4 stars and a half of the "Holub on Patterns", master
Works, provided, well worth studying examples, but to the above four is not very familiar with the reader, it is best not to read it! May make you more tired!
I study design patterns after a very tortuous route, and then read about 20, Dr. Shanhong's "Java and Mode" I read 4 times, but also ruled out the first time I did not see
Look at that! Remember the teacher told us the Gof of the book, as an elective, I and their computer department master, PhD, to the last class 40-50 people, not
More than 3 people understand, I also do not understand any point (basic poor bar-mainly I do not know the C + + language), I do not lose the character, I think my Java language rationale
Solution can also, I borrowed the "Java and Mode", the results are basically not read. I was fortunate to have studied three o'clock and heard Ober La Jonan Teacher's lecture on the Java OOP language,
I understand the combination of book mode and other three design patterns, the other models have a strong interest and desire to conquer it! The first book I bought after work was Java and patterns,
It took 2 months to study the large 1000-page, and then the third time 15 days or so can be done, notes a big book! From then on.
Choose the right book and bury the research. I'm sure we'll get started soon!
Learn the Java language 8 simple parts, this is just the beginning of our study of the Java language! These all understand that at best a Java programmer, the back of the road is very long! We
You can continue to study the source code of the database implementation, the source code of the Servlet server, RMI, EJB, JNDI, aspect-oriented programming, refactoring, ANT tools, Eclipse tools, Spring
Tools, JBoss, JOnAS, Apache Geronimo and other Java server! Study these you may become an excellent EE architecture! You can continue to study the section
Converters, compilers, JNODE (Java-written operating systems)
Java Programmer's Solitary Nine swords
Total tactic--"thinking in Java"
Broken Sword--"effective Java programming Language Guide"
Broken knife Type--"Design patterns:elements of reusable Object oriented software"
Broken Gun--"Core java Patterns"
Broken Whip--"refactoring:improving the Design of Existing code"
Broken rope--"antipatterns:refactoring software, architectures, and Projects in Crisis"
Broken Palm Type--"Analysis patterns:reusable Object Models"
Broken Arrow--"Extreme Programming Explained:embrace Change"
Broken gas Type--"Data mining:concepts and Techniques"
Lone nine swords, overcame! Recruit is offensive, attack the enemy have to keep. Although only one sword one style, but is irresistable, learned later, before and after the style mastery, is also the power greatly increases,
The essence of Sword: "Material enemy First".
"Go" Java book list