I'm new to developing a web application using IBM's JVM implementation (1.4 in specific). I did know before that IBM has an own implementation, but why is that? What are the differences? I guess it has it's own API documentation, what do I have to expect, something like String's split method not existing...?
The Java API in IBM's implementation should be exactly the same as in Sun's implementation. If it isn't, then that's a bug in IBM's implementation. The Java API is a standard, and if someone wants to implement it, they must implement the standard exactly.
There might be differences in the way things are implemented "under the hood" but any Java program that compiles and runs on Sun's Java 1.4 should compile and run exactly the same on IBM's Java 1.4.
JDK/JRE implements from various vendors should adhere to Sun's Java specifications and most of them do.
There are few corner cases wherein a code compiled and running fine on Sun's JDK will not run well on IBM.
Areas that are a bit pain are: 1. Security and Java Cryptography Extension (JCE). IBM have their own implementation and you need to use IBM specific JCE. Of course you can use Sun's JCE, but then you need to make changes to java.security file.
2. XML parsing is also an issue. But here we cannot blame JDK.
If you have a java code doing normal stuff then the probability it will work well with SUN and IBM is very high.
If you plan to use Sun JDK for development and IBM JRE for deployment, it is better to test your application during intermediate milestones.
Just as a note of confidence for IBM's JDK, I've spent pretty much all my life developing and pre-testing on Sun's JDK, and testing and deploying on an IBM JDK, and have never run into any problems where the implementation of the JDK was to blame.