Este artículo será el primero de una serie orientada a introducir al lector en el lenguaje de programación Java. Este lenguaje de programación creado por Sun Microsystems a mediados de la década de los 90 es el lenguaje de programación más popular en la actualidad. Así lo demuestra el índice TIOBE.
El índice TIOBE trata de reflejar el "estado de salud" de los distintos lenguajes de programación. El índice reparte 100 puntos entre todos los lenguajes de programación existentes; el número de puntos que se lleva cada lenguaje depende del número de ofertas de trabajo que para dicho lenguaje haya en portales como Monster y similares, del número de respuestas que varios buscadores de Internet (entre ellos Google y Yahoo) devuelven al realizar consultas relacionadas con el lenguaje, del número de libros editados y vendidos sobre dicho lenguaje... y otras métricas similares. Como se puede ver en la figura 1, Java lidera dicho índice; y lo lleva liderando desde principios del 2001, con la excepción de unos pocos meses en torno a 2005, momento en el que fue temporalmente sobrepasado por C. Otro de los méritos que puede atribuirse es el liderar el ranking de Sourceforge de número de proyectos desarrollados en un determinado lenguaje. En abril del 2005 superó al actual tercer lenguaje de programación, C, y en noviembre del 2005 superó al actual segundo, C++.
Ranking del índice TIOBE con los 11 lenguajes de programación más populares
Java, al igual que su rival más directo (.NET), es mucho más que un simple lenguaje de programación, como podría ser el caso de C o C++. Es una plataforma de desarrollo de aplicaciones completa que proporciona contenedores web y lenguajes de script para la creación de páginas web dinámicas; soporte para componentes transaccionales distribuidos; mapeadores objetos relacionales para encargarse de la persistencia de la aplicación; colas de mensajería para el procesamiento asíncrono de tareas; soporte para desarrollo de aplicaciones para tarjetas inteligentes y otros dispositivos empotrados; soporte para desarrollo de aplicaciones para terminales móviles; un toolkit gráfico con soporte para animaciones 2D y 3D; soporte para el desarrollo de aplicaciones que se ejecutarán empotradas en un navegador; y un largo etcétera.
La plataforma se divide en tres grandes bloques. Uno de ellos, Java SE (anteriormente conocido como J2SE) es lo más parecido a un lenguaje de programación estándar. Proporciona una sintaxis para un lenguaje de programación, un entorno de ejecución para las aplicaciones creadas en dicho lenguaje y un extenso conjunto de librerías en las cuales se pueden apoyar dichas aplicaciones. Java SE será el objetivo de esta serie de artículos y es el punto por el que, habitualmente, los desarrolladores que quieren aprender Java se acercan a la plataforma.
Java ME (anteriormente conocido como J2ME) es una edición de Java orientada a programación de dispositivos móviles y empotrados. En esta categoría encajan desde las tarjetas inteligentes (como las que se emplean en los DNI electrónicos, en las tarjetas prepago o en las SIM de los teléfonos móviles) hasta terminales móviles de última generación, pasando por los reproductores del formato de video de alta definición BlueRay, o software de control de coches. Java ME proporciona un subconjunto de las librerías y de las características del lenguaje de Java SE. Este subconjunto puede variar dependiendo de para qué dispositivos estemos programando; si estamos programando para terminales móviles de última generación están disponibles prácticamente todas las características de Java SE. Sin embargo, si estamos programando para tarjetas inteligentes el conjunto de librerías está considerablemente reducido, y el lenguaje de programación soporta menos características; por ejemplo, no soporta tipos de datos reales ya que estos dispositivos sólo tienen hardware para realizar aritmética de enteros.
Java ME es muy popular en la actualidad en dispositivos móviles, aunque a menudo pase desapercibido. Para que el lector se haga una idea de la presencia de esta tecnología, simplemente mencionar que se han manufacturado 3.500.000.000 de tarjetas inteligentes basadas en la tecnología Java, y más de 1.400.000.000 de teléfonos móviles con soporte para aplicaciones Java ME. Con toda probabilidad, tu teléfono móvil es capaz de ejecutar aplicaciones Java ME. Y, por cierto, la inmensa mayoría de los juegos y aplicaciones para terminales móviles que ves anunciados en televisión y en revistas están desarrollados en Java ME.
Si Java ME puede considerarse como un subconjunto de Java SE, Java EE (anteriormente conocido como J2EE) puede considerarse como un superconjunto. En este caso, no se extiende ni se modifica de ningún modo el lenguaje de programación. Se añade un conjunto amplio de librerías y una serie de contenedores de aplicaciones (contenedores web y de EJB). Estos contenedores proporcionan servicios, de un modo automático y transparente para el programador, a las aplicaciones que contienen, servicios como transaccionalidad, persistencia, autenticación, autorización, etcétera. Nuevamente, muchas de las web que visitas diariamente están hechas en Java: la web del Real Madrid, el propio GMail, o las web de los ministerios del gobierno español son algunos ejemplos.
Con el lenguaje de programación Java es posible programar todos estos dispositivos
Una vez terminada la revisión a vista de pájaro de las distintas partes que integran la plataforma, es momento de explicar exactamente qué vamos a abordar en esta serie de artículos. Nuestro objetivo será Java SE: presentaremos el lenguaje de programación Java e introduciremos las partes más esenciales de su librería estándar.
Los artículos están escritos suponiendo que el lector conoce algún lenguaje de programación y, por tanto, domina los conceptos básicos de la programación estructurada: el concepto de variable, estructuras de control de flujo, el concepto de función o procedimiento, etcétera. Esta serie de artículos no es, por tanto, un sustituto de un curso básico de programación.
Aunque no será imprescindible para seguir los artículos, si será aconsejable poseer conocimientos básicos de orientación a objetos: el concepto de método, de objeto, de clase, de paso de mensajes... serán expuestos con mucha brevedad. Nos centraremos más en presentar el soporte que Java proporciona para la programación orientada a objetos, más que en presentar la programación orientada a objetos en sí misma.
Ya hemos introducido, a vista de pájaro, lo que podríamos denominar "plataforma Java". En esta sección presentaremos brevemente cuáles son las principales características del lenguaje de programación Java.
Java es un lenguaje sencillo de aprender. Su sintaxis es la de C++ “simplificada”. Los creadores de Java partieron de la sintaxis de C++ y trataron de eliminar todo lo que resultase complicado o fuese fuente de errores en este lenguaje. La herencia múltiple, la aritmética de punteros, la gestión de memoria dinámica (que en Java se realiza de modo transparente para el programador gracias al recogedor de basura) son ejemplos de puntos complicados del lenguaje C++ que en Java se han eliminado o simplificado. Esta decisión de diseño, intencionada, tenía como objetivo atraer a desarrolladores con conocimientos de C++ al nuevo lenguaje de programación, objetivo que fue alcanzado.
Java es completamente independiente de la máquina y el sistema operativo en el que se ejecuta. El código generado por el compilador Java es independiente de la arquitectura: podría ejecutarse en un entorno UNIX, Mac o Windows; en un procesador Sparc, x86, PowerPC, ARM, ... tanto de 32 como de 64 bits. El motivo de esto es que el que realmente ejecuta el código generado por el compilador no es el procesador del ordenador directamente, sino que se ejecuta mediante una máquina virtual, que es la que genera código máquina adecuado para cada arquitectura.
Además, Java es portable a nivel de código fuente. El párrafo anterior, aborda la portabilidad de Java a nivel de binario: un mismo programa compilado puede ejecutarse en distintas arquitecturas. Pero además en el lenguaje Java no hay aspectos dependientes de la implementación, todas las implementaciones de Java siguen los mismos estándares en cuanto a tamaño y almacenamiento de los datos, y en cuanto al modelo de memoria que ven las aplicaciones. Esto no ocurre así en otros lenguajes como C o C++. En estos dos lenguajes, por ejemplo, un entero puede tener un tamaño de 16, 32 o más bits, siendo la única limitación que el entero (
int
Java es un lenguaje de programación robusto y seguro. Estas características surgen en buena medida de ser un lenguaje que no es ejecutado directamente por la CPU, sino que es ejecutado por la máquina virtual. Esta máquina virtual puede controlar los permisos que se le otorgan a una determinada aplicación y garantizar que dichos permisos no son violados. Por ejemplo, Java proporciona soporte para la creación de Applets. Estos son programas diseñados para ser ejecutados de modo automático cuando un usuario visita una página web. Si el Applet no estuviese restringido en lo que puede hacer al ejecutarse, podría comprometer nuestra máquina. Sin embargo, Java garantiza que ningún Applet puede escribir o leer de nuestro disco o mandar información del usuario que accede a la página a través de la red (como, por ejemplo, la dirección de correo electrónico). En general no le permite realizar cualquier acción que pudiera dañar la máquina o violar la intimidad del que visita la página web.
Java es un lenguaje de alto rendimiento. Sí, de alto rendimiento. Actualmente la velocidad de ejecución del código Java es semejante a la de C++, hay ciertas pruebas estándares de comparación (benchmarks) en las que Java gana a C++ y viceversa. Esto es así gracias al uso de compiladores just in time, compiladores que traducen los bytecodes de Java en código máquina para una determinada CPU, código que no precisa de la máquina virtual para ser ejecutado, y guardan el resultado de dicha conversión, volviéndolo a llamar en caso de volverlo a necesitar, con lo que se evita la sobrecarga de trabajo asociada a la interpretación del bytecode. Además, estos compiladores realizan optimizaciones que se basan en información que sólo está disponible en tiempo de ejecución y que, por tanto, son imposibles de realizar en tiempo de compilación.
No obstante, por norma general el programa Java consume bastante más memoria que un programa C++ equivalente, ya que no sólo ha de cargar en memoria los recursos necesarios para la ejecución del programa, sino que además debe simular un sistema operativo y hardware virtuales (la máquina virtual). Sin embargo, dado el bajo precio de la memoria RAM en la actualidad y la gran cantidad de memoria que suele haber disponible, el mayor consumo de memoria a menudo es irrelevante.
Por último, en la línea del alto rendimiento, mencionar que Java posee soporte nativo para threads, lo que hace que escribir aplicaciones Java que tomen ventaja de procesadores de varios núcleos (lo más habitual en la actualidad es que al menos dispongamos de dos núcleos en una máquina) sea mucho más sencillo que en otros lenguajes de programación.
Para desarrollar aplicaciones Java es necesario un "Java Development Kit" o JDK. Existen múltiples JDKs, desarrollados por compañías diferentes, o desarrollados como proyectos de software libre. Yo recomiendo al lector que emplee el que distribuye de modo gratuito Sun Microsystems, que se puede descargar desde http://java.sun.com/j2se. La implementación de Java de Sun suele ser la más actualizada y, además, ¡es software libre!. No obstante, el lector podría emplear cualquier otro JDK. La portabilidad del lenguaje garantiza que todos funcionarán del mismo modo.
En la imagen se muestra al Duke, la mascota de Java. Y ¡él también se distribuye bajo una licencia libre!
Varios ejemplos de esta serie de artículos requerirán que se emplee un JDK 5 o superior. Java, como lenguaje, ha sufrido dos revisiones mayores en su historia. La primera fue la versión 1.2, en 1998. En la actualidad prácticamente nadie emplea JDKs anteriores al 1.2, por lo que no merece la pena hacer énfasis en las características del lenguaje antes de ese momento. La segunda, realizada en 2004, fue Java 5 (1.5 si se hubiese seguido con la numeración antigua, pero Sun decidió saltar de 1.4 a 5). Todavía existe bastante código escrito en Java 1.4.X y todavía existen muchos servidores de aplicaciones en producción que no soportan Java 5. Por ello cuando describamos una característica que sólo está presente en Java 5 avisaremos al lector. En cualquier caso, no existe ningún motivo para que el lector se descargue un JDK antiguo; lo más razonable es que se descargue la última versión (Java 6 en el momento de escribir este artículo).
Es de consenso que el entorno JDK no es el más adecuado para el desarrollo de aplicaciones Java, debido a funcionar única y exclusivamente mediante comandos de consola. Hoy en día la programación se suele ayudar de entornos visuales, como Eclipse y Netbeans, que facilitan enormemente la tarea. Mi preferencia personal hace que tienda a recomendar Netbeans, especialmente para un programador novato ya que este entorno de desarrollo requiere mucha menos configuración que Eclipse. Además, en artículos posteriores de esta serie se proporcionarán tutoriales flash cuyo objetivo es ayudar al usuario a comenzar a trabajar con Netbeans. En cualquier caso, ambos son excelentes entornos de desarrollo, completamente gratuitos y se distribuyen bajo licencia libre. Pueden descargarse desde http://netbeans.org y http://eclipse.org.
Aunque espero que para seguir esta serie de artículos el elector emplee alguno de estos entornos de desarrollo, siempre está bien comprender qué sucede cuando hacemos un clic sobre el botón de "Play". En esta sección mostraremos cuáles son los componentes básicos del JDK y cómo emplearlos desde consola. Recomiendo al lector que para este primer artículo evite emplear un IDE y que trabaje con el JDK en la consola, para familiarizarse con él.
A partir de ahora supongo que el lector tiene un JDK instalado en su equipo. La descarga desde la página de Sun es un instalador estándar. Podemos aceptar todas las opciones por defecto. Una vez instalado, nuestro equipo podrá ejecutar aplicaciones Java. Sin embargo, por defecto, el kit de desarrollo no estará accesible desde la consola de comandos.
Para solucionar esto debemos incluir en la variable de entorno
PATH
Ha llegado ya el momento (¡Por fin!) de comenzar a escribir algo de código fuente. Todavía no hemos explicado absolutamente nada de la sintaxis de Java; comenzaremos con ello en breve. Sin embargo, este primer programa, que mostramos en el listado 1, es muy simple de entender y no creo que lector tenga problemas comprendiendo lo que hace.
: Típico programa de "hola mundo" desarrollado en Java. import java.util.*;
La primera sentencia,
import java.util.*;
La línea
public class HelloDate {
La línea
public static void main(String[] args) {
Este es el momento en el que debemos coger un editor de texto cualquiera (el Bloc de notas de Windows es perfectamente válido) y teclear el código anterior. Deberemos guardarlo en un archivo con nombre
HolaMundo.java
Para compilar nuestro primer programa necesitamos abrir una consola (en Windows, esto puede hacerse desde el menú de inicio, seleccionando la entrada a "Ejecutar" y tecleando en la ventana que aparece
cmd
javac HolaMundo.java
Javac
2.2Lanzando la máquina virtual: el comando java
Los ficheros .class contienen bytecode, una especie de "ensamblador" de la plataforma Java. Este ensamblador puede ser interpretado por cualquier máquina virtual Java. La máquina virtual estará accesible desde nuestro
PATH
Para indicarle a la máquina virtual que debe comenzar la ejecución de un determinado programa, el cual debe haber sido compilado con antelación, después del comando
java
java HolaMundo
No es necesario aquí suministrar la extensión del fichero, ya que siempre ha de ser un fichero .class. El resultado de la ejecución se muestra en la figura 4.
Resultado de compilar y ejecutar el código
HolaMundo
Una de las cosas que Java ha traído al mundo de la programación es la cultura de que todo código fuente debe tener una documentación asociada. Quizás haya sido por el hecho de que desde el día cero Java proporcionaba herramientas para generar documentación de modo semiautomático a partir de un código fuente con comentarios. O quizás fuese por el énfasis que los evangelistas del lenguaje hacían sobre este aspecto. Pero una de las cosas que todavía en la actualidad es muy envidiada por los desarrolladores de otros lenguajes es la documentación de nuestras librerías y la cultura de documentar el código fuente que existe dentro de la plataforma Java.
El JDK de Sun nos proporciona una herramienta que extrae los comentarios que comienzan por
/**
El código que estamos usando de ejemplo posee varios de estos comentarios, y emplea la sintaxis especial. En los artículos que siguen a éste iremos presentando más detalles sobre dicha sintaxis. Aquí simplemente pretendemos mostrar cómo se emplea la herramienta, cuyo nombre es
javadoc
javadoc HolaMundo.java
Este comando nos genera un montón de páginas HTML, no una sola. Habitualmente, suele emplearse para documentar programas complejos donde tiene sentido estructurar la documentación generada en distintas páginas web. La que nos interesa es la que tiene por nombre "index.html". Podemos ver su contenido en la figura 5. Como el lector podrá observar, los comentarios que introdujimos en el código fuente han sido extraídos por la herramienta e interpretados de modo adecuado para generar la documentación.
Documentación que genera el comando javadoc para nuestro ejemplo
Todavía tardaremos varios números en explicar qué es un Applet. Pero, por completitud, presentaremos aquí la última herramienta del JDK que emplearemos en esta serie de artículos:
appletviewer
appletviewer mipagina.html
El comando ignora todo el contenido de la página web que no sean applets, y se limita a ejecutar éstos. Un ejemplo de página web “mínima” para poder probar un applet llamado
applet.class
Página web con una etiqueta que empotra un Applet en el documento HTML.En el CD que acompaña esta revista lector podrá encontrar un archivo con nombre
Appplet.class
En este apartado presentaremos los tipos de datos primitivos que existen en Java. Aquellos lectores que estén familiarizados con C, o C++, no encontrarán prácticamente nada nuevo en este apartado: los tipos son casi idénticos a los de estos lenguajes, salvo que aquí todos los enteros son signed siempre.
En Java toda variable declarada ha de tener su tipo, y además antes de poder emplearla hemos de inicializarla a un valor, si no el compilador se quejará y no generará los archivos .class. Esto no es necesario, por ejemplo, en C, siendo fuente de muchos errores el emplear en operaciones variables que nos hemos olvidado de inicializar. A continuación pasamos a describir los distintos tipos de datos primitivos que existen en Java.
Almacenan, como su propio nombre indica, números enteros; esto es, números sin parte decimal. Cabe destacar, como ya se indicó anteriormente, que por razones de portabilidad todos los datos en Java tienen el mismo tamaño y formato en todas las plataformas. En Java hay cuatro tipos de enteros, como se muestra en la tabla 1. Esta tabla también nos muestra el rango (valores mínimos y máximos) de cada tipo y el espacio que ocupan en memoria, medido en bytes.
TABLA 1: tipo de datos enteros en Java
| Tipo | Tamaño (bytes) | Rango |
| byte | 1 | -128 a 127 |
| short | 2 | -32768 a 32767 |
| int | 4 | -2147483648 a 2147483647 |
| long | 8 | -9223372036854775808 a 9223372036854775807 |
Para indicar que un literal entero es de tipo long debemos añadirle una
LAlmacenan números reales, es decir, números con parte decimal. Como se muestra en la tabla 2, hay dos tipos diferentes de número real; se diferencian tanto en la precisión (el número de cifras decimales que son capaces de representar) como en el rango de valores que permiten representar.
TABLA 2: tipos de datos reales en Java
| Tipo | Tamaño (bytes) | Rango |
| float | 4 | - 3.40282347E+38 a + 3.40282347E+38 |
| double | 8 | - 179769313486231570E+308 a + 179769313486231570E+308 |
Si queremos indicar que un literal real es de tipo
float
En Java, al igual que en C, se distingue la representación de los datos
char
Se trata de un tipo de dato que solo puede tomar dos valores:
true
Al igual que en C, y a diferencia de Fortran, Java requiere que se declaren los tipos de todas las variables empleadas. La sintaxis de declaración es la misma que C:
int i;
Sin embargo, y a diferencia que en C, se requiere inicializar todas las variables antes de usarlas, si no el compilador genera un error y aborta la compilación. Se puede declarar e inicializar valor a una variable en una misma línea:
int i = 0;
En Java, después de cada línea de código siempre debe ir un ";". Declaración e inicialización pueden hacerse en líneas diferentes:
int i ;
Es posible declarar e iniciar varias variables en una línea:
int i=3, j,k=2;
Los caracteres aceptados en el nombre de una variable son los comprendidos entre
A-Z
Las normas de conversión entre tipos numéricos son las habituales en un lenguaje de programación: si en una operación se involucran varios datos numéricos de distintos tipos todos ellos se convierten al tipo de dato que permite una mayor precisión y rango de representación numérica; así, por ejemplo:
Si cualquier operando es
double
Si cualquier operando es
float
Si cualquier operando es
long
Si cualquier operando es
int
En cualquier otro caso el resultado será también un
int
Java sólo tiene dos tipos de operadores para operar números enteros: uno que aplica para operar datos de tipo
long
Estas conversiones son importantes a la hora de determinar en qué tipo de variable guardamos el resultado de la operación; ésta ha de tener un rango de representación mayor o igual al rango de representación de la variable con mayor rango de representación involucrada en la operación. Si es de rango superior no habrá problemas. Si no respetamos esta regla, el compilador generará un error.
Es posible convertir un dato de jerarquía “superior” a uno con jerarquía “inferior”, arriesgándonos a perder información en el cambio. Este tipo de operación (almacenar el contenido de una variable de jerarquía superior en una de jerarquía inferior) se denomina cast o molde. Para llevar a cabo un cast debemos poner delante de la variable cuyo tipo queremos cambiar, entre paréntesis, el tipo de la variable al cual queremos realizar el cambio; por ejemplo, la siguiente sentencia realiza un cast de
double
int i = (int)3.4;
En el listado 2 mostramos un código Java donde se hace uso de un cast. Como podremos comprobar al ejecutar el programa, al realizar un cast la variable de mayor rango es truncada para ser almacenada en la de menor rango; es decir, 3.9999 al transformarse a entero mediante un cast da como resultado 3.
Para comprender el código del listado 2 es importante tener en cuenta que en Java cuando "se suma" un valor numérico a una cadena de caracteres lo que sucede es que se crea una nueva cadena de caracteres igual a la cadena de caracteres original concatenada con el valor; es decir
"Edad: "+ 23
: Este código muestra un ejemplo de cast.
En este apartado veremos los operadores aritméticos, relacionales y lógicos con los que cuenta Java.
6.1Operadores aritméticosLos operadores aritméticos de Java son
+ , - , * , /
Además, existen los operadores decremento e incremento:
--
: Operadores de preincremento y postdecremento.
Los operadores relacionales son operadores que comprueban si se cumple una determinada relación, de igualdad, desigualdad, mayor que... entre dos valores numéricos. El resultado de la aplicación de cualquier operador relacional es siempre un
bolean
En este listado se generan números aleatorios empleando un objeto de tipo
Random
Tabla 1: operadores relacionales
| Operador | Operación que realiza |
| == | Test de igualdad |
| != | Test de desigualdad |
| < | Menor que |
| > | Mayor que |
| <= | Menor o igual que |
| >= | Mayor o igual que |
: Uso de operadores relacionales en Java.
: Posible resultado de la ejecución del código del listado 4
6.3Operadores lógicos
Estos operadores se aplican sobre valores lógicos, es decir, sobre datos de tipo
boolean
Tabla 4: Operadores lógicos
| Operador | Operación que realiza |
| ! | Not lógico |
| && | And lógico |
| || | Or lógico |
: Este código muestra las tablas de verdad de los operadores lógicos AND y OR
En este primer artículo de la serie hemos presentado qué es la plataforma Java y cuál es el papel que Java, el lenguaje de programación, juega en ella. Hemos visto cuáles son las características de Java como lenguaje de programación, y hemos aprendido a manejar las herramientas básicas del kit de desarrollo Java. También hemos visto cuáles son los tipos de datos primitivos con los que cuenta Java, cómo definir variables, y los operadores aritméticos, relacionales y lógicos definidos dentro del lenguaje.
Todavía nos queda mucho por andar; en el siguiente artículo de la serie presentaremos otros tipos de datos que se emplean muy comúnmente en el lenguaje, aunque esta vez no son primitivos: Strings, enumeraciones y arrays. Haremos un repaso rápido de la librería matemática que proporciona Java, y mostraremos las estructuras de control de flujo (bucles y condicionales) con las que cuenta el lenguaje. Os espero a todos el mes que viene.
Muy buen aporte, andaba buscando un tutorial sobre Java para unos amigos, este me parece muy bueno para los que se quieren iniciar en Java.
Como recomendaciones: Corregir el HTML (algunos fragmentos lucen descuadrados) y Mencionar que existen IDEs que facilitan el trabajo a la hora de desarrollar en Java.
Gracias!
Muy Bueno, estare esperando impaciente los siguientes avances del tutorial. Saludos
El artículo me parece una muy buena iniciativa, se lo recomendaré a varios amigos míos aquí, la verdad que en mi país (República Dominicana) me parece que no hay muchos programadores Java, este manual puede colaborar en ese sentido.
lo único que no ví con buenos ojos es que en el momento de explicar las variables de entorno, me dió la impresión de que se pensaba que Windows es el único Sistema Operativo que existe. Pero por lo demás todo bien.
Quiero felicitar a Abraham y a todos los que hayan colaborado con esta idea, y sería de mucha utilidad que hicieran algo parecido con JEE o JME, creo que se podrían poner en contacto con otros miembros de la comunidad para hacer esto posible (no tienen que ser los que mantienen JavaHispano obligatoriamente).
Saludos!
Sólo decir que esta serie de artículos la escrito por petición de la revista sólo programadores, y se basa en un tutorial que he escrito hace bastantes años: Java básico con ejemplos. He tratado de actualizar varias cosas respecto al tutorial; añadido y modificado algunos ejemplos; cambiado como explicaba algunas cosas y del tercer artículo en adelante cada artículo lleva un video flash de complemento.
Saludos.
Hola Abraham,
¿Tienes pensado alojar el tutorial completo en algún sitio?
Muchas gracias por el trabajo de divulgación: lo más básico es también lo más importante.
Un saludo.
¿A qué te refieres por "el tutorial completo"? ¿A todos los artículos?
Gracias por el aporte!!
Siempre me ha parecido Java como uno de los mejores lenguajes, y este tipo de "ayudas" siempre son bienvenidas para los programadores que inician. Ahora mismo lo recomiendo a un amigo!
Saludos desde Guadalajara, Mexico
¿En algún tema se trata ese fantasma tan misterioso y desconocido llamado Classpath? Es un tema que a la gente que empieza le cuesta mucho, sobretodo desde que los IDEs lo hacen casi todo y luego no saben por que fuera del IDE no funciona, o por que los ficheros .jar no se ejecutan bien, o las aplicaciones web...
Gracias por el trabajo, Abraham
Hola Abraham,
Muchas gracias por tu aportación!
Francesc Rosés
P.S.: Greeneyed, lo de contar lo del classpath es un calvario. No entiendo como a la gente le cuesta tanto entender el concepto si, en teoría, entienden el concepto de path. Si además, pretendes explicar cómo funciona el classpath en un IDE, te puedes morir!
Jejeje, por eso lo digo. El problema parece aparecer si empiezas aprendiendo como funciona en un IDE, en cambio si sabes como funciona realmente, configurarlo en el IDE es "otra forma de decirlo" pero se entiende mejor. O eso creo. El problema de estas cosas es que explicarlas cuando tu ya las entiendes es difícil, precisamente por que como ya lo entiendes, a ti te parece clarísimo.
Daniel, tienes toda la razón del mundo en que el classpath se convierte en un quebradero de cabeza para los novatos en cuanto quieren ejecutar su aplicación fuera del IDE. Pero, aún así, no lo veo muy adecuado para un curso de introducción. Un tema tan "feo" y tan de "consola" desanimaría mucho a los novatos en Java, que es a la gente a la que le puede interesar este tipo de material.
Bueno, el problema es que ese tema tan "feo" es fundamental en Java y fuente de innumerables quebraderos de cabeza para los que lo pasan por encima.
Y "de consola" no tiene mas que lo quieras ponerle. Lo pongas en consola, con el IDE, el que tiene tu aplicacion web por que lo dice el estandar, los applets... todas las aplicaciones Java se ejecutan con un classpath, y no saber que és y como funciona a mi me parece un agujero tremendo. Luego aprenden que todo se arregla poniendo los .jar en lib/ext del JRE y tan felices... o eso creen.
Pero bueno, solo es una opinion.
Muy bueno!, exelente para quienes quieren iniciar en JAVA, solo algunos detalles que ya comento rogerjose81, de resto muy bueno.
Mi recomendación a todos los demas lectores es que lean primero este curso, ya que es muy simple y corto, y luego se bajen el tutorial Java Basico con ejemplos. Los dos estan muy relacionados. Yo primero no entendia muy bien que es lo que decia el tutoria, pero luego de leer este curso entendi perfectamente...
Gracias abraham...!
puedo consultarte por algun correo o por este método?.......... Gracias
Buen aporte... Simplemente bueno.... Jeje
Hola Abraham, primero q nada felicitaciones por el el exelente trabajo q hiciste, es el mojor q encontre para principiantes; el problema es q no se donde encontrar los articulos siguientes, si me informaras al respecto te lo agradeceria muchisimo!
Saludos y gracias !!!
Hola Abraham, primero q nada felicitaciones por el el exelente trabajo q hiciste, es el mojor q encontre para principiantes; el problema es q no se donde encontrar los articulos siguientes, si me informaras al respecto te lo agradeceria muchisimo!
Saludos y gracias !!!
hola amigos me pueden mandar documentos sobre informacion de java osea desde lo basico hasta lo complejo tema por tema xfavor les dejo mi correo dastas_15@hotmail.com
está bien el tutorial para linea de comandos pero cómo se lleva eso a una pagina web, me refiero que como se pone los botones los listbox combox ,las rejillas , vamos como en el antiguo visual basic 6.se puede hacer éso con java.Me gustaria saber como se hace eso y si es tambien con linea de comandos o con el programa que mencionaste antes el Netbean..Mi correo es angel_fles@yahoo.es podrías recomendarme algun manual de lo antes descrito.Gracias por todo.
Me sirvió de mucho este artículo!! Súper...
Exelente Manual. muchas gracias, no sabe como me ha ayudado este ultimo tiempo maestro. Desde su manual Java version 2003 hasta la fecha de hoy...
Excelente aporte
muy bueno este aporte, muchas felicidades profesor.
from: Republica Dominicana
hola quisiera decirte que quisiera aprender mas sobre conetividad de base de datos sql server y todo con la manipulación d edatos con java avanzado gracias.
hola, mi nombre es liliana, y me parece muy interesante lo que haces en este tutorial, me gustaria saber si existe la posibilidad de que me facilites información mas adelantada sobre java. Estoy estudiando el quinto semestre de informatica y en el ultimo lenguaje que estoy viendo me dan java pero la profesora no es muy buena explicando que se diga y necesito hacer un programa que contenga menus y eso, pero aun no se como hacerlo. no entiendo como lograr que java se vuelva grafico!!!! te agradezco si me puedes ayudar.
Muy bien explicado .
Gracias
En realidad aprendi muchas cosas que en la berraca universidad jamas imparten -.- Gracias!!!!
Abraham....
hola, es un placer estar aca leyendo tus artiulos...
te cuento que soy de Argentina - San Luis, y hace unos dias compre la Revista Solo Programadores y veo que es la cuarta parte del curso, quisiera saber como hago para ver las otras dos que me faltan... no las consigo a las revistas asi que me gustaria leerlas aca en la pagina.
Tambien queria contarte que estoy haciendo un curso que dan aca en la Universidad Nacional de San Luis (UNSL) dicatdo por PROYDESA con libros oficiales de SUN, de los cuales tengo, aparte de los libros, los PPS con los libros completos asi que me gustaria ayudarte con esto, soy nuevo en JAVA y quiero aprender a programar, saludos desde mi GNU/Linux y aguante el Soft-Libr.
Acuña Juan Matias
San Luis Argentina.
Buen aporte, gracias
1: crear un progrma que permita el ingreso de n numeros a una lista luego debera sumar el numero mayor y menor
2 :ingrese datos de una persona en un jtable luego debra buscar ala persona mediante el campo código
3:crear un programa que permita determinar la suma y contar los digios pares e iumpares
muy bueno sigue con los aportes
hola a to2!!!
mi conexion a internet no me permite realizar descargas si alguien pudiera hacerme el favor d enviarme el tutorial completo a mi correo le staria muy agradci2 d verdad!!!!
uchihah@terra.es
salu2 a to2 y gracias d antemano
Saludos terrícolas... Estoy recien 1 mes en el primer año de sistemas y el profe ya nos tienen programando en java... los ejemplos de aca me han servido mucho... Sigan así...
jlñ
Muy buena la introducción...!
buenisimo, facil al grano, muy entendible. exelente
All of our Louis Vuitton Wallets replica handbags are made with the highest quality materials, including genuine cowhide leather. The quality of replica louis vuitton wallets is the best you will find in cheap louis vuitton wallets anywhere. It is our goal to make our customers happy by providing superior quality louis vuitton mens wallets knockoffs at favorable prices, as well as good services. louis vuitton wallets for men listed on www.moodpackage.com are made of highest quality designer handbags materials blending with detailed replica handbags imitation. These designer handbags knockoffs shopping for less are attractive for not only their brand name, but also the favorable price. Whatever you look for in a fake bag, our Louis Vuitton Wallets designer replicas will meet you requirement and make you satisfied. Choose replica designer Louis Vuitton Wallets, for an experience, charming appearance, a lifestyle.
hola a todos.
muy buen aporte sobre el inicio de la programacion en java felicito a Abraham de antemano por el tiempo y la dedicacion a la creacion de esto manuales que ofrecen una vision mas suave sobre la programacion en java.. . la verdad me gustaria aprender mas sobre este lenguaje ya que esta muy bien posicionado en el mundo del desarrollo, tambien me gustaria poderme contactar con ACUÑA JUAN MATIAS por si me pusiese enviar los libros q tiene o el enlace para bajarlos sobre java en el curso q hizo realmente me serian de gran ayuda si me pudiese hacer ese favor.
agradezco de ante mano la atencion prestada.
Freddy power by Colombia
correo: freddysijo83@hotmail.com
Escribe tu comentario