This week's book giveaway is in the OO, Patterns, UML and Refactoring forum. We're giving away four copies of Refactoring for Software Design Smells: Managing Technical Debt and have Girish Suryanarayana, Ganesh Samarthyam & Tushar Sharma on-line! See this thread for details.
A 'literal' is a value that actually appears in the source code; a character literal looks like 'a', a String literal like "Hello", and a floating-point literal like 123.23 . The word "primitive" refers to a datatype that's not an object; there are only a few primitive types in Java (byte, char, short, int, long, float, and double.) So the question of what's the difference isn't really a meaningful one. All floats and doubles are primitives; a literal float or double can appear in your source code.