I think it's ok to abbreviate when the name would hurt readability or just be redundant.
Example 1: An argument to a method where the type allready conveys all information necessary.
Example 2: A variable that will be use a lot in an obvious way
StringBuilder sb = ...
sb.append(...
sb.append(...
return sb.toString();
Example 3: Idiomatic abbrevations. i,j,k has allready been mentioned. "sb" above is one in our code, and each team probably has a couple more.