Since the Java platform since 1995 as a whole began to introduce programming community, and its development has gone far beyond the early Java experts and those who promote the idea of "applet ubiquitous" of that vision. In contrast, Java emerged in the world Swing, and servlet combination, thus the development of J2EE, appeared in EJB, beyond the Spring and Hibernate, added a generic, become increasingly dynamic, then the function implementation, and in my writing When this article, Java continues to move all kinds of interesting directions.

This makes no study has been to follow the language of the Java programmers are a bit difficult.

Speech as a person, blog authors, consultants and mentors, often have some of the early, intermediate Java programmers to reference resources related to my inquiry, in order to help them acquire the broad, complex and seemingly never-ending language. A few years ago, I published a Recommended reading list Specifically in order to answer this question, but recently, developerWorks Editor of Java, let me compile a more complete list of reference resources, which includes not only books - taking into account the resources list has now been increased to the expected even though consumers spent decades reading still the point of no avail, this is a very good proposal.

In order to ensure objectivity and to avoid adverse effects, I have decided to give a variety of reference resources Spaces blog (blogosphere): Web sites, seminars, books, blog, tools, and any Java developers may be of interest or useful for them content, to help them from a large reference resources required to find their own content.

This list has been a lot of people's response (and here I would like to thank all the respondents).

Before starting, need to explain one thing: These reference resources are not necessarily the most popular Java world, the most powerful or the most influential resources - the list may be completely different (although I suspect that will also be one of a lot of the same resources); but every hope that the success of Java developers should reference these resources can be stored in your browser, bookshelf or memorandum. With any list of this type, like, there will always debate what should have been to include but did not appear in the list, or should not have some content appear in the list.

Now begin the formal introduction of these reference resources.

Web site and developer Web portals

Undoubtedly changed the network to share resources and the nature of the publication (for me too, like: You are reading this article on the network), therefore, from every Java developer should pay attention to key Web sites and developers on the key Java portal reference resources, it seems more reasonable to start.

In many cases, Web sites and / or the value of portal developers is not only one of resources or reference article, but also around the portal or community site. Static Web pages and files download time is gone forever, replaced by a more "positive" forum topic article and interactive discussion, not only including frequent visits to the site and formed a community of developers, but also including community members and portal owners. As technology advances, developers must also keep up with the pace of technology, at the same time, the portal to the continuous development to meet the changing needs of the community; with the community to remain open is the relationship between implementation of the key factors active portal.

Web site a list (with URL):

  • java.sun.com
    This is the birthplace of JDK, Java developers are usually JDK and download a copy of the document the primary site. In addition, the site or search on the entire Java platform, a good source of information, including a very detailed JVM Introduction (Hotspot), it is extremely in depth to describe the details of the JVM.
  • java.net
    Java.net site a collection of open-source projects, documents, blog, wiki, news and other community resources and other content. It is a Java technology, the main source of information, but the information provided seems to be too complicated. Nevertheless, browse a list of items will also find some really useful things, such as FEST-Swing Project, which aims to create a Swing application used to build a "convenient interface," greatly simplifies the creation of unit tests.
  • InfoQ
    By Floyd Marinescu creation, he is editor in chief of The ServerSide's reputation, InfoQ and many others listed here is the difference between reference resources, it is technology-neutral, including not only Java code, also included. NET and Ruby, and provide a great deal of flexibility methods and insights. Despite the comments on InfoQ community has not TheServerSide community on such an enormous and diverse, but the community discussion is usually more moderate, but not too intense.
  • TheServerSide
    Often referred to as "the Slashdot of Java", TheServerSide is the first of an open question, lively discussion and active research topic of Enterprise Java place. On the lightweight container (as represented by Spring) some of the initial concept is born from here, here, have had a lot of Java communities, "thought leader." In spite of the recent heated debates will sometimes take a subjective, but are much TSS will always be the birthplace of Java content, these elements we now have Java system; same from TSS can always know the history of a variety of Java technology .
  • DZone
    Initially DZone is a developer-oriented Java resources site, but recently it expanded to other technical fields. Including. NET and Ruby, as well as several other topic "area." In this way, not only Java developers can use it to study Java specialized area, but also has some cross-platform content, smart developers can take full advantage of this point.
  • developerWorks Java Technology Zone
    If you're reading this article, then you have found dw. In order to explain clearly, I must stress that in addition to this article, I have been at the site has published a number of other article, but I can honestly say, dw is a JVM on the Java code and the article and an excellent source of resources. Special attention to Be sure to check the Java Theory and Practice This is a written by Brian Goetz long-term series, which contains a total of three parts of the JVM garbage collector series of articles, which in a simple understandable way introduce the concept of the GC core.
  • IBM alphaWorks
    alphaWorks are sister developerWorks site, IBM researchers and staff at this will make sure that they think the future of the mainstream tools and techniques. alphaWorks provides 12 kinds of different categories, so as to provide Java developers an opportunity to try a variety of very advanced tools, language, library and other projects - they are at a research stage. Note that many projects are in order to prove that a special study of points, then will stop to enable the projects to maintain the efficiency of the current state. Warning: Some of these projects is not open source, and some projects do not contain the source code. However, a considerable number of alphaWorks project will eventually become the mainstream or become a Supporting IBM products, or as from a number of IBM open source tools available to the download location. Anyway, as long as the concern alphaWorks, can know the direction of Java development as well as the way.
  • OnJava
    OnJava are running an independent site, for tracking activities, record the meeting, providing a variety of enterprise Java point of view. In fact, most of the information provided here can also be found elsewhere, but that almost all the developers for the portal (including the above-mentioned) are the same, want to know a variety of development of Java developers just open the site Article list , Then one by one to read.
  • Artima
    Artima created by Bill Venners has now developed into an enormous collection of articles and interviews blog site, it is not entirely focused on Java development, and includes a Java works authority (See Bill Joy published since Java 5 on the Java language the complexity of the doubt, and fear him for proof of the classic examples of questions - Enum <>). The site is well worth your visit.

Note that for most of the site above for the full use of the site / portal, the need for some form of registration. At this writing, all the articles are basically free, and only need one username / password log in, so that they could only identify the visitor, but also need to provide e-mail address in order to periodically send news and information or e-mail subject (according to me know, all sites will allow you to do not provide e-mail, but I have not yet done so, because I found the consultation information tell me from time to time, some fun, I do not know the information, the Inbox of these messages are very useful).

Blog (Weblog)

Blog so that developers can easily express ideas, concepts, ideas, arguments and discussions around the idea to start technical and specific technical fields know very influential "thought leaders." In addition, the blog can be read through the summary in local use, readers will outline article / download to the local entries in order can also be used when offline. In fact, the blog has become very common that the emergence of specialized equipment (such as Amazon Kindle) developers easy access to the information needed.

JavaBeans is the entire Java ecosystem have to use one of the core elements, the use of commercial rather than the meaning of the name is obviously "POJO" (ordinary old Java object). POJO is still based on the JavaBeans code, API and norms, so spend some time in the class know java.beans can help better prepare POJO.
  • java.util.logging
    Diagnosis and audit logs to track running the program is rapidly becoming a powerful tool to implement, whether it is for debugging purposes, or for the purpose of management and surveillance. My advice is: Learn to use the package and its sister open source package log4j .
  • java.security .*
    Java Security API, mechanisms and powers of strategy is to make Java a safe environment for the core of the computing platform, but only developers know how to take advantage of this package. Avoid encryption API - know in detail each of your options and then useful to use them. It is not difficult to use them, but to gain access to encrypted permissions (which means there are no major defects) required to spend a few years time, have a large number of encryption experts from other relevant comments. The first to use other mechanisms, such as SSL / TLS and GuardedObject/SignedObject/SecureObject category.
  • javax.xml.parsers .* , javax.xml.bind And javax.xml.transform .*
    XML gradually appear in the Java developers in the field of vision, be able to resolve (direct analysis or through the object-XML database) and convert it (using XSLT) is a developer must have an important skill.
  • javax.sound .*
    This is not a necessary skill, but know how to pop the occasional sound effects can make the original code and uninteresting vibrant. In addition, the display is not directly available, they also can be used to provide the voice signal and feedback. In addition, let out of the machine stack tracking issue in the movie scream of terror, so that users can just happen to know a bad thing, thus increasing the number of stimulating fun.

  • Of course, there are many other (in the JDK internal and external) of the package is worth studying, but to master the above is enough to make you a good deal with most of the projects, let alone cope with the majority of job interviews.

    Workshop

    Workshop to continue the training of Java developers play a major role, especially those who have not received enough recognition, large training companies that have not yet become the subject of training courses. Workshop is to get to know other developers have a variety of skills and responsibilities of the developers of a unique opportunity to give participants the opportunity to make some very fun (and it is absolutely necessary) things: vent dissatisfaction with the work environment.

    Take part in the seminar will also have a useful side-effects (if active management can be icing on the cake for the workshop): Participants can set up the development team. At around the world through the use of the e-mail, mailing lists (such as googlegroups or Yahoo Groups) and many other lightweight groupware communication tools, know the staff take part in the workshop information easier than ever before. These lunch and dinner through the established friendship can last a lifetime, and over time become more useful, especially in the assessment of new technologies, especially.

    To allow a 30-year experience with the participants, speakers, organizers (not me, are one of my friends), then provide you with the guidelines: "Technology is a new workshop in order to take part in the adoption of various meetings held during the acquisition of knowledge senior people in order to attend the banquet and workshop are to get to know friends. banquet to help you get acquainted with a friend, they can help you to enhance their career. "

    Workshop include:

    • No Fluff, Just Stuff
      This is one I am particularly enthusiastic about the workshop, not only because there are my regular speakers, but also because the top ten speakers in the JavaOne 2007 has 7 individual NoFluffJustStuff (current or previous) speaker. Java developers will not be found here pay more attention to technology than the subject of discussion, but also will not find a more reasonable price than its convening meetings more convenient location: Your Hometown (the North American continent have more than 30 annual meetings - the scope of trans-European and Asia, so that you will have the chance to go by car NFJS join the General Assembly, and not have to spend thousands of dollars to fly a distant city and live in the hotel). Similarly, much of this article recommend books by the experts attending the workshop NoFluff prepared, it is not surprising, but the organizers of NFJS have been sparing no effort to search on various Java and Agile Development of the subject " essential resources. "
    • JavaOne
      This is a very objective and large-scale conferences, and has been in San Francisco (held at this place there are advantages and disadvantages, depending on your company's travel budget situation) was held, but the world is also not a single conference would put such a way as JavaOne many key Java promoters gathered in one place.
    • JAOO
      Not left out in the cold for our European compatriots Java each year held in Aarhus, Denmark, JAOO Conference, the workshop has been held for nearly two decades, and there are no signs of fading. JAOO not only to attract a number of leading speakers and writers, but also as an inter-technology workshop, technology at an excellent inclusive, that is, participants can attend the Java morning workshop, lunch with some C + + Development staff talked to Microsoft's Afternoon ® Silverlight Learn the latest developments in the results (or any other new things), Smalltalker evening drink beer with. If you want to see growth, JAOO Conference, or its sister QCon (At InfoQ staff held under the auspices of third-party) will be a good starting point. To those who live in "Australia or New Zealand" compatriots of Java, this year (2008) in Brisbane and Sydney held its first JAOO; All indications are that within the next few years will once again be held here at JAOO.
    • Devoxx
      The seminar was the former JavaPolis, Antwerp, Belgium at the rapid development of cities, take part in the workshop met their counterparts in Europe are an excellent way (but also can enjoy the finest Belgian beer). Speakers are experts in the field chief, they will focus on a number of cutting-edge technology. The workshop also provided a good platform and a lot of opportunity for your counterparts and developers communicate.
    • Jazoon
      Jazoon are a relatively new workshop, in 2007 in Zurich (Switzerland) held. Since the list of participants have on Martin Odersky (Scala's creator), Neal Gafter, and Simon Phipps (Sun's Chief Open Source Officer), such as name, so is expected to attract substantial Jazoon speaker. Jazoon entirely focused on Java and the subject held at the center of Europe, it is expected to become Europe's Java compatriots an important agenda.

    There are other workshop, the target audience varies, but the workshop listed above are directly aimed at Java developers. Those who wish to expand their vision of the developers should consider participating in "other" technical seminars, such as around the world organized by the Perl, Python, Ruby or. NET meetings; to accept new ideas sometimes need to look at a group of new questions.

    Books

    On the development of personnel, not what kind of resources can be cheaper than traditional books more accessible. Just go to the local bookstore (if you live in remote areas, through the Web browser search Amazon
    To buy books), you can find a large number of valuable technical knowledge and experience ... at ... as long as you are willing to carefully look for substantial resources.

    These books assume that readers already have Java language and tools of application of knowledge; Java entry books are very common, and most of the discussion are the same basic content. Books must select the required skills, it is necessary to consider the author's writing style, and sometimes even have to consider whether the CD-ROM with the book contains a reference to practice the answer (if it contains the words to practice).

    Mastered the basic knowledge to consider reading the following books:

    • Effective Java (2nd edition), Joshua Bloch
      Every Java developer's bookshelf essential first book, must be regularly read, at any time to view.
    • Java Concurrency in Practice, Brian Goetz
      Each Java developers bookshelf on the second book essential, because each Java officers (whether they are willing or not) will manipulate the internal multi-threaded environment.
    • Better, Faster, Lighter Java, Justin Gehtland and Bruce Tate
      This small booklet by many Java developers with Spring as a take-led "lightweight container" environment "weapon" to fill the majority of large-scale EJB server (such as WebSphere or other transaction processing middleware) left blank. The authors also introduce POJO-based development cycle, pointing out that the idea of the strengths and weaknesses, and how to adopt a more lightweight approach to build enterprise applications using Spring and Hibernate to generate this type of system will not reduce the functions and capabilities工具.
    • Effective Enterprise Java, Ted Neward (ME)
      Provides 75 kinds of means to ensure that enterprise Java applications (whether they are using Spring, EJB, Web Services, or other technical implementation) no problem. Effective Java is not just for Java programmers as primary, Effective Enterprise Java is not same for the beginning of study "Enterprise Java" basic knowledge of developers.
    • Release It!, Michael Nygard
      Intends to prepare for the production of any server software, people should read this book - it's in-depth exploration into the production environment possible errors and how to deal with potential failure, or failure to restore, or completely avoid failure.
    • Inside the Java 2 Virtual Machine, Bill Venners or Component Development for the Java Platform, Stuart Halloway
      Java Developer Java, once this study the language, sooner or later have to understand the underlying platform - Java virtual machine itself, which means that garbage collection as well as the Reference Object, ClassLoader, threads and monitors will be the topic discussed in the next area of focus. Two books of any one (or two) are very useful guide. But these two books have a lot of shortcomings: the publication of their relatively early time. Inside the period are published in Java 1.2, to be published shortly thereafter a Component-Based. Fortunately, the majority of Java Virtual Machine has been since then nothing has changed, so if readers encounter in addition to JDK 1.2 problem outside, you can put aside the book and continue to study the next topic.
    • Martin Fowler wrote Patterns of Enterprise Application Architecture, Gregor Hohpe and Bobby Woolf's Enterprise Integration Patterns to write
      Speaking of design methods and concepts, these two books are a model, the same assumption that the bulk of readers read by Gamma, Helm, Johnson and VlissidesBoth co-author of the classic book Design Patterns. Model for the development of books usually provide some basic building block to adjust the concept and composition, thus creating a more robust design, the building block for stand-alone applications do not how effective.
    • Java Power Tools, John Smart
      A lot of people recommend this book, which detailed the Java ecosystem, a variety of tools available. Smart also offers a book about the training courses (Java Power Tools Bootcamp), but most developers access to information The easiest way to or through the dead-tree version.
    • The Pragmatic Programmer, Andy Hunt and Dave Thomas
      Every programmer should be a staff, whether or not he actually used the language or platform is. This book fit the experience of readers and has been involved with for years programmers programming job. This book with Fred Brooks classic The Mythical Man-Month comparable.
    • The Productive Programmer, Neal Ford
      This recently published book with the same classic Pragmatic Programmer, which focused on a variety of techniques and skills, programmers can make use of these techniques and skills to improve their efficiency, obtain higher productivity than the IDE.
    • The Pragmatic Starter Kit
      The package from Pragmatic Unit Testing (with JUnit), Pragmatic Project Automation and Pragmatic Source Control (with Subversion) component. Each book are clear, focused discussion on the core content of each topic, they are directly subject in depth, does not involve other unrelated content. For example, Project Automation of reading are the Ant in Action "book appetizers", but at the same time to discuss what is best to build them to build a flow, as well as the reasons.
    • Ant in Action (2nd edition), Erik Hatcher and Steve Loughran
      Ant is a Java platform to build an excellent utility (see the back of a tool for more detailed information content), this book is to introduce a powerful Ant far the best reading function. Learn how to use Ant at the time, Ant in Action also demonstrates unit testing, continuous integration and production deployment of the practice is that all this is Java developers from the actual day-to-day practice of the point of view.

    Tools

    As the house is not just "waving a hammer in the final sub-effect", like, Java development has not only "master IDE and start writing code." Best IDE for the preparation of course, can contribute a lot of Java code, but other tools can also provide with the IDE the same (maybe better) value.

    In alphabetical order ... ...

    • IDE
      Of course, tools, first of all from the IDE to start the discussion. To avoid restrictions in the commercial, Eclipse and NetBeans are open source and free of charge, thus offering attractive, "the first step."
    • <br /> Up unit testing unit testing tool for the revolution are JUnit However, several other tools have also been popular, including TestNG Naturally, there are JUnitPerf And so on.
    • <br /> Continuous integration continuous integration server constantly checks the code from source control, the implementation of construction, it is running unit tests, and usually by e-mail to the developers to build report all failures. There are several open-source version is available, but there has been a widespread concern that the Hudson, it is a large number of plug-ins and a high scalability of the continuous integration server, it comes from CruiseControl It is precisely because this斐赫and reputation.
    • Static analysis
      FindBugs Is a running Java code open source static analysis tools, the implementation of n to the depth of analysis to identify all possible code paths, and based on a set of rules to expand the report found a variety of errors and warnings. FindBugs developed by William Pugh (The William Pugh also found in the Java memory model bug), to show off its most noteworthy is that it places the analysis of Java code to be able to search concurrency bug, every programmer will be cheering.
    • Network packet tracking
      Wireshark (Formerly commonly known as Ethereal) so that programmers can view the network on the dissemination of the contents, so that they are the network have the opportunity to check on the suitability of the dissemination of the contents, and those who have inappropriate content (such as sensitive information and express password) did not appear on the Net on the road.
    • <br /> Similar virtualization VMWare, Xen, VirtualBox or VirtualPC like virtualization tools (or, more accurately referred to as platforms) so that programmers can create and production environment for the machine will run the same environment, without losing the host PC environment for productivity. It also provides a convenient way to try the local "in a pilot phase of the" software, without having to let the machines in production risk. If it is not entirely open-source projects, most virtualization tools are provided free of charge has some options.

    You do not have to be surprised that these tools are one of a number of commercial tools; a week if a tool can help you save on average an hour, you need a long time many will be able to recover the funds buy the tool does? If managers do not agree with this view, then careful use of a tool for calculating the time saved (assuming the development of staff time, or products that are diagnostic or execution time), the administrator will eventually find themselves at these tools on the mean is a foolish thing not worth the candle.

    Looking to future trends

    Of course, Java developers spend all their time to study current technology is not a good thing, after studying the new technology after another, so that study of all the contents of all of a sudden have become outdated. Always concerned about "the future development trend," Equally important, the only way, when the company CTO at elevator suddenly ask you "I have heard recently that a function of how language is one thing, we need to study it?", You only will give consistent and reasonable answer.

    In alphabetical order, some around the Java platform's "future trends", including:

    • Dynamic languages
      Like Groovy and JRuby language derived from a number of other worthy research projects, such as Clojure and Fan, tests showed that low-intensity type of environment can provide better productivity and more options. This is not encourage you to give up the Java language, however, the best results always come from powerful alliances.
    • Functional language <br /> its emergence from the Scala, the language function because of the general support of composite function and lack of shared state, thus providing an implicit concurrency advantages (although sometimes its hard to accept the grammar). Jaskell is a Haskell-on-JVM implementation, same, Clojure also fit in here, you can imagine a production environment software memory are what matters.
    • Java in the closure
      Add closure support (also known as lambda or anonymous methods) will simplify the work of some Java code, whether in Java 7 release include this support has been lively discussion. Community depth discussion of this issue varies, so Java programmers need to take a moment to examine the issue and look at all the contents of the discussion.
    • DaVinci Machine
      A new version of JVM for other languages (such as the above-mentioned dynamic languages and functional language) more friendly, which eventually may or may not make it into the mainstream JVM release. At any time of concern at this point contribute to an understanding on the current JVM to run dynamic / scripting language of the pros and cons.
    • <br /> User interface development in Flash / Flex, Silverlight, and JavaFX support, Web browser has been significant (and almost surprising) change. This does not consider the field of the new Java server-side Web framework and the Google Web Toolkit (Google Web Toolkit, GWT), such as a special case. User interface has been, and will be continue to be a bright spot attractive. Learn 1-2 (not to mention like Swing or SWT's "rich client" database) library will build HTML pages more interactive than the content of great benefit.

    Remember, with any and "future"-related things, like now to discuss the content may eventually prove to be the wrong direction, a flash in the pan thing, a kind of impact on the industry, or it may be the next major event; to keep an open mind, while maintaining an appropriate suspect.

    Concluding remarks

    Please feel free to add to this list - eventually will be given a more comprehensive list of reference resources. Since Java world at continuing development, change and growth, so the contents of the list will change over time. This is a good thing; if we must use in 1995 during the Java environment, we have long turned to other technology.

    Actively participate in the world of Java to: contribute patches, enhanced, in the absence of a suitable contribution to build their own tools. Maybe your project will always be 5 years appear in this list.



    Original: an essential reference resource list of Java