If you need one single language to work on all three platforms, it is possible, but complicated, especially for iOS (Apple is pretty much hostile to "foreigners").
With C#, you can develop on iOS, and this is really tricky. Basically, you will need MonoTouch (one of the versions of Mono) and the development of 1st-class citizen application would require MonobjC. Please see my past answers for further detail:
Need to make small apllication that runs on iphone-Ipad (maybe stupid question : ( )[
^],
Programming for ipad/iphone onn windows 7[
^].
The same company producing MonoTouch, Xamarine (
http://en.wikipedia.org/wiki/Xamarin[
^]) also offers Mono for Android, so you can use C# on Android:
http://en.wikipedia.org/wiki/Mono_%28software%29#Mono_for_Android[
^].
This way, you can use C# for all three platforms. Moreover, it's possible do most or all of the development on Windows and then run the code on other platforms without recompilation. I have done it for Linux for a long time, and, for short period of time, on Mac OS X, which was much more difficult (depending on what is the application and requirements though).
I'm not so sure about Java, and I doubt it can be used on all three platforms. If someone knows the way, this person could correct me. As to ObjectiveC, it is used primarily on Apple's Mac OS X and iOS and their predecessors, and hardly on anything else. Please see:
http://en.wikipedia.org/wiki/Objective-C[
^].
—SA