The single biggest thing that you'd probably miss would be explicit memory management. On the plus side, Java has run-time type information and real generics. Also see: http://developer.android.com/guide/practices/design/performance.htmlthis link for some tips from Google on how to keep your Java code efficient.
Raymond Chen has recently been venting about garbage collection and memory management in the CLR and his blog posts are great for understanding how it works. (I know the following links are for the CLR, but they're still relevant for Java development). See especially: http://blogs.msdn.com/b/oldnewthing/archive/2010/08/09/10047586.aspx here and http://blogs.msdn.com/b/oldnewthing/archive/2010/08/10/10048150.aspxhere.
That being said, there isn't that much difference between Java and C++, and as Chris pointed out, you can code in C/C++ on Android using the NDK.