Is "Java Concurrency In Practice" still valid? [closed] - java

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 6 years ago.
Improve this question
Is Java Concurrency in Practice still valid? I am wondering whether the ideas, concepts and implementation described in the book are still compliant with the latest Java versions.
I ask because the latest edition was done in 2006.

While my perspective may be biased, my current intention for updating the book would be almost strictly additive, covering fork-join, parallel decomposition, and the new parallel bulk data operations coming in Java SE 8.
EDIT 2020: ... and Project Loom.
EDIT 2021: ... and Project Loom :)
EDIT 2022: ... and Project Loom !

Yes, it's still valid in my mind. There isn't big change in this area from 6 to 7. Fork-join is a new feature, which is very suitable for divide-and-conquer type of problems. But all the existing stuff inside the book, such as synchronization, volatile, servlet, are still very valid.

I bought this book in 2013. I had very serious doubts that it would be current and useful given that this edition was published so long ago. The technology world moves quickly, and software technology even faster. Even so, this book is foundational. The concepts and practices that are discussed are more underpinnings for good software design and engineering than updates on the latest and greatest API's. This book has been indispensable, and I am glad that I got it before I had decided to write even a single line of concurrent code. It's probably saved me countless hours.

Yes definitely it's still valid, but I will recommend in addition or as an introduction The Well-Grounded Java Developer a well written book with a chapter on modern Java concurrency techniques and nicely done examples.

I would say so. JDK7 adds the fork-join framework but that is an enhancement rather than a replacement for earlier concurrency tools.

Yes. Very much.
You can always keep track on new things being introduced in Java, however, the book does a fine job of explaining the fundamentals.
If it helps, this comes from a full time researcher in concurrency and parallelism using OOP.

Yes. Still it is valid and i have got good feedback from my friends. It is one of the best book for learning the concurrency in java. You can read the review for Java Concurrency In Practice

If you are going to start your project using Java 8 you might want to consider fresh books and tutorials as well because of new stuff appeared in Java 8 like streams,lambdas and new atomics - that changes development methods a little bit.

Well, the book looks promising when I read certain preview chapters online. It gives enough insight on Java and general concurrency aspects. One can keep this book as a handy outfit when designing and implementing both naive and sophisticated concurrency applications.

Related

Just need some suggestions on improving knowledge of java [closed]

Closed. This question is off-topic. It is not currently accepting answers.
Want to improve this question? Update the question so it's on-topic for Stack Overflow.
Closed 11 years ago.
Improve this question
I have been coding in java for a while now .... i want to continue in java and improve my coding abilities. I want some suggestions on -
any websites, blogs, to keep track of latest happenings in java like new coding techniques, standards, new java features, new APIs, basically anything new about java ..... (just for example sake Androidpolice keeps track all that is happening in android)
I have used a couple of classes from google guava libraries. are there any other such libraries which are helpful ?
Any suggestions are appreciated. Just wanna improve my java knowledge
Thanks
I will suggest you to participate actively in Stack Overflow. I improved a lot after joining SO. Better do lot of practice rather than reading. Create problems on your own and try to solve them. Practice makes man perfect.
I cannot recommend enough the Effective Java book by Joshua Bloch. The second (and most recent) edition assumes JSE6 hence recent (JSE7) features are not covered. But the content is impressive and certainly the kind of book I recommend developers who have moved beyond the basics.
As sans481 told, you have to practices.
Try to create different application in Java.
& If error occurs StackOverflow is here to solve your problem.
First clear funda of Java if you are not aware with it then try it.
Good Luck....
Try out some of the TopCoder challenges. They may not improve your knowledge of the API but they will make you a better programmer and thinker, and you can use Java as an implementation language.
Java Magazine is published on a bi-monthly basis in digital and mobile formats. It includes:
Profiles of innovative Java applications
Java technical how-to’s: Enterprise Java, New to Java, Rich Client, Polyglot Programming, and more
Java community news: Java User Groups, JCP standards, and more
Information about new Java books and conferences and events
Similar to TopCoder, there is also CodeChef, Project Euler and SPOJ which will help you with algorithms and make you a better programmer; not to mention helping you learn to write working Java code quickly. It won't help you write large programs, or learn object oriented stuff, but I still think it helps.
Warning, CodeChef may make you want to learn C++ because it's much more popular for online coding competitions (due to speed and memory differences).

