Did you expect to get an exception? Why?
The empty string is a valid regular expression, so you can pass it to the split() method without getting an error. When you split a string with the empty string as the delimiter, then
Java will act as if there is an empty string between each two characters in the string, and also before the first character of the string. The API documentation of the split() method in class String also explains that trailing empty strings are not included, therefore your array doesn't end with an empty string.
Another point: Why are you creating strings by explicitly invoking
new String("hel");? There is never a good reason to create a new String like this, passing a string literal to the constructor of class String. Just do this: