This week's book giveaway is in the OCAJP 8 forum. We're giving away four copies of OCA Java SE 8 Programmer I Study Guide and have Edward Finegan & Robert Liguori on-line! See this thread for details.
I don't think the above-mentioned tutorial will answer this question.
To use getClass(), you have to have an instance of the class. To use the .class "field", you don't -- you can just use the name of the class. The implementation of the .class field adds a new static member variable to the class that invokes it -- i.e., if class A uses "B.class", then class A gets a new static member.
So my answer is that it's generally better to use getClass() when you can, and .class only when you need to -- i.e., when you don't have access to an instance of the class of interest.
The .class field and the getClass() method that's available to all classes returns the public static Class variable that's available to every object and that's instantiated when the class is first loaded.
Suppose we have a Class Foo, the class variable being public and static you can access it as Foo.class (this returns the Class object associated with Foo). Foo.getClass() also returns the same variable - so you could use either.
The Class object is the starting point for all reflection and here's an excellent sun resource that explains Reflection in detail.