This highly depends on your needs since there are many approaches to optimizing code. I'd say that optimizing on a language level isn't worth the trouble - you should most probably start learning data structures and algorithm since there you can do most optimisations, and those things are mostly language independent.
Don't bother whether static or local variables yield better performance, since that also depends on the definition of "performance".
Is it:
- runtime performance?
- delevopper performance aka productivity?
- maintainance performance?
- ...
I'd say runtime performance difference on such a low level is quite low and what matters more here are things like readability, maintainability and robustness.
Here's a suggestion for a book, however: Practical Java.
And another one: Effective Java