Well, they're not exactly the same, as the new String(String) creates a second copy of the string, which is usually unnecessary and pointless. I think that most often when you see code like this, it's simply because the coder didn't know any better.
Since Strings are immutable (contents can't be altered) it is perfectly safe to do. That explains why greeting == alsoGreeting (they are the same object) and greeting != newGreeting, but greeting.equals(newGreeting); (two different objects, same value)
Bottom line: someMethod(new String("This is an example."));
is completely unnecessary, and a little bit wasteful. someMethod("This is an example."); is almost the same, but will use the same interned String if there is another String "This is an example." somewhere else in the list.