Best web resources for java developer [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 4 years ago.
Improve this question
Each Java developer has his each day sites, I want to ask more experienced Java developers about list of web resources that they will recommend to less experienced Java developers.
stackoverflow.com
http://download.oracle.com/javase/6/docs for javadoc :)
any official document for respective framework (for example:springsource.org for spring )
I like to add official Oracle(Sun) Java tutorial, which I feel must for a beginner in Java
http://download.oracle.com/javase/tutorial/
You might be look at Joshua Bloch's book "Effective Java": http://www.amazon.com/Effective-Java-2nd-Joshua-Bloch/dp/0321356683
This is great book about Java program design.
These are my favorite sites (rss enabled):
http://www.javaspecialists.co.za - Problems in Java
http://javaposse.com - New frameworks, random links to java news.
#Bojan Milenkoski is right.
You cant find solution to all problems in single place. One site may be good in Collections but poor in Objects and Data types .
It also depends on how depth you need your answer
Read the Javadocs. Become familiar with the structure as all Javadoc API specs will follow this pattern.
I use Google in general to find solutions to problems. I don't rely on any one given site. Generally, a Google search with the right keywords will yield the best results when searching for the solution to a problem.
It also depends on the context of what you're searching for. If you have a Spring problem, go to http://forum.springsource.org/. If you have a Google App Engine problem, search Google Groups. This rule isn't always true for every tool in your toolbox because sometimes the information is just plain better and more organized in other sources.
Some problems are also very specific and may not be covered specifically in the documentation. It really just depends on the problem.
But in summary, I suggest getting really good at learning to use Google to find information quickly while also weeding out anything that's not relevant to you.

Examples of Object-Oriented Projects Help Procedural Programmers [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 7 years ago.
Improve this question
Please help me identify some small to medium sized open source projects that embody object oriented design (preferably in C++ or Java). I would like to use these projects to demonstrate how real world problems (as opposed to contrived text book examples) can be solved with an object oriented design. I want to be able to present a plausible explanation of why certain things were chosen to be objects and how they all work together to solve a problem.
Google Chromium (C++): windows, tabs, plugins etc. are all classes.
The Unreal Tournament Public Source Code (432 Headers) contains the declarations of the Unreal engine class library written in C++. I found it to be a rich example of a large object-oriented program. It taught me a lot about how to modularize and object-orient my code. It also demonstrates many tactics for getting a handle on a large code base.
Also, because all you can read are header files, you'll have a fun (and educational) time trying to figure out how the whole thing comes together. (I actually ended up writing my own x86 disassembler so I could cheat and read some of the definitions!)
On the same note, the Doom 3 SDK contains a large chunk of the Doom/Quake engine written in very readable C++.
Just about any large project designed in Java is object-oriented, almost by definition. You can take a look at Apache Hadoop as a large-scale, open-source, objected oriented project written in Java. Another is Apache Ant.
Eclipse would be a good example on the Java side: the plugin architecture is all object oriented.
I asked the same thing to my OO mentor. He pointed me to the JUnit sources, with the recommendation to see how it evolved version by version. This would show you how Kent Beck writes Java code.
Another example on this vein would be the sources of Fit by Ward Cunningham.

Fowler's "Patterns of Enterprise Application Architecture" still relevant? [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 8 years ago.
Improve this question
I'm thinking of buying Martin Fowler's "Patterns of Enterprise Application Architecture".
From what I can see it seems like a great book, an architectural book with bias towards enterprise Java -- just what I need.
However, in computer years, it is quite old. 2003 was a long time ago, and things have moved on quite a bit since that time.
So I'm wondering if anyone can tell me: is this book still relevant, and worth the read?
Yes, it is still very relevant and an excellent resource.
This book, and Eric Evans book about Domain-Driven Design, are my books of the year - every year ;) ...
It's very relevant. I frequently refer other developers to particular patterns from that book, as links to his site (http://www.martinfowler.com/eaaCatalog/), such as Data Transfer Object and Service Layer.
The latter is one I thought I had "invented" until I saw that Fowler had already written about it.
Given that the answers to this question are now three years old, I felt it important to restate the relevance of Martin Fowler's patterns.
The GOF design patterns book was first published in 1994, and many of its patterns are still considered relevant. We may have come to a deeper understanding of them and produced subtle variants, but they are there as the foundation of any good OO design.
Modern languages increasingly implement some of the patterns behind the scenes so that the developer in theory doesn't have to know about them (an example is the Iterator pattern through the yield statement in C#). But, the developer is a better one for knowing them.
Moving on the Martin's book - this absolutely is still relevant. Its true that many libraries now support these patterns in the background, once again abstracting them away from the developer, but again they are at the core of enterprise application software development.
They solve problems that occurr again and again, regardless of language, system, or platform.
It's currently the textbook used at my university's Principles of Information Systems Design course.
I disagree with the "bias towards Java" statement. Patterns, by their nature, are language-agnostic. They're defined as solutions to common problems. The copy of Fowler's book has examples in both Java and C#, so I can't see where the "bias" comes in. They're the most common object-oriented languages, and he's talking about object-oriented solutions to enterprise problems.
The GoF book has examples in Smalltalk and C++. Why are they so "biased" against Java and C#? Hint: the languages didn't exist when that book was written, but the patterns are as relevant as ever.
Very relevant, and certainly not chained to one language. Witness the upcoming Rails move to Merb, in a very real sense a move from one pattern in POEAA (ActiveRecord) to another (DataMapper).
Many other concepts, from ORM strategies to session management, are both relevant and language-agnostic. I'm still floored when I read this how vast Fowler's influence is. He didn't invent all of the concepts here, but he certainly codified and put names to these ideas in such an concise and accessible way as to make them common parlance across the industry. Still essential.
Absolutely!
The book is a classic. I've just been re-reading it to help with some work on event-driven accounting systems.
Fowler has been revisiting some of the patterns since and you can see his works in progress.
Yes the book is still relevant. You can pickup used copies on Amazon if you are worried about its value and sell it through the same channel.

Switching from .NET to Java? [closed]

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 8 years ago.
Improve this question
For the past few years, I've been working on a team that does .NET and SQL Server. I'll soon be joining a team that is Java and Oracle. What can I read/do to get up-to-speed.
Start here: http://java.sun.com/javase/6/docs/
Sun's documentation is pretty good.
See also:
Hidden Features of Java
Best Java Book you have Read So Far
Overriding Equals and Hashcode in Java
What is the Most Freequent Concurrency Problem You've Encountered in Java
Javapassion is a site that offers free courses on Java. If you are on a hurry, there are 1 to 5 days courses available. You should have no problem following it, if you have experience in Java.
There are many good books for Java, but Thinking in Java is free and is good both for getting started and using as a reference.
If you need conversion of things from one language to the other here is a great website:
http://www.25hoursaday.com/CsharpVsJava.html
This, similar, SO Thread might be helpful.
Josh Bloch's Effective Java is a fantastic book. If you want to learn modern Java idioms there are few better places to look at.
Be prepared to do a lot of reading. C# (assuming this was the language you have been using)is generally regarded as an improved Java, so the Java basics will not be hard to grasp. Java development tools are generally not as tightly integrated as the Microsoft stack, thus allowing for choices to be made. Lots of discussions in Javaland revolve around choosing tools.
Get to know something about the way Java packages things (jar, war, ear).
Learn about the classpath (an endless source of joy and grief).
Build a mental picture of how things work at compile time and run time (generics and type erasure, for instance).
Visit the JavaRanch (http://www.javaranch.com/) and test your Java knowledge with the Rules Roundup! Think of it as a certification mock exam, but with cows. ("No cows were harmed in the making of Rules Roundup.")

Categories