This week's book giveaway is in the OCAJP forum. We're giving away four copies of OCA Java SE 8 Programmer I Study Guide 1Z0-808 and have Jeanne Boyarsky & Scott Selikoff on-line! See this thread for details.
Out of all the Java fundamentals that you cover in your book, are there any topics that you placed a larger emphasis on because you thought them to be important for developing Android applications? Thanks!
My book's biggest emphasis is the Java language. I have tried to cover every language feature present in Java (as of version 5 -- version 6 did not introduce new language features). I believe that a solid understanding of the Java language, especially advanced features such as generics, will be helpful in writing Android code. I also cover many Java version 7 features (based on current knowledge -- there may be some changes when Java version 7 is released) because I believe that at least some of these features will be useful for developing Android app source code.
As always, there are pitfalls. For example, I recently discovered that one might want to avoid using Java's enum language feature excessively in Android because the overhead that this feature entails can impact memory footprint and performance. In Java, enums are a special kind of class, and too much class loading can slow things down. I also recall a discussion about the benefits of using the enhanced for loop in Android, but the exact rationale escapes me at the moment.
I'm planning to introduce a blog post on my website that discusses potential Java language feature pitfalls and benefits from the Android perspective. Stay tuned.
My book's second biggest emphasis are foundational Java APIs. These including the basic APIs such as Math, Package, String, Threading, and Reflection. These also include utility APIs such as the collections framework, internationalization, and concurrency. Finally, the foundational Java APIs include I/O, such as File, RandomAccessFile, and stream/reader/writer.
Keep in mind that Android's APIs are based on Java version 5.0/1.5 APIs. My book and the upcoming six PDF-based chapters only cover APIs that are supported by Android as well as Java SE, although I bent this rule by including a tiny amount of Swing in the context of internationalization, so that I could show the results of a localized application. However, there is no Java version 6 or version 7 API coverage because Android does not support such APIs.