An increasing number of embedded systems programmers are making the transition from C and C++ to Java. Many, however, having gained their programming skills in C, end up writing Java which looks more like C than Java. Java provides a much richer programming paradigm than C and many Java projects would benefit from using these paradigms rather than a simple translation of C concepts to Java. This paper will suggest techniques by which the newly Java-aware programmer may employ new paradigms to solve old problems in a more Java-like manner, both to help the programmer himself and those who must be the inevitable maintainers of the code.