When I google about Java, the companies most mentioned are Sun, Oracle and IBM. I know that Oracle bought Sun, and the Java official website is Oracle domain, so I can assume that Oracle is the official Java developer. But after a little research, IBM also provides many tutorials and documents about Java. Why is this? Is IBM also involved in some development of Java?
Sun was the creator of the Java programming language, until it was bought by Oracle 2 years ago. Now, as Bill said, Oracle owns the java trademark.
On the other hand, Oracle and IBM announced in October 2010 that we will collaborate in the OpenJDK Community to develop the leading open-source Java SE implementation, and make the OpenJDK Community the primary location for open-source Java SE development.
So, regarding the development of the Java language itself, Oracle, IBM and any individual developer can contribute with the next version of java (JDK 7).
If you have any more questions about Java Language don't hesitate to check the Open JDK FAQ or ask here.
Oracle does own the "Java" trademark, but anyone can implement a JVM. From Java Virtual Machine:
IBM publishes a lot of documentation about Java because they've implemented a JVM called IBM J9, as well as the WebSphere application server.
Oracle "owns" the Java trademark, and, ultimately has the right to decide what can be called Java.
However Sun set up the "Java Community Process" which has been continued by Oracle. This is effectively the governing body for "Java" the language, and, the definitions for the various editions: "ME", "SE" and "JE". Leadership is somewhat restricted to major stakeholders read -- Oracle, IBM and HP plus "heavy" users of Java. However any interested party can join and submit proposals for the development of the language and libraries.
So Oracle are currently playing the good guy and for the most part carrying on where Sun left off. However they still "own the ball" and can at any point say " I am going home with the ball unless I win".
Crucially they have not open sourced the Java Test Suite. Any JVM must be run through the test suite and certified before it can be called "Java". This causes lots of problems for "ideologically pure" open source projects such as "gnu","debian" and "canonical".