Hola CID, espero que con este post puedas despejar varias de tus dudas con respecto a Java.
En primer lugar, Java a simple vista parece una mezcla de lenguajes, muy parecido en muchos aspectos al relativamente "nuevo" C#, y si hablamos con referencia a lo mas antiguo, una mezcla entre c++ y smalltalk.
Se caracteriza por no utilizar de forma directa punteros(en realidad la gente de Sun dice que no usa punteros) (o sea, si bien cuando creas un objeto lo haces de la siguiente forma:
Objeto obj=new Objeto(); /*notar el uso del operador new para crear el objeto*/
y lo utilizas de esta forma:
obj.metodo();
esa es la unica forma de utilizarlos en java, pero obviamente siempre de una forma u otra terminamos usando punteros de una forma indirecta, por ejemplo, al hacer una asignacion de esta forma:
Objeto obj2=obj;
), y por ende al no manejar vos la memoria, tiene un recolector de basura llamado Garbage Collector, y por otro lado, al no se un codigo directamente ejecutable por la cpu, tiene que tener un interprete, el cual es la JVM (java virtual machine). Cuando estas codeando y compilas, lo que compilas es un archivo .java a un archivo .class, que contiene los famosos "bytecodes",el cual es interpretado por el interprete. Por lo cual quedaria algo asi:
compilacion:
|archivo.java|-->compilador-->|archivo.class|
ejecucion:
|archivo.class|-->JVM-->cpu
Por otro lado, preguntas acerca de su campo de aplicacion, y bueno, tenes muchos campos, digamos que al ser un lenguaje multiplataforma (aunque esto tambien es algo relativo pq siempre algo de codigo hay que retocar) termina usandose para todo tipo de aplicaciones, exceptuando las que son de bajo nivel, por ej, si queres hacer un firewall, no es lo mas conveniente hacerlo en java, ya que no tenes flexibilidad en bajo nivel como podes tenerla con lenguajes como C o C++. Tambien java tiene un amplio espectro en la parte de programacion web, donde podes encontrar JSP (java server pages), EJB (Enterprise Java Beans), tambien tenes la parte de celulares con J2ME(java2 mobile edition).
Cabe destacar que jsp se relaciona de una forma muy directa con ejb, es decir, con jsp haces la programacion de las paginas, por decirlo de una manera muy por arriba, y con ejb haces la logica de negocios con la base de datos (igual es muy amplio, esto es solo un minimo ejemplo de lo que podes hacer, y si bien tenes muchas apis divididas para cada tecnologia, la base es siempre la misma, lenguaje Java puro)
Siguiendo con tus dudas, preguntas que necesitas para empezar con java
en primer lugar, tener la jvm instalada, y para esto te recomiendo que entres a la pagina de sun y te bajes el jre (java runtime enviroment, que la incluye):
http://www.java.com/en/download/manual.jspDespues de eso bajate el sdk de sun:
http://java.sun.com/j2se/1.4.2/download.htmlbajate el pack que trae el netbeans (es el entorno de desarrollo gratuito y muy bueno por cierto), que es lo mas basico para programar con java de modo desktop; si despues te surge ejb,jsp, etc etc, bajate el pack de j2ee del mismo link.
Tambien podes usar como entorno de desarrollo el Eclipse, el java builder, y un par mas q no me acuerdo, jeje.
Si te surgen dudas sobre conceptos en java, apis a usar, etc etc, te recomiendo que uses el site de javaranch, que es donde estan los creadores de los examenes de sun, y el link es:
www.javaranch.comEspero que te sirva, y cualquier cosa, estoy a disposicion.