One of the ways to improve your Java programming skills and knowledge is to listen to tech talks given by Java experts. I have found immense value in listening to these talks. Following selected videos on Java language cover efficient use of the Java language, tricky areas in Java core libraries, future of Java including a very interesting Q&A by father of Java, James Gosling, new features in Java 8 and upcoming features in Java 9.
Here are the 5 must watch videos for Java programmers,
1. Effective Java – Still Effective After All These Years by Joshua Bloch (70 minutes)
In this video tech talk, Joshua Bloch takes us through a select set of Java best practices taken from his highly popular book, Effective Java (second edition). This talk is intellectually simulating and even if you are an advanced Java developer, you will learn a lot.
Note that this lecture doesn’t go through all the items in the Effective Java book. However he focuses on a number of key items in the areas of Generics, Enum Types, Varargs, Concurrency and Serialization. In addition, Bloch also shares an interesting set of strange behaviors in Java libraries. The slides of this talk is available here (76 slides).
2. James Gosling on Apple, Google, Oracle and the Future of Java
In this 80 minute Q&A session made in 2010, James Gosling (creator of Java language) talks about the future of Java and its eco-system. It is a very interesting talk and he covers a lot of topics/questions such as,
- What is the future of Java? Where are things headed?
- Multi-core – what is the right thing to do with Java?
- Do generics complicate Java?
- What is your second favorite language? (Gosling thinks for a bit to reply. He hates C with a passion and objective-C refuels his hate! His second favorite language is Scala)
- Hardware implementations of JVM byte code
- How well does Java scale down?
- Have you been following guava and Google’s contribution to libraries?
- Have you looked into Dalvik?
- Was Sun preparing to sue Google over Android?
- Forking Java. Will it happen?
- How did the Java mobile world get so fragmented?
- Java deprecation of Apple?
- Scala comparison to Java
- What happened to Java ME?
- His take on social networking?
- What is the motivation behind creation of Java?
3. Google I/O 2011: Java Puzzlers – Scraping the Bottom of the Barrel by Joshua Bloch and Jeremy Manson
This is a Java tech talk on traps, pitfalls and corner cases in Java programming language. Joshua Bloch is the designer of Java’s collections framework and he takes us on a ride to the puzzling world of Java quirks. If you are looking for more Java puzzlers, check out his book, Java Puzzlers: Traps, Pitfalls, and Corner Cases.
Java puzzlers tech talk is from Google I/O and contains the following tips,
- Use new BigDecimal(String), not new BigDecimal(double)
- Don’t assume that Map.Entry objects in entrySet iteration are stable. new HashSet<EntryType>(map.entrySet()) idiom fails for EnumMap, IdentityHashMap
- Beware of catastrophic backtracking when writing regular expressions
- Generics and arrays don’t mix–don’t ignore compiler warnings!
- Never use raw types in new code–they lose all generic type information
- Always use uppercase L for long literals; never use 0 to pad int literal
4. New Features in Java SE 8: A Developer’s Guide by Simon Ritter
Java 8 brings substantial changes to the Java platform and every programmer should adopt the new features for writing concise code. In this video, Simon Ritter provides an overview of new features available in Java 8. The topics covered include,
- Lambda expressions
- Extension methods
- Generalized target-type inference
- Access to parameter names at runtime
- Concurrency updates
- Bulk operations in Collections
- Removal of permanent generation
If you are an experienced Java developer and is looking for a good Java 8 book, check out Java SE8 for the Really Impatient: A Short Course on the Basics (Java Series).
5. Java modularity: life after Java 9 – Paul Bakker and Sander Mak
Java platform is still undergoing rapid changes and the next big release of Java is Java 9. The biggest change is the modularization of the JDK under project Jigsaw. Take a look the the Java modularity tech talk by Paul Bakker and Sander Mak. This video will give you an idea of what you need to learn in Java in 2016 and beyond.