jueves, 30 de abril de 2009
PRIMEROS PASOS EN JAVA
Una mínima aplicación en Java
La aplicación más pequeña posible es la que simplemente imprime un mensaje en la pantalla. Tradicionalmente, el mensaje suele ser "Hola Mundo!". Esto es justamente lo que hace el siguiente fragmento de código: // Aplicación HolaMundo de ejemplo
//
class HolaMundoApp {
public static void main( String args[] ) {
System.out.println( "Hola Mundo!" );
}
}
HolaMundo
Hay que ver en detalle la aplicación anterior, línea a línea. Esas líneas de código contienen los componentes mínimos para imprimir Hola Mundo! en la pantalla. Es un ejemplo muy simple, que no instancia objetos de ninguna otra clase; sin embargo, accede a otra clase incluida en el JDK. // Aplicación HolaMundo de ejemplo
//
Estas dos primeras líneas son comentarios. Hay tres tipos de comentarios en Java, // es un comentario orientado a línea. class HolaMundoApp {
Esta línea declara la clase HolaMundoApp. El nombre de la clase especificado en el fichero fuente se utiliza para crear un fichero nombredeclase.class en el directorio en el que se compila la aplicación. En este caso, el compilador creará un fichero llamado HolaMundoApp.class. public static void main( String args[] ) {
Esta línea especifica un método que el intérprete Java busca para ejecutar en primer lugar. Igual que en otros lenguajes, Java utiliza una palabra clave main para especificar la primera función a ejecutar. En este ejemplo tan simple no se pasan argumentos.
public significa que el método main() puede ser llamado por cualquiera, incluyendo el intérprete Java.
static es una palabra clave que le dice al compilador que main se refiere a la propia clase HolaMundoApp y no a ninguna instancia de la clase. De esta forma, si alguien intenta hacer otra instancia de la clase, el método main() no se instanciaría.
void indica que main( ) no devuelve nada. Esto es importante ya que Java realiza una estricta comprobación de tipos, incluyendo los tipos que se ha declarado que devuelven los métodos.
args[ ] es la declaración de un array de Strings. Estos son los argumentos escritos tras el nombre de la clase en la línea de comandos: %java HolaMundoApp arg1 arg2 ...
System.out.println( "Hola Mundo!" );
Esta es la funcionalidad de la aplicación. Esta línea muestra el uso de un nombre de clase y método. Se usa el método println( ) de la clase out que está en el paquete System.
A una variable de tipo class se puede acceder sin necesidad de instanciar ningún objeto de esa clase. Por ello ha de ser un tipo básico o primitivo, o bien puede ser una referencia que apunta a otro objeto. En este caso, la variable out es una referencia que apunta a un objeto de otro tipo, aquí una instancia de la clase PrintStream (un objeto PrintStream), que es automáticamente instanciado cuando la clase System es cargada en la aplicación. Esto es algo semejante al hecho de que los objetos stream de entrada/salida, cin y cout son automáticamente instanciados y enlazados a los dispositivos estándar de entrada y salida cuando un programa C++ comienza su ejecución.
El método println( ) toma una cadena como argumento y la escribe en el stream de salida estándar; en este caso, la ventana donde se lanza la aplicación. La clase PrintStream tiene un método instanciable llamado println( ), que lo hace e presentar en la salida estándar del Sistema el argumento que se le pase. En este caso, se utiliza la variable o instancia de out para acceder al método. }
}
Finalmente, se cierran las llaves que limitan el método main() y la clase HolaMundoApp. En C++, la función main( ) en un programa puede tener cualquiera de los siguientes prototipos: tipo_retorno main( )
tipo_retorno main( int argc,char argv[ ] )
El tipo_retorno puede ser cualquier tipo válido, o void, para indicar que la función no tiene que devolver valor alguno. La lista de argumentos puede estar vacía, o contener los argumentos de soporte para pasar parámetros en la línea de comandos. Esta forma de implementación la función difiere de la que acaba de presentar para Java, que siempre habrá de ser la misma, independientemente de los valores de retorno o la lista de parámetros que se pasen en la lista de argumentos a la aplicación.
La aplicación más pequeña posible es la que simplemente imprime un mensaje en la pantalla. Tradicionalmente, el mensaje suele ser "Hola Mundo!". Esto es justamente lo que hace el siguiente fragmento de código: // Aplicación HolaMundo de ejemplo
//
class HolaMundoApp {
public static void main( String args[] ) {
System.out.println( "Hola Mundo!" );
}
}
HolaMundo
Hay que ver en detalle la aplicación anterior, línea a línea. Esas líneas de código contienen los componentes mínimos para imprimir Hola Mundo! en la pantalla. Es un ejemplo muy simple, que no instancia objetos de ninguna otra clase; sin embargo, accede a otra clase incluida en el JDK. // Aplicación HolaMundo de ejemplo
//
Estas dos primeras líneas son comentarios. Hay tres tipos de comentarios en Java, // es un comentario orientado a línea. class HolaMundoApp {
Esta línea declara la clase HolaMundoApp. El nombre de la clase especificado en el fichero fuente se utiliza para crear un fichero nombredeclase.class en el directorio en el que se compila la aplicación. En este caso, el compilador creará un fichero llamado HolaMundoApp.class. public static void main( String args[] ) {
Esta línea especifica un método que el intérprete Java busca para ejecutar en primer lugar. Igual que en otros lenguajes, Java utiliza una palabra clave main para especificar la primera función a ejecutar. En este ejemplo tan simple no se pasan argumentos.
public significa que el método main() puede ser llamado por cualquiera, incluyendo el intérprete Java.
static es una palabra clave que le dice al compilador que main se refiere a la propia clase HolaMundoApp y no a ninguna instancia de la clase. De esta forma, si alguien intenta hacer otra instancia de la clase, el método main() no se instanciaría.
void indica que main( ) no devuelve nada. Esto es importante ya que Java realiza una estricta comprobación de tipos, incluyendo los tipos que se ha declarado que devuelven los métodos.
args[ ] es la declaración de un array de Strings. Estos son los argumentos escritos tras el nombre de la clase en la línea de comandos: %java HolaMundoApp arg1 arg2 ...
System.out.println( "Hola Mundo!" );
Esta es la funcionalidad de la aplicación. Esta línea muestra el uso de un nombre de clase y método. Se usa el método println( ) de la clase out que está en el paquete System.
A una variable de tipo class se puede acceder sin necesidad de instanciar ningún objeto de esa clase. Por ello ha de ser un tipo básico o primitivo, o bien puede ser una referencia que apunta a otro objeto. En este caso, la variable out es una referencia que apunta a un objeto de otro tipo, aquí una instancia de la clase PrintStream (un objeto PrintStream), que es automáticamente instanciado cuando la clase System es cargada en la aplicación. Esto es algo semejante al hecho de que los objetos stream de entrada/salida, cin y cout son automáticamente instanciados y enlazados a los dispositivos estándar de entrada y salida cuando un programa C++ comienza su ejecución.
El método println( ) toma una cadena como argumento y la escribe en el stream de salida estándar; en este caso, la ventana donde se lanza la aplicación. La clase PrintStream tiene un método instanciable llamado println( ), que lo hace e presentar en la salida estándar del Sistema el argumento que se le pase. En este caso, se utiliza la variable o instancia de out para acceder al método. }
}
Finalmente, se cierran las llaves que limitan el método main() y la clase HolaMundoApp. En C++, la función main( ) en un programa puede tener cualquiera de los siguientes prototipos: tipo_retorno main( )
tipo_retorno main( int argc,char argv[ ] )
El tipo_retorno puede ser cualquier tipo válido, o void, para indicar que la función no tiene que devolver valor alguno. La lista de argumentos puede estar vacía, o contener los argumentos de soporte para pasar parámetros en la línea de comandos. Esta forma de implementación la función difiere de la que acaba de presentar para Java, que siempre habrá de ser la misma, independientemente de los valores de retorno o la lista de parámetros que se pasen en la lista de argumentos a la aplicación.
miércoles, 29 de abril de 2009
Clases Java
clases system
Entrada y salida estandar:
La clase System proporciona automáticamente cuando comienza la ejecución de un programa, un stream para leer del dispositivo estándar de entrada (normalmente, el teclado), un stream para presentar información en el dispositivo estándar de salida (normalmente, la pantalla) y otro stream donde presentar mensajes de error, que es el dispositivo estándar de error
Los tres streams de entrada/salida están controlados por esta clase y se referencian como:
Las variables internas de la clase System out y err son de tipo PrintStream, es decir, que tienen acceso a los métodos de la clase PrintStream. La clase PrintStream proporciona tres métodos para poder visualizar información: print( ), println( ) y write( ).
Los dos primeros ya se han utilizado en el Tutorial ampliamente, con lo que no resultan extrañas sentencias como:System.out.print( … );
System.out.println( … );
System.out.write( … );
Los métodos print( ) y println( ) son semejante, la única diferencia es que println( ) coloca automáticamente un carácter nueva línea en el stream, tras la lista de argumentos que se le pase.
El método write( ) se utiliza para escribir bytes en el stream, es decir, para escribir datos que no pueden interpretarse como texto, como pueden ser los datos que componen un gráfico.
Los métodos print() y println( ) aceptan un argumento de cualquiera de los siguientes tipos: Object, String, char[ ], int, long, float, double o boolean. En cada caso, el sistema convierte el dato a un conjunto de caracteres que transfiere al dispositivo estándar de salida. Si se invoca al método println( ) sin argumentos, simplemente se inserta un carácter nueva línea en el stream.
Además, hay versiones sobrecargadas de estos métodos para visualizar adecuadamente objetos de varias clases estándar. Por ejemplo, las siguientes sentencias:Thread obj = new Thread;
System.out.println( obj );
Producirían la siguiente salida en pantalla: Thread[Thread-4,5,main]
Cuando se utilizan print( ) y println( ) sobre un objeto, la salida dependerá de ese objeto; por ejemplo, si se imprime un objeto String, visualizaremos el contenido de la cadena y si se imprime un objeto Thread obtenemos una salida en formato:claseThread[nombre,prioridad,grupo
miércoles, 8 de abril de 2009
tipos de datos y variables
1-Aberiguar para que sirven los SIG. Comandos funciones e interpretes que pertenecen al paquete Javaa) JAVAC
b) JAVA
c) Applet viewer
d) JAVADOC
2- Tipos de Datosa) Investiga sobre los distintos tipos de datos y variables:Enteros, Reales, Caracter y Buleanos.b) las Variables
2 )Los números enteros son una generalización del conjunto de números naturales que incluye números enteros negativos (resultados de restar a un número natural otro mayor), además del cero.
El hecho de que un número sea entero, significa que no tiene parte decimal .
3) Los números reales incluyen tanto a los números racionales (como: 31, 37/22, 25,4) como a los números irracionales (aquellos que no se pueden expresar de manera fraccionaria y tienen infinitas cifras decimales no periódicas, tales como:
4) Números reales son aquellos que poseen una expresión decimal trabajar con operandos booleanos. Realizan las operaciones lógicas de conjunción (AND),disyunción (OR) ,negación ( NOT ) y la disyunción exclusiva ( XOR ).b) Las variables son la manera en que indicamos al compilador el espacio en memoria que debe de reservar para almacenar la información .Podemos acceder a un dato alojado en la memoria por medio de una variable.
Toda variable tiene un nombre para poder identificarla y realizar operaciones. Antes de trabajar con alguna variable debemos declararla en el programa. Por ejemplo: String cliente; Aquí estamos reservando memoria para una variable de tipo String y la identificamos con el nombre “cliente”.
De ahora en adelante si en el programa hablamos de cliente, estamos haciendo referencia a esa porción de memoria y al valor que contiene .Podemos asignarle algún valor en el momento de declarar una variable. Por ejemplo: String cliente = "Isaac Newton";Aquí reservamos memoria para una cadena de caracteres y le asignamos el valor "Isaac Newton".
b) JAVA
c) Applet viewer
d) JAVADOC
2- Tipos de Datosa) Investiga sobre los distintos tipos de datos y variables:Enteros, Reales, Caracter y Buleanos.b) las Variables
2 )Los números enteros son una generalización del conjunto de números naturales que incluye números enteros negativos (resultados de restar a un número natural otro mayor), además del cero.
El hecho de que un número sea entero, significa que no tiene parte decimal .
3) Los números reales incluyen tanto a los números racionales (como: 31, 37/22, 25,4) como a los números irracionales (aquellos que no se pueden expresar de manera fraccionaria y tienen infinitas cifras decimales no periódicas, tales como:
4) Números reales son aquellos que poseen una expresión decimal trabajar con operandos booleanos. Realizan las operaciones lógicas de conjunción (AND),disyunción (OR) ,negación ( NOT ) y la disyunción exclusiva ( XOR ).b) Las variables son la manera en que indicamos al compilador el espacio en memoria que debe de reservar para almacenar la información .Podemos acceder a un dato alojado en la memoria por medio de una variable.
Toda variable tiene un nombre para poder identificarla y realizar operaciones. Antes de trabajar con alguna variable debemos declararla en el programa. Por ejemplo: String cliente; Aquí estamos reservando memoria para una variable de tipo String y la identificamos con el nombre “cliente”.
De ahora en adelante si en el programa hablamos de cliente, estamos haciendo referencia a esa porción de memoria y al valor que contiene .Podemos asignarle algún valor en el momento de declarar una variable. Por ejemplo: String cliente = "Isaac Newton";Aquí reservamos memoria para una cadena de caracteres y le asignamos el valor "Isaac Newton".
JavaCC (Java Compiler Compiler) es un generador de analizadores sintácticos de código abierto para el lenguaje de programación Java. JavaCC es similar a Yacc en que genera un parser para una gramática presentada en notación BNF, con la excepción de que la salida es en código Java. No como en Yacc, JavaCC genera analizadores descendentes (top-down), que se limita a la clase de gramáticas LL (K) (en particular, la recursión desde izquierda no se puede usar). Los tres constructores que lo conforman, JJTree, construyen sus árboles de abajo hacia arriba.
JavaCC está licenciado bajo una licencia BSD.
En 1996, Sun Microsystems liberó un parser llamado Jack. Los desarrolladores responsables de Jack crearon su propia compañía llamada Metamata y cambiaron el nombre Jack a JavaCC. Metamata se convirtió en WebGain. Después de que WebGain finalizara sus operaciones, JavaCC se traslado a su ubicación actual.
Javadoc es una utilidad de Sun Microsystems para la generación de documentación de APIs en formato HTML a partir de código fuente Java.
java doc es el estándar de la industria para documentar clases de Java. La mayoría de los IDEs los generan automáticamente.
apple viewer
Un applet es una mínima aplicación Java diseñada para ejecutarse en un navegador Web. Por tanto, no necesita preocuparse por un método main () ni en dónde se realizan las llamadas. El applet asume que el código se está ejecutando desde dentro de un navegador. El appletviewer se asemeja al mínimo navegador. Espera como argumento el nombre del fichero html que debe cargar, no se le puede pasar directamente un programa Java. Este fichero html debe contener una marca que especifica el código que cargará el appletviewer: El appletviewer crear un espacio de navegación, incluyendo un área gráfica, donde se ejecutará el applet, entonces llamará a la clase applet apropiada. En el ejemplo anterior, el appletviewer cargará una clase de nombre HolaMundo y le permitirá trabajar en su espacio gráfico
JavaCC está licenciado bajo una licencia BSD.
En 1996, Sun Microsystems liberó un parser llamado Jack. Los desarrolladores responsables de Jack crearon su propia compañía llamada Metamata y cambiaron el nombre Jack a JavaCC. Metamata se convirtió en WebGain. Después de que WebGain finalizara sus operaciones, JavaCC se traslado a su ubicación actual.
Javadoc es una utilidad de Sun Microsystems para la generación de documentación de APIs en formato HTML a partir de código fuente Java.
java doc es el estándar de la industria para documentar clases de Java. La mayoría de los IDEs los generan automáticamente.
apple viewer
Un applet es una mínima aplicación Java diseñada para ejecutarse en un navegador Web. Por tanto, no necesita preocuparse por un método main () ni en dónde se realizan las llamadas. El applet asume que el código se está ejecutando desde dentro de un navegador. El appletviewer se asemeja al mínimo navegador. Espera como argumento el nombre del fichero html que debe cargar, no se le puede pasar directamente un programa Java. Este fichero html debe contener una marca que especifica el código que cargará el appletviewer: El appletviewer crear un espacio de navegación, incluyendo un área gráfica, donde se ejecutará el applet, entonces llamará a la clase applet apropiada. En el ejemplo anterior, el appletviewer cargará una clase de nombre HolaMundo y le permitirá trabajar en su espacio gráfico
lunes, 6 de abril de 2009
arquitectura natural
Arquitectura natural
El código generado por el compilador Java es independiente de la arquitectura: podría
Ejecutarse en un entorno UNIX, Mac o Windows.
El motivo de esto es que el que realmente ejecuta el código generado por el compilador no es el procesador del ordenador directamente,si no que este se ejecuta mediante una máquina virtual.
Esto permite que los Apples de una
Web pueda ejecutarlos cualquier máquina que se conecte a ella independientemente de que
Sistema operativo emplee (siempre y cuando el ordenador en cuestión tenga instalada una
Máquina virtual de Java).
Rendimiento medio
En la actualidad la velocidad del procesado de código java es semejante a la de c++, hay ciertas pruebas estándares de comparación (bench mak), en las cuales java gana a c++ y viceversa. Esto es asi gracias al uso del compiladores just intime, los cuales reducen los bitecodes de java en código para una determinada cpu q no presisa de maquina viertual para ser ejecutado, y guarda
El resultado de dicha conversión, volviendo lo a llamar en caso de volverlos a necesitar , lo q se edita en este caso la sobre carga de trabajo asociada a la interpretación del bit code.
El código generado por el compilador Java es independiente de la arquitectura: podría
Ejecutarse en un entorno UNIX, Mac o Windows.
El motivo de esto es que el que realmente ejecuta el código generado por el compilador no es el procesador del ordenador directamente,si no que este se ejecuta mediante una máquina virtual.
Esto permite que los Apples de una
Web pueda ejecutarlos cualquier máquina que se conecte a ella independientemente de que
Sistema operativo emplee (siempre y cuando el ordenador en cuestión tenga instalada una
Máquina virtual de Java).
Rendimiento medio
En la actualidad la velocidad del procesado de código java es semejante a la de c++, hay ciertas pruebas estándares de comparación (bench mak), en las cuales java gana a c++ y viceversa. Esto es asi gracias al uso del compiladores just intime, los cuales reducen los bitecodes de java en código para una determinada cpu q no presisa de maquina viertual para ser ejecutado, y guarda
El resultado de dicha conversión, volviendo lo a llamar en caso de volverlos a necesitar , lo q se edita en este caso la sobre carga de trabajo asociada a la interpretación del bit code.
multit theart
soporta de modo nativo los theadt hilos , sin necesidad del uso de librerias especificas (como es el caso de c++) esto le permite ademas q cada hilo de una aplicacion java pueda correr en una cpu distinta , si la aplicacion se ejecuta en una maquina q posee varias cpu. las aplicaicones c++ no son capases de distribuir de modo tranparente para el programador la carga entre varias cpu
actividad: averiguar para q sirven los siguientes comandos funciones e interpretes q pertenesen al paquete java:
a) javac
b) java
c) applet viewer.
d) javadoc
a) tipos de datos: investigasobre los distintos tipos de datos y variables :
enteros, reales, caracter, buliano
b) las variables
JavaCC (Java Compiler Compiler) es un generador de analizadores sintácticos de código abierto para el lenguaje de programación Java. JavaCC es similar a Yacc en que genera un parser para una gramática presentada en notación BNF, con la excepción de que la salida es en código Java. No como en Yacc, JavaCC genera analizadores descendentes (top-down), que se limita a la clase de gramáticas LL (K) (en particular, la recursión desde izquierda no se puede usar). Los tres constructores que lo conforman, JJTree, construyen sus árboles de abajo hacia arriba.
JavaCC está licenciado bajo una licencia BSD.
En 1996, Sun Microsystems liberó un parser llamado Jack. Los desarrolladores responsables de Jack crearon su propia compañía llamada Metamata y cambiaron el nombre Jack a JavaCC. Metamata se convirtió en WebGain. Después de que WebGain finalizara sus operaciones, JavaCC se traslado a su ubicación actual.
JavaCC está licenciado bajo una licencia BSD.
En 1996, Sun Microsystems liberó un parser llamado Jack. Los desarrolladores responsables de Jack crearon su propia compañía llamada Metamata y cambiaron el nombre Jack a JavaCC. Metamata se convirtió en WebGain. Después de que WebGain finalizara sus operaciones, JavaCC se traslado a su ubicación actual.
Javadoc es una utilidad de Sun Microsystems para la generación de documentación de APIs en formato HTML a partir de código fuente Java.
Javadoc es el estándar de la industria para documentar clases de Java. La mayoría de los IDEs los generan automáticamente.
Llamadas a Applets con appletviewer
Un applet es una mínima aplicación Java diseñada para ejecutarse en un navegador Web. Por tanto, no necesita preocuparse por un método main () ni en dónde se realizan las llamadas. El applet asume que el código se está ejecutando desde dentro de un navegador. El appletviewer se asemeja al mínimo navegador. Espera como argumento el nombre del fichero html que debe cargar, no se le puede pasar directamente un programa Java. Este fichero html debe contener una marca que especifica el código que cargará el appletviewer: El appletviewer crear un espacio de navegación, incluyendo un área gráfica, donde se ejecutará el applet, entonces llamará a la clase applet apropiada. En el ejemplo anterior, el appletviewer cargará una clase de nombre HolaMundo y le permitirá trabajar en su espacio gráfico
DEFINICION
Definición de big endian y little endian
Big y Little Endian se refiere al formato en el cual un dato con múltiples bytes se ordena para escribirse en la memoria de una computadora.
En el formato Big Endian el extremo más grande de cualquier dato aparece en primer lugar. El segundo formato Little Endian se almacena al contrario, es decir al inicio se pone el dato más pequeño.
Conocer estos formatos nos ayudan a interpretar archivos correctamente, ya que el uso entre formatos Big-endian y Little endian depende de la arquitectura del procesador. Un ejemplo más concreto de esto es Intel(Little Endian) y Apple clásico (Big Endian).
Big y Little Endian se refiere al formato en el cual un dato con múltiples bytes se ordena para escribirse en la memoria de una computadora.
En el formato Big Endian el extremo más grande de cualquier dato aparece en primer lugar. El segundo formato Little Endian se almacena al contrario, es decir al inicio se pone el dato más pequeño.
Conocer estos formatos nos ayudan a interpretar archivos correctamente, ya que el uso entre formatos Big-endian y Little endian depende de la arquitectura del procesador. Un ejemplo más concreto de esto es Intel(Little Endian) y Apple clásico (Big Endian).
Definición de big endian y little endian
Big y Little Endian se refiere al formato en el cual un dato con múltiples bytes se ordena para escribirse en la memoria de una computadora.
En el formato Big Endian el extremo más grande de cualquier dato aparece en primer lugar. El segundo formato Little Endian se almacena al contrario, es decir al inicio se pone el dato más pequeño.
Conocer estos formatos nos ayudan a interpretar archivos correctamente, ya que el uso entre formatos Big-endian y Little endian depende de la arquitectura del procesador. Un ejemplo más concreto de esto es Intel(Little Endian) y Apple clásico (Big Endian).
Big y Little Endian se refiere al formato en el cual un dato con múltiples bytes se ordena para escribirse en la memoria de una computadora.
En el formato Big Endian el extremo más grande de cualquier dato aparece en primer lugar. El segundo formato Little Endian se almacena al contrario, es decir al inicio se pone el dato más pequeño.
Conocer estos formatos nos ayudan a interpretar archivos correctamente, ya que el uso entre formatos Big-endian y Little endian depende de la arquitectura del procesador. Un ejemplo más concreto de esto es Intel(Little Endian) y Apple clásico (Big Endian).
miércoles, 1 de abril de 2009
portable: en java no hay aspecto dependientes de la implementacion, todad las inmplementaciones de java siguen los mismos estandar en cuanto a tamaño y a almacenamito de datos, esto no ocurre asi en c++ por ejemplo. en este un entero puede tener un tamaño de 16,32, o mas bits siendo la unica limitacion q un enreto sea mayor q un sort m nenor q un long int. C++ bajo sistema operatibo uinix almacena los datas en formato little endian mientra q bajo windows lo hace en formato big endian java lo hace siempre en little endian para evitar confucion.
nota consepto de endiannes
Suscribirse a:
Entradas (Atom)