“Año del centenario del descubrimiento de Macchu Picchu para el mundo”

Facultad de Ingeniería Y Arquitectura Escuela Académico Profesional de Ingeniería de Sistemas E Informática Castellano II

Lic. María Subiría R. Java Carlos Alberto Porras Porta 2011176027 Semestre II - 2011 IIC

Chosica, diciembre del 2011

1

Dedico este trabajo a mi familia por el apoyo que me brindan día a día para poder cumplir mis metas, mis sueños, gracias a ese apoyo eh podido lograr lo que hasta ahora no hubiese sido posible sin ellos.

2

ÍNDICE Índice…………………………………………………………………………………………………..………….3 Introducción………………………………………………………………………………………………………4 Capítulo I: 1.1 Origen de Java…………………………………………………………………….…………..………….…5. 1.2 Características de Java…………………………………………………………….………………………………………….….6 1.2.1 1.2.2 1.2.3 1.2.4 1.2.5 1.2.6 Simplicidad……………………………………………………………………………………..7 Orientada a objetos……………………………………………………………...…………….8 Distribuido ………………………………………………………………………..……………8 Independiente de la plataforma………………………………………………………………8 Robusto…………………………………………………………………………………………9 Multiprogramación……………………………………………………………..………………9

1.3 lo nuevo en java……………………………………………………………………………...………………9 1.4 Tipos de programas en Java………………………………………………………………………………10 Applets……………………………………………………………………………………………………….10 Aplicaciones……………………………………………………………………………….…..……………10 Servlets……………………………………………………………………….….…………...……………..10 Capítulo II: 2.1 Sintaxis de Java…………………………………………………………………….………………………11 2.1.1. Comentarios…………………………………………………………….………………………11 2.1.2. Literales………………………………………………………………….………………………12 2.1.3. Palabras reservadas………………………………………………………...…………………12 2.1.4. Declaración de variables………………………………………………………………………13 2.1.5. Nomenclatura de Variables……………………………………………………………………13 2.1.6. Expresiones y Operadores………………………………………………….…………………14 2.1.7. Controles de Flujo…………………………………………………………..………………….16 2.1.7.1 estructuras de decisión o salto………………………………………….…………………..16 Instrucciones if – else…………………………………………………………………………16 Instrucción switch………………………………………………………….………………….17 2.1.7.2 estructuras de iteración…………………………………………………..………………….17 Instrucción for…………………………………………………………………………………18 Instrucción while…………………………………………………………….………………..18

3

..1..1 El lenguaje………………………………………………………………………..…………...23 3.....8 la clase String ……………………………………………………………...2 Conclusiones………………………………………………………………………………..2....……………......23 3...……………………24 Capítulo IV: 4.1 funciones matemáticas…………………………………………………..1..3 la clase float……………………………………………………………..……………………30 5.33 4 ..………………32 Bibliografía…………………………………………………………………………………………….1.....1.2.....4 Costes de desarrollo………………………………………………………………....1....1.1.6 Aprendizaje………………………………………………………………...24 4.1 una pequeña aplicación en java……………………………………………………….26 4.1...2 la clase carácter…………………………………………………………………………………21 3.28 4..2 Apariencia……………………………………………………………………….1..........………30 5...……………………....1.……………......………………………22 3.………………18 Capítulo III: 3....1 programa básico en java……………………………………………………………....6 la clase long………………………………………………………………..………….1.2 desventajas de java.1 Ventajas de Java…………………………………………………………………………….1......1 Desarrollo rápido de aplicaciones……………………………………………………..5 Mantenimiento y soporte………………………………………………………………………....1.28 4..25 4.………...……………29 Capitulo V: 5.27 4....……………………22 3.5 la clase integer……………………………………………………………..……………20 3.2.....………24 4.……………..……………………..3 Portabilidad para programador y programa………………………………………..…………26 4..27 4.....28 4...4 la clase double………………………………………………………….1..……………………......……………....1 la clase math…………………………………………………………………….1 clases…………………………………………………………………………………….2 Aplicaciones efectivas y eficientes……………………………………………………………....………………………22 3.3 Rendimiento………………………………………………………………………..Instrucción do……………………………………………………….....20 3.....1....1.....……...………………20 3......7 la clase boolean…………………………………………………………..1....

Además. cuando se pueda transmitir video por las líneas telefónicas. en lugar de conseguir simplemente un dibujo estático y algo de texto. Utilizando un navegador con soporte Java. Por ejemplo. 5 . un usuario podría recibir fácilmente esa simulación e interaccionar con ella. Con Java se puede reproducir sonidos directamente desde el navegador. nuestro navegador estará preparado para mostrar esas imágenes.INTRODUCCIÓN Con la necesidad de crear un lenguaje de programación mejor en muchos aspectos que sus antecesores. Utilizando Java. se pueden visitar páginas web con animaciones. se puede enseñar al navegador a manejar nuevos formatos de ficheros. Este trabajo es un resumen de lo que ya hemos llevado hasta ahora en la carrera de ingeniería de sistemas en la UAP. alguien podría escribir un programa Java que implementara una simulación química interactiva (una cadena de adn). se pueden eliminar los inconvenientes de interfaz y también se pueden añadir aplicaciones que vayan desde experimentos científicos interactivos de propósito educativo a juegos o aplicaciones especializadas para la televenta. ya que proporciona una forma diferente de hacer que los navegadores sean capaz de ejecutar programas. e incluso. java se convierte en una buena opción para este fin. no podrá traspasar los muros defensivos colocados por las características de seguridad y robustez de Java. El código que intente actuar destructivamente o que contenga errores. no hay nada que no hallamos llevado en el transcurso de este ciclo y puede ser tomado en cuenta como una guía en caso no recordemos o nos falte consolidar alguna tema sobre JAVA. con Java podemos estar seguros de que el código que hace funcionar el experimento químico no contiene ningún trozo de código malicioso que dañe al sistema. Lo recibido cobra vida.

Sun decidió crear una filial. hasta la más difundida. para dar margen de maniobra al equipo responsable del proyecto. hasta que finalmente encontró su nicho de mercado en la aldea global que es Internet. Tras unos comienzos dudosos. deben ser compilados para un chip. Este mercado. denominada FirstPerson Inc. 6 . El mercado inicialmente previsto para los programas de FirstPerson eran los equipos domésticos: microondas. el miembro del equipo con más experiencia en lenguajes de programación. intentaba remediar las deficiencias que iba observando. concepción y desarrollo de Java. generalmente. por pequeña que sea la diferencia en precio ya que. que justifica a Java como lenguaje de pequeños electrodomésticos. James Gosling. La aparición de un chip más barato y. Hace algunos años. líder en servidores para Internet.CAPÍTULO I: ORIGEN DE JAVA Sun Microsystems. Esto encarece mucho los desarrollos y el problema es especialmente acusado en el campo de la electrónica de consumo. añadiendo la dificultad de crear aplicaciones distribuidas en una red como Internet. desde la que dice que este fue un proyecto que rebotó durante mucho tiempo por distintos departamentos de Sun sin que nadie le prestara ninguna atención. decidió que las ventajas aportadas por la eficiencia de C++ no compensaban el gran coste de pruebas y depuración. tanto entre las diferentes máquinas como entre los diversos sistemas operativos y sistemas de ventanas que funcionaban sobre una misma máquina. el cual. televisión interactiva. como C o C++. Hemos podido leer más de cinco versiones distintas sobre el origen. y si se cambia el chip. en un intento de resolver simultáneamente todos los problemas que se le plantean a los desarrolladores de software por la proliferación de arquitecturas incompatibles.. Los lenguajes al uso. fundamentalmente. más eficiente. conduce inmediatamente a los fabricantes a incluirlo en las nuevas series de sus cadenas de producción. es quien ha desarrollado el lenguaje Java. Gosling había estado trabajando en su tiempo libre en un lenguaje de programación que él había llamado Oak. Otros requisitos importantes a tener en cuenta eran la fiabilidad del código y la facilidad de desarrollo. todo el software debe compilarse de nuevo. requería unos interfaces mucho más cómodos e intuitivos que los sistemas de ventanas que proliferaban en el momento. Sun Microsystems decidió intentar introducirse en el mercado de la electrónica de consumo y desarrollar programas para pequeños dispositivos electrónicos. dada la falta de pericia de los usuarios para el manejo de estos dispositivos. tostadoras y. aun partiendo de la sintaxis de C++.

No lo consiguieron y FirstPerson cerró en la primavera de 1994. porque la cuestión es si independientemente de su origen y entorno comercial. Las características principales que nos ofrece Java respecto a cualquier otro lenguaje de programación. Lo mejor será hacer caso omiso de las historias que pretenden dar carta de naturaleza a la clarividencia industrial de sus protagonistas. Gosling decidió mejorar las características de Oak y utilizarlo. Java elimina muchas de las características de otros lenguajes como C++. el lenguaje Java fue presentado en sociedad en agosto de 1995. Por tanto. Porque tampoco vamos a desechar la penicilina aunque haya sido su origen fruto de la casualidad. Pese a lo que parecía ya un olvido definitivo. la actual mascota de Java. para mantener reducidas las especificaciones del lenguaje y añadir características muy útiles como el garbage collector (reciclador de memoria dinámica).multiplicada por la tirada masiva de los aparatos. Una vez que en Sun se dieron cuenta de que a corto plazo la televisión interactiva no iba a ser un gran éxito. Ninguno de estos proyectos se convirtió nunca en un sistema comercial. El primer proyecto en que se aplicó este lenguaje recibió el nombre de proyecto Green y consistía en un sistema de control completo de los aparatos electrónicos y el entorno de un hogar. 7 . son: Simplicidad Java ofrece toda la funcionalidad de un lenguaje potente. urgieron a FirstPerson a desarrollar con rapidez nuevas estrategias que produjeran beneficios. pero fueron desarrollados enteramente en un Java primitivo y fueron como su bautismo de fuego. cofundador de Sun y uno de los desarrolladores principales del Unix de Berkeley. supone un ahorro considerable. El sistema presentaba una interfaz basada en la representación de la casa de forma animada y el control se llevaba a cabo mediante una pantalla sensible al tacto. Tras un cambio de nombre y modificaciones de diseño. Java ofrece soluciones a nuestras expectativas. Para ello se construyó un ordenador experimental denominado *7 (Star Seven). En el sistema aparecía Duke. y vio en Oak el instrumento idóneo para llevar a cabo estos planes. juzgó que Internet podría llegar a ser el campo de juego adecuado para disputar a Microsoft su primacía casi absoluta en el terreno del software. Bill Joy. Características de Java. pero sin las características menos usadas y más confusas de éstos. Posteriormente se aplicó a otro proyecto denominado VOD (Video On Demand) en el que se empleaba como interfaz para la televisión interactiva.

x. sin importar en modo alguno la máquina en que ha sido generado. Reduce en un 50% los errores más comunes de programación con lenguajes como C y C++ al eliminar muchas de las características de éstos. el compilador Java compila su código a un fichero objeto de formato independiente de la arquitectura de la máquina en que se ejecutará. Independiente de la Plataforma Para establecer Java como parte integral de la red. obtendríamos una figura como la siguiente: 8 . Existen librerías de rutinas para acceder e interactuar con protocolos como http y ftp. Linux.En Java ya no es necesario preocuparse de liberar memoria. Actualmente existen sistemas run-time para Solaris 2.1. entre las que destacan:       aritmética de punteros no existen referencias registros (struct) definición de tipos (typedef) macros (#define) necesidad de liberar memoria (free) Orientado a Objetos Java implementa la tecnología básica de C++ con algunas mejoras. Apple y probablemente haya grupos de desarrollo trabajando en el porting a otras plataformas. Irix. Esto permite a los programadores acceder a la información a través de la red con tanta facilidad como a los ficheros locales. Cualquier máquina que tenga el sistema de ejecución (run-time) puede ejecutar ese código objeto. El código fuente Java se "compila" a un código de bytes de alto nivel independiente de la máquina. Este código (byte-codes) está diseñado para ejecutarse en una máquina hipotética que es implementada por un sistema run-time. Java trabaja con sus datos como objetos y con interfaces a esos objetos.x. herencia y polimorfismo. Mac. Windows 95. Distribuido Java se ha construido con extensas capacidades de interconexión TCP/IP. Soporta las tres características propias del paradigma de la orientación a objetos: encapsulación. que sí es dependiente de la máquina. Windows NT. SunOs 4. Aix. En una representación en que tuviésemos que indicar todos los elementos que forman parte de la arquitectura de Java sobre una plataforma genérica.

. Multiprogramación Al ser multithreaded (multihilvanado. que también nos permitirían acceder directamente al hardware de la máquina. en vez de listas enlazadas de punteros. en el ciclo de desarrollo. etc.En ella podemos ver que lo verdaderamente dependiente del sistema es la Máquina Virtual Java (JVM) y las librerías fundamentales. No es el código máquina directamente entendible por el hardware. y ya tiene generada la pila de ejecución de órdenes. que son el resultado de la compilación de un programa Java. Además. habrá APIs de Java que también entren en contacto directo con el hardware y serán dependientes de la máquina. Al estar los threads construidos en el lenguaje. Estas características reducen drásticamente el tiempo de desarrollo de aplicaciones en Java. los nuevos navegadores permiten la telecarga de "applets". reduciendo así las posibilidades de error. Es un código de máquina virtual que es interpretado por el intérprete Java. Lo nuevo en JAVA La gran novedad que aporta Java dentro de las nuevas generaciones de navegadores es la capacidad de desplazar el control de la interactividad de los servidores hacia las máquinas de los usuarios que se utilizan para recorrer Internet. orden de operadores. Windows. en mala traducción). 9 . para evitar la posibilidad de sobreescribir o corromper memoria resultado de punteros que señalan a zonas equivocadas. pequeños fragmentos de programas compactos. Robusto Java realiza verificaciones en busca de problemas tanto en tiempo de compilación como en tiempo de ejecución. Además. son básicamente pequeños procesos o piezas independientes de un gran proceso. El beneficio de ser multithreaded consiste en un mejor rendimiento interactivo y mejor comportamiento en tiempo real.). etc. son más fáciles de usar y más robustos que sus homólogos en C o C++. También implementa los arrays auténticos. Los threads (a veces llamados. con comprobación de límites. Java permite muchas actividades simultáneas en un programa. realiza una verificación de los byte-codes. Java obliga a la declaración explícita de métodos. Aunque el comportamiento en tiempo real está limitado a las capacidades del sistema operativo subyacente (Unix. para asegurar el funcionamiento de la aplicación. aún supera a los entornos de flujo único de programa (single-threaded) tanto en facilidad de desarrollo como en rendimiento. lo antes posible. Maneja la memoria para eliminar las preocupaciones por parte del programador de la liberación o corrupción de memoria. procesos ligeros). pero ya ha pasado todas las fases del compilador: análisis de instrucciones. La comprobación de tipos en Java ayuda a detectar errores. Por la misma estructura del lenguaje. precompilados.

Con Java se puede realizar cualquier programa que normalmente se crearía con algún otro lenguaje de programación. Una máquina virtual es una capa lógica que hace creer al programa Java que se ejecuta en un ordenador real (con registros. necesitan de un Navegador Web compatible con Java para poder ejecutarse. Servlets Los servlets al contrario de los applets son programas que están pensados para trabajar en el lado del servidor y desarrollar aplicaciones Web que interactúen con los clientes. Posee la particularidad de ser compacto y por tanto puede ser compilado (traducido a lenguaje máquina) muy rápidamente. memoria y procesador). Tipos de programas en Java Los programas en Java suelen estar en una de las siguientes categorías: Applets Los applets son pequeños programas que se incorporan en una página Web y que por lo tanto. Para ejecutar un programa Java compilado (que está en p-code). El lenguaje Java. visto desde un navegador de Internet. A menudo los applets se descargan junto con una página HTML desde un Servidor Web y se ejecutan en la máquina cliente. la cual efectúa la transformación del p-code en un programa comprensible para la máquina.que pueden entonces interpretar de modo distinto los datos telecargados para producir por ejemplo animaciones. El lenguaje se transforma en un código elemental parecido al ensamblador. La facilita hasta el punto de lograrla desaparecer. Los servlets son una alternativa de la programación CGI tradicional. es preciso también que cuente con una implementación de la máquina virtual específica donde se desea ejecutar. cuando en realidad sólo ve una reconstrucción lógica de un ordenador. Aplicaciones Las aplicaciones son programas standalone de propósito general que normalmente se ejecutan desde la línea de comandos del sistema operativo. en el transcurso de la propia ejecución del programa. Aparece entonces la "máquina virtual". es pues un lenguaje que no es ni totalmente interpretado. sonido y especialmente la verdadera interactividad. El p-code constituye una capa intermedia que facilita enormemente la portabilidad de un entorno o de una máquina a otra. ni totalmente compilado. llamado también p-code o byte-code. 10 .

// Este es un comentario de una sola linea Comentarios para documentación. los operadores y las variables para construir y evaluar expresiones.Capítulo II: SINTAXIS DE JAVA La sintaxis de un lenguaje define cómo se usarán las palabras claves. */ Comentarios de una sola línea. Comentarios de varias líneas. /** Este tipo de comentarios los utiliza la herramienta javadoc */ 11 . Los comentarios de varias líneas se incluyen entre los símbolos /* y */. El comentario se inicia cuando se encuentra la doble diagonal y continua hasta el final de la línea. La sintaxis de Java especifica como se escribirán los siguientes elementos: Comentarios: Java ofrece tres tipos de comentarios: dos para comentarios regulares en el código fuente y uno para la documentación especial del sistema javadoc. Realmente este tipo de comentario es el mismo que el de varias líneas con la diferencia de que la información que contenga será usada para un procesamiento especial que lleva a cabo la herramienta javadoc. Para comentariar una sola línea se utiliza la doble diagonal //. /* Este es un ejemplo de un comentario de varias líneas. Se distingue del comentario de varias líneas porque se agrega un asterisco adicional al inicio del comentario. como en C y C++.

por lo que son tan fáciles de utilizar como los tipos de dato básicos.) para el punto decimal (double numero = 2. Palabras reservadas Las siguientes son las palabras reservadas que están definidas en Java y que no se pueden utilizar como identificadores: 12 .).) Literales booleanos Los valores true y false son literales.1416F. Literales numéricos: Para representar un literal de tipo long anteponga una L al número (long total = 10L. Java almacena el valor de una cadena como un objeto String. y son los únicos valores posibles para las variables booleanas Literales de caracteres Es un carácter sencillo entre comillas sencillas como „a‟. texto o información que representa directamente un valor.) Para representar un literal de punto flotante se utiliza un punto (. Como las cadenas en Java son objetos reales. modificarlas y determinar si dos cadenas poseen el mismo valor.) Para representar notación exponencial utilice la letra e (double x = 12e22.Literales: Un literal es cualquier número. todas estas literales se consideran double. por lo tanto solo se debe crear un nuevo objeto explícitamente. contienen métodos para combinar cadenas.50.) Para representar un literal negativo anteponga un – (long total = -10L. Literales de cadena Es una cadena de caracteres entre comillas dobles como “Esto es una cadena”.) Para representar un literal con notación octal anteponga un 0 al número (int total = 010. „#‟ y „3‟.) Para representar un literal con notación hexadecimal anteponga un 0x al número (int total = 0xFF. Para especificar un literal de punto flotante como float anteponga la letra f (f o F) (float numero = 3.

posee mucha fuerza y es tema de moda en cualquier medio computacional. Para las variables del mismo tipo. se pueden declarar en la misma línea separándolas por comas. a pesar de que Java es relativamente nuevo. calle.. provincia = “Buenos Aires” . Java es sensible a minúsculas y mayúsculas. Nomenclatura de Variables Los nombres de variables deben comenzar con una letra. No pueden empezar con un número.abstract boolean break byte byvalue case catch char class const continue default Do double Else extends False Final Finally Float for goto if implements import instanceof int interface long native new null package private protected public return short static super switch synchronized this threadsafe throw transient true try void while Pero en general Java posee muchas ventajas y se pueden hacer cosas muy interesantes con esto. String ciudad. esto permite tener una variable llamada X y otra llamada x. 13 . boolean activo = true. Muchas personas apuestan a futuro y piensan en Java. Ejemplo int total. Hay que prestar especial atención a lo que está sucediendo en el mundo de la computación. un carácter de subrayado ( _ ) o un signo pesos ($). Después del primer carácter pueden incluir cualquier combinación. Declaración de variables Se declaran anteponiendo el tipo de dato o clase a la cual pertenecen.

Por ejemplo el * de la expresión anterior. Incremento y Decremento 14 . (Ej.El estándar recomendado es para el nombramiento de variables es: La primera letra minúscula. Cada palabra después del nombre de la variable empieza con mayúscula. Por razón la siguiente expresión es posible: int x = 5. Por ejemplo: int x = 3. Donde x ahora es 7. algunos tipos de instrucciones de asignación y comparaciones lógicas. int y = 4. Operadores Aritméticos Suma Resta + - Multiplicación * División Módulo / % esta El lado derecho de una expresión siempre se calcula antes de que se dé la asignación. x = x + 2. areaCodigo) Todas las demás letras son minúsculas Expresiones y Operadores Una expresión es una instrucción que produce un valor. int z = x * y. // Expresión Un operador es un símbolo especial utilizado para funciones matemáticas.

Esto se maneja a través de operadores lógicos. devuelve true si alguna de las expresiones son verdaderas. u otros tipos de información. invierte el valor de una expresión booleana de la misma manera en que un símbolo menos invierte el signo positivo en un número.(int x = 7. variables y literales. Igual Distinto Menor que Mayor que Menor que o igual a Mayor que o igual a Operadores Lógicos Las expresiones que producen valores booleanos. Comparaciones Son operaciones para hacer comparaciones entre las variables. x = x++. XOR: ^. ahora x vale 8). se pueden combinar para formar expresiones más complejas. Si ambas son true o false. El orden del primero al último es: == ¡= < > <= >= 15 .-. devuelve false. NOT. devuelve true solo si las dos expresiones son verdaderas. !. Para decrementar se utiliza . OR: | o || (con || el lado derecho de las expresión nunca se evalúa). Devuelven siempre un valor booleano. Precedencia de operadores Es el orden de evaluación que posee Java cuando hay mas de un operador en una expresión..Sirven para añadir o sustraer 1 a una variable. ahora x vale 6). como las operaciones de comparación. Para incrementar se utiliza ++ (int x = 7. devuelve true solo si las dos expresiones booleanas que combina tienen valores opuestos. los cuales para las combinaciones lógicas: AND: & o && (con && el lado derecho de la expresión nunca se evalúa). x = x .

Controles de Flujo Estructuras de decisión o salto: Instrucciones if – else Estructura: if (expresión boolean) { //Bloque de código para expresiones verdaderas. } 16 . Ejemplo miNombre += “Señor”. } else { // Bloque de código para expresiones falsas. Aritmética de cadenas El operador + también puede ser utilizado para concatenar cadenas. También esta el operador corto += que añade algo al final de la cadena. El operador + combina cadenas.Operaciones de incremento y decremento Operaciones aritméticas Comparaciones Operaciones lógicas Expresiones de asignación Para cambiar el orden en que se evalúan las operaciones se deben colocar paréntesis en las expresiones que se quieren evaluar primero. objetos y variables para formar una cadena sencilla.

En java existen tres tipos: for. Break. Si no hubiera un break como última instrucción dentro del código del case. Break. long o clases no están permitidas. El default es opcional. Do evalúa después de ejecutar el bucle. Estructuras de Iteración Las estructuras de lazo permiten repetir la ejecución del bloque de código que contengan. } La expresión 1 debe ser compatible con un tipo de dato entero. Break. En este caso el bucle se ejecuta al menos una vez. y es utilizado para especificar un segmento de código que es ejecutado si la variable o expresión no matchea con ninguno de los case. Default: Bloque de código. el programa entrara al código del próximo case sin evaluar la expresión.Siempre debe tomar una expresión booleana. Los tipos de punto flotante. 17 . Case constante3: Bloque de código. while y do. For y while evalúan la condición de lazo antes de ejecutar el bucle. El else es opcional y puede ser omitido si no existen acciones a tomar en caso de no cumplirse la condición Instrucción switch Estructura: Switch (expresión 1) { Case constante2: Bloque de código.

} while (expresión booleana). } La variable i es solo accesible dentro del bloque del for. 18 . } En esta estructura está permitido utilizar comas para separar variables.Instrucción for Estructura: For (expresión inicial. } Hay que asegurarse de que la variable utilizada en el while esté definida y sea verdadera antes de la ejecución del mismo. alter_expresion3) { Bloque de código. Ejemplo for (int i = 0. j = 0. Instrucción do Estructura: Do { Bloque de código. i++. Hay que asegurarse de que la variable utilizada en el while esté definida y sea verdadera antes de la ejecución del mismo. expresión booleana. j < 10. j++) { Bloque de código. Instrucción while Estructura: While (boolean) { Bloque de código.

loop: //label Do { instrucción. Continue [label]. de las estructureas de lazo y de los bloques con etiqueta de forma prematura. // Identifica con un nombre una instrucción válida a la que se le tranferirá el control. Ejemplo: Do { Bloque de código. } while (expresión booleana). Label : instrucción. // Es utilizada para salir de las instrucciones del switch. If (condición es true) continue. 19 . // Es usada para saltear el código y llegar hasta el final dentro de las estructuras de lazo. If (condición es true) Break. Do { instrucción. } while (expresión booleana). Do { Bloque de código.Instrucciones especiales dentro de las estructuras de lazo: Break [label]. instrucción.

). float y double 20 . Las funciones que contiene son las de todos los lenguajes.If (condición es true) Break loop.atan2( double.exp( double ) Math. parece que se han metido en una clase solamente a propósito de agrupación. Math es public para que se pueda llamar desde cualquier sitio y static para que no haya que inicializarla.asin( double ) Math.sin( double ) Math. se tiene acceso al conjunto de funciones matemáticas estándar: Math. Funciones matemáticas Si se importa la clase. long. por eso se encapsulan en Math.log( double ) Math.atan( double ) Math.cos( double ) Math. y lo mismo sucede con las demás clases que corresponden a objetos que tienen un tipo equivalente (Character.tan( double ) Math. Float.floor( double ) Math. El constructor de la clase es privado.abs( x ) Math. Sin embargo. instrucción.acos( double ) Math. } while (expresión booleana). CAPITULO III: CLASES: La Clase Math La clase Math representa la librería matemática de Java.ceil( double ) Math.rint( double ) para int. por los que no se pueden crear instancias de la clase. } while (expresión booleana).double ) Math. etc.sqrt( double ) Math.

out.random() Math.Math. float y double para int. rand = Math.out.abs( -123 ). x = Math. al contrario que sucede con la clase Math. } } La Clase Character Al trabajar con caracteres se necesitan muchas funciones de comprobación y traslación.b ) Math.println( x ). System.out. Declaraciones La primera sentencia creará una variable carácter y la segunda un objeto Character: char c.min( a. de uso de algunas funciones de la clase Math: class Mates { public static void main( String args[] ) { int x.b ) Math.out.println( y ).java. Mates.4 ).max( a.pow( a. long. z = Math.pow( 2. max = Math.(float)3e9 ). Estas funciones están empleadas en la clase Character.round( 123. De esta clase sí que se pueden crear instancias.println( rand ).max( (float)1e10.random().y. float y double para la base exponencial para PI He aquí un ejemplo. System. System.E Math.println( max ).round( x ) Math. System. double rand.out. Character C. 21 .println( z ). y = Math.PI para double y float devuelve un double para int. long.567 ). System.z. float max.b ) Math.

Declaraciones La primera sentencia creará una variable double y la segunda un objeto Double: double d. int I. int I. se han codificado muchas funciones útiles dentro de los métodos de la clase Float. De la misma forma que con la clase Character. String Integer. Double D. String I. La Clase Double Cada tipo numérico tiene su propia clase de objetos.parseInt( String s ). Declaraciones La primera sentencia creará una variable float y la segunda un objeto Float: float f.toString().toString( int i.int base ). long I.La Clase Float Cada tipo numérico tiene su propia clase de objetos. De la misma forma que con la clase Character.parseInt( String s. Declaraciones La primera sentencia creará una variable int y la segunda un objeto Integer: int i.int base ).floatValue(). Así el tipo float tiene el objeto Float. La Clase Integer Cada tipo numérico tiene su propia clase de objetos. 22 .doubleValue().longValue().valueOf( String s.intValue(). Métodos de Integer String Integer. Integer Integer. Así el tipo double tiene el objeto Double. Integer Integer. se han codificado muchas funciones útiles dentro de los métodos de la clase Integer.int base ). int I.toString( int i ). Integer I. double I.valueOf( String s ). Float F. float I. Así el tipo int tiene el objeto Integer. De la misma forma que con la clase Character. se han codificado muchas funciones útiles dentro de los métodos de la clase Double.

La Clase Boolean Los valores boolean también tienen su tipo asociado Boolean. String Long. parseInt() y valueOf() que no se especifica la base sobre la que se trabaja. Métodos de Long String Long.parseLong( String s ).valueOf( String s. Declaraciones La primera sentencia creará una variable boolean y la segunda un objeto Boolean: boolean b.parseLong( String s. parseInt() y valueOf() que no se especifica la base sobre la que se trabaja.toString( long l. float L. Long Long. se asume que es base 10. double L. int L.floatValue().toString( long l ). En los métodos toString(). La Clase Long Cada tipo numérico tiene su propia clase de objetos. De la misma forma que con la clase Character.toString(). se asume que es base 10. Declaraciones La primera sentencia creará una variable long y la segunda un objeto Long: long l.int base ). String L. Long Long.valueOf( String s ). En los métodos toString().int I.doubleValue().int base ). int L. boolean L.equals( Object obj ). Boolean B.equals( Object obj ). se han codificado muchas funciones útiles dentro de los métodos de la clase Long. long L. 23 .int base ). aunque en este caso hay menos métodos implementados que para el resto de las clases numéricas. long L. long L.intValue().longValue(). Long L. Así el tipo long tiene el objeto Long.hashCode().hashCode(). boolean I.

las cadenas pueden ser muy complejas. el entorno Java de Borland. 24 . el Café de Symantec. que apuntan hacia esa meta. eliminarían a los generadores humanos y el mundo sería un lugar mejor para vivir. Un objeto String representa una cadena alfanumérica de un valor constante que no puede ser cambiada después de haber sido creada. CAPITULO IV Ventajas y desventajas de java : Desarrollo rápido de aplicaciones Hace años. como son el Java WorkShop de SunSoft. adoptando el modelo de "generar parte de un programa". char se usa. existiendo muchas funciones muy útiles para trabajar con ellas y. se decía que los programadores pronto desaparecerían. pero además es flexible. la mayoría están codificadas en la clase String. El lenguaje C++ es una buena herramienta. afortunadamente. quienes decían esto no tuvieron en cuenta una acelerada demanda de software de calidad para muy diferentes aplicaciones. Java facilita la creación de entornos de desarrollo-aplicaciones de modo similar. Los generadores automáticos de programas. por ejemplo. Sin embargo. La mayoría de las funciones relacionadas con cadenas esperan valores String como argumentos y devuelven valores String. para leer ficheros que están escritos desde otro lenguaje.FALSE. la tecnología de objetos pronto vino a intentar facilitar la tarea. Los Strings son objetos constantes y por lo tanto muy baratos para el sistema. se podría conectar con otras partes para proporcionar diferentes utilidades al usuario. generando la parte básica de un programa (los objetos). con lo cual es más conveniente usar Character que char. La Clase String Java posee gran capacidad para el manejo de cadenas dentro de sus clases String y StringBuffer. Hay que tener en cuenta que las funciones estáticas no consumen memoria del objeto. Tal como uno puede imaginarse. así. Boolean. No obstante.TRUE. se acercan cada vez más al poder de los objetos. poderoso y efectivo. pero no cumple totalmente la premisa. Los programadores ahora disponen de herramientas de programación de calidad beta. Visual Basic y NextStep.Valores de Boolean Boolean. Un objeto StringBuffer representa una cadena cuyo tamaño puede variar. Desafortunadamente.

Aplicaciones efectivas y eficientes Las aplicaciones que se crean en grandes empresas deben ser más efectivas que eficientes. Los byte-codes son interpretados por el sistema run-time de Java. conseguir que el programa funcione y el trabajo salga adelante es más importante que el que lo haga eficientemente. Más específicamente. Java permite algunas técnicas innovadoras de optimización. Java es inherentemente multithreaded. como una parte (opcional) del entorno run-time local de Java. Java permite a éstos concentrarse en la mecánica de la aplicación. sincronizando los ficheros de cabecera y corrigiendo los agónicos mensajes del linker.y pronto. Si un compilador JIT está embebido en el entorno run-time de Java. el programador no se preocupa de hacer que la aplicación se ejecute óptimamente. Muchas veces. ansiosos por exprimir al máximo la eficiencia de su aplicación. la Máquina Virtual Java (JVM). Al ser un lenguaje más simple que cualquiera de los que ahora están en el cajón de los programadores. Aunque ya hay ciertos proveedores que ofrecen compiladores nativos Just-In-Time (JIT). Por ejemplo. las secciones (clases) del byte-code de la aplicación se compilarán hacia la arquitectura nativa del ordenador del usuario. no permite ficheros de cabecera separados (en aplicaciones puramente Java) y solamente usa enlace dinámico. Los programas Java en ese momento rivalizarán con el rendimiento de programas en C++. Java tiene su propio toolkit para interfaces. Cuanto más tiempo esté corriendo la aplicación o el applet. en el sistema del usuario. Los desarrolladores de compiladores inteligentes pueden utilizar esta característica de Java para lanzar un thread que compruebe la forma en que se está utilizando la aplicación. controlando minuciosamente la memoria. Si la Máquina Virtual Java dispone de un compilador instalado. Muchas de las implementaciones de Java actuales son puros intérpretes. Siempre he pensado que en los Sistemas 25 . es decir. empiezan a hacerlo demasiado pronto en el ciclo de vida de la aplicación. Esto proporciona una gran progresión a los entornos de desarrollo Java. es una realidad de la programación corporativa. este thread podría detectar qué métodos de una clase se están usando con más frecuencia e invocar a sucesivos niveles de optimización en tiempo de ejecución de la aplicación. los programadores corporativos. Esto no es una crítica. los programadores no compilan y distribuyen binarios Java a los usuarios. maneja por sí mismo la memoria que utilice la aplicación. los métodos estarán cada vez más optimizados (Guava de Softway es de este tipo). a la vez que ofrece posibilidades de multithread como la clase Thread y mecanismos muy sencillos de usar de sincronización. Java en sí utiliza threads. herramientas más sofisticadas como Netcode o FutureTense. La compilación JIT tiene lugar a partir del bytecode Java. Los compiladores JIT no se utilizan en la forma tradicional de un compilador. en vez de pasarse horas y horas incorporando APIs para el control de las ventanas. sobre el ordenador del usuario.

un optimizador progresivo es un paso más hacia esta idea. Hasta ahora era complicado convencer a los programadores de cada arquitectura que utilizasen un API común para reducir el coste de las aplicaciones. programadores trabajando sobre Visual Basic en el departamento de documentación y programadores sobre GNU en proyectos especiales. sino a los niveles confortables de precio de las herramientas de PCs. Costes de desarrollo En contraste con el alto coste de los desarrollos realizados sobre estaciones de trabajo. no orientados a redes y. El grupo de programadores de la empresa puede ahora enfrentarse a un desarrollo para cualquiera de las plataformas. los programadores pueden entenderse y encontrar muy interesante trabajar con Java. Portabilidad para programador y programa En una empresa de relativo tamaño hay una pléyade diferente de ordenadores. Ya no será necesario tener un grupo que desarrolle en Solaris en del departamento de I+D. La eficiencia del hardware y el poco coste de mantenimiento de una estación de trabajo Sun. La llegada de Java e Intranet reducen considerablemente estos costes. ahora todos ellos podrán estar juntos y formar el grupo de software de la empresa.Operativos tendría que aplicarse esta filosofía. una estación de trabajo HP en administración y una estación SGI en la sala de demos. por ejemplo. hordas de PCs para cada empleado. Probablemente nos encontremos con estaciones de trabajo Sun para el desarrollo de software. justo donde otros intentos anteriores con entornos universales (como Galaxy o XVT) han fracasado. La parte del cliente y del servidor de una aplicación estarán ahora escritas en el mismo lenguaje. el coste de creación de una aplicación Java es similar al de desarrollar sobre un PC. algún Mac en el departamento de documentación. otro lado interesante del asunto es que los programadores también son portables. Esta posibilidad hará tender a los programadores hacia Java. Las herramientas Java ya no están en el entorno de precios de millones de pesetas. Una vez que los programas estén escritos en Java. Estos APIs eran simplemente inadecuados. pesados. Y con el 26 . Desarrollar aplicaciones corporativas para un grupo tan diferente de plataformas en excesivamente complejo y caro. resulta muy atractivo para las empresas. Con un entorno run-time de Java portado a cada una de las arquitecturas de las plataformas presentes en la empresa y una buena librería de clases ("packages" en Java). pero el coste adicional del entorno de desarrollo con C++ es prohibitivo para la gran mayoría de ellas. Desarrollar utilizando un software caro para una estación de trabajo (ahora barata) es un problema en muchas empresas. verdaderamente.

siempre que se puede. los programadores corporativos tienen un amplio campo donde moverse y muchas oportunidades de aprender y muchos recursos a su disposición. Otro gran problema del desarrollador corporativo es la creación y control de makefiles. javadoc se puede fácilmente generar páginas HTML con el contenido de esos comentarios.crecimiento cada día mayor de la comunidad de desarrolladores de software freeware y shareware que incluso proporcionan el código fuente. pero 27 . Normalmente se pasan de programador a programador. Java necesita que todo el código fuente de una clase se encuentre en un solo fichero. no dejes de leerlo. aprenderán rápidamente lo esencial de Java. Esta es la filosofía de precios que parece ser será la que se siga con las herramientas basadas en Java. una miríada de ficheros de cabecera y ultra-confusos macros. Esto hace que el trabajo de documentar el código de nuevas clases Java sea trivial. El éxito que Internet ha proporcionado a los equipos de software corporativos es un regalo. que pueden visualizarse en cualquier navegador. la cura para la enfermedad del mantenimiento. Primero. Leerse un makefile es como estar leyendo la historia de empresa. Aprendizaje Si la empresa está llena de programadores de C++ con alguna experiencia en el manejo de librería gráfica. Java no es. Mantenimiento y soporte Un problema bien conocido que ocurre con el software corporativo es la demanda de cuidados y realimentación. En el libro Just Java de Peter van der Linden hay un capítulo excelente acerca del compilador de Java. si tienes oportunidad. Incluso Netscape tiene al mismo precio la versión Unix de su servidor Web SuiteSpot que la versión PC/NT. pero tiene varias características que harán la vida del enfermero más fácil. Es como mirar en el estómago de la ballena de Jonás. ciertamente. Si el equipo de ingenieros no conoce C++. no hay ficheros de cabecera. Esto hace que muchos de los makefiles de las aplicaciones contengan docenas de librerías. La documentación del API de Java ha sido creada de este modo. Uno de los componentes del JDK es javadoc. Java reduce las dependencia de complejos makefiles drásticamente. Si se usan ciertas convenciones en el código fuente Java (como comenzar un comentario con /** y terminarlo con */). Java tiene la inteligencia de make en el propio lenguaje para simplificar la compilación de byte-codes. El precio del software es ahora el mismo para un poderoso equipo corriendo Unix que para un PC. quitando la información que no es esencial.

Java no es un lenguaje absolutamente orientado a objetos. Desventajas En 1995 alguien dijo que Java fue creado para abrir una nueva vía en la gestión de software complejo. Por motivos de eficiencia. y a una sintaxis relativamente simple. Además. J2SE 5. entre ellas. y 30 más dedicados a "Learning Java". Apariencia La apariencia externa (el „„„look and feel‟‟‟) de las aplicaciones GUI (Graphical User Interface) escritas en Java usando la plataforma Swing difiere a menudo de la que muestran aplicaciones nativas.  A diferencia de C++. Esto es en parte debido a las frecuentes declaraciones de tipos y conversiones de tipo manual (casting). encontrarás 312 Web sites. por ejemplo. y luego aplicarlos a la programación con Java. Los diseñadores de Java tomaron esta decisión puesto que consideraban que. esta característica podía complicar la lectura y mantenimiento de los programas. como una nueva construcción para los bucles „‟‟foreach‟‟‟.  El código Java puede ser a veces redundante en comparación con otros lenguajes. les llevará pocas semanas dominar la base de Java. a diferencia de. ya hay más de 25 publicados. Sun. Si los ingenieros de la empresa no conocen ningún lenguaje orientado a objetos. hay ya varias empresas que ofrecen enseñanza de Java. El análisis y diseño orientado a objetos debe ser comprendido antes de intentar nada con Java. ya que cada una tiene un conjunto de APIs distinto. bajo ciertas circunstancias. sí que tienen que aprender los fundamentos de esta tecnología antes de nada. Sin embargo. o todas las necesidades. el AWT no es capaz de funciones gráficas avanzadas sin sacrificar la portabilidad entre plataformas.0 introduce elementos para tratar de reducir la redundancia. ni que se adapta completamente a todos los estilos de programación.maneja cualquier otro lenguaje de programación orientada a objetos. todos los entornos. También se debe a que no se dispone de operadores sobrecargados. y así por ejemplo. El lenguaje  En un sentido estricto. y si buscas "Progamming in Java" en la Red. Java no dispone de operadores de sobrecarga definidos por el usuario. Aunque el programador puede usar el juego de herramientas AWT (Abstract Windowing Toolkit) que genera objetos gráficos de la plataforma nativa. Y si esto. 28 . Java ha relajado en cierta medida el paradigma de orientación a objetos. Sin embargo no puede decirse que Java no tenga grietas. no es el sustituto de un instructor humano. Ruby o Smalltalk. los libros sobre Java crecen como la espuma. evidentemente. Los programadores de Java sin un fondo de conocimientos de OOA/D producirán código pobre. y es por regla general aceptado que se ha comportado bien en ese aspecto. Lo que sí que no es cierto es que haya que aprender C++ antes de aprender Java. no todos los valores son objetos.

Esta recompilación dinámica. El bytecode de Java puede ser interpretado en tiempo de ejecución por la máquina virtual. o bien compilado al cargarse el programa. Sin embargo. Si es compilado. un inconveniente principalmente para aplicaciones de corta duración o con gran cantidad de código. una vez compilado. Rendimiento El rendimiento de una aplicación está determinado por multitud de factores. que de las propiedades intrínsecas del lenguaje. la penalización está en el tiempo necesario para llevar a cabo la compilación. aunque 29 . o ser apenas apreciable. Java fue diseñado para ofrecer seguridad y portabilidad. por lo que no es fácil hacer una comparación que resulte totalmente objetiva. puede llegar a mejorar el resultado de compiladores estáticos tradicionales. Las JVM modernas usan recolectores de basura que gracias a rápidos algoritmos de manejo de memoria. para generar código nativo que se ejecuta directamente sobre el hardware. añade una sobrecarga que puede afectar al rendimiento. Algunas de ellas son el chequeo de los límites de arrays. dependiendo de la tecnología del recolector y de la aplicación en concreto. la mayoría de los usuarios no saben cómo cambiar la apariencia que se proporciona por defecto por aquella que se adapta a la de la plataforma. aunque no son únicas de Java. Aunque Java no permite la expansión manual de llamadas a métodos. y no ofrece acceso directo al hardware de la arquitectura ni al espacio de direcciones. durante la carga inicial o la ejecución. evitan este problema construyendo los objetos gráficos a partir de los mecanismos de dibujo básicos que deben estar disponibles en todas las plataformas. Las herramientas de Swing. será más lento que usando el código máquina intrínseco de la plataforma destino.especialmente para objetos gráficos de alto nivel. o durante la propia ejecución. el rendimiento del programa puede ser comparable al que consiguen compiladores nativos de la plataforma destino. y la indirección de funciones virtuales. escritas completamente en Java. Algunas características del propio lenguaje conllevan una penalización en tiempo. chequeo en tiempo de ejecución de tipos. como la que proporciona la máquina virtual HotSpot de Sun. aunque la distinción no está clara en este punto. El uso de un recolector de basura para eliminar de forma automática aquellos objetos no requeridos. El rendimiento entre un compilador JIT y los compiladores nativos puede ser parecido. consiguen que algunas aplicaciones puedan ejecutarse más eficientemente. el rendimiento de una aplicación Java depende más de la eficiencia del compilador. gracias a los datos que sólo están disponibles durante el tiempo de ejecución. Aunque esto es posible (usando GTK+ y el Look-and-Feel de Windows). inclusive en tareas numéricas. El inconveniente es el trabajo extra requerido para conseguir la misma apariencia de la plataforma destino. o la JVM. Si es interpretado. En tiempo de ejecución. La compilación mediante el JIT puede consumir un tiempo apreciable. muchos compiladores JIT realizan esta optimización durante la carga de la aplicación y pueden aprovechar información del entorno en tiempo de ejecución para llevar a cabo transformaciones eficientes durante la propia ejecución de la aplicación. Java no soporta expansión de código ensamblador.

CAPITULO V Programas Básicos En Java Una pequeña aplicación en java Sin duda alguna el ejercicio más simple.las aplicaciones pueden acceder a características de bajo nivel usando bibliotecas nativas (JNI. y a la par. public class HolaMundo { public static void main(String[] args) { //Aqui se coloca el codigo a ejecutar } } Solo nos quedará mostrar el texto "Hola Mundo" por la consola.out.println("Hola Mundo"). En concreto usaremos el método println(texto).swing. Este consiste en sacar por pantalla la muy conocida frase de “Hola Mundo”. el que nunca puede faltar en cualquier lenguaje de programación es el programa Hola Mundo. } } Se puede hacer los mismo con ventanas usando la libreria swing utilizaremos el complemento JOptionPane: import javax. 30 . Finalmente el código nos quedará de la siguiente forma: public class HolaMundo { public static void main(String[] args) { System. Para ello utilizaremos la clase estática System.out. Esta clase nos permite acceder a la salida de la consola.*. Lo primero que tendremos que hacer es crear la estructura base de nuestro codigo que seria algo asi. Java Native Interfaces).

JOptionPane. "Tu edad es "+recibido+" años"). "Hola Mundo").ShowMessageDialog(null. } } 31 .public class HolaMundo { public static void main(String[] args) { JOptionPane.showInputDialog("Cual es tu edad").showMessageDialog(null. tambien se pueden recibir parametros con el InputDialog el cual quedaria de esta forma: import javax. public class HolaMundo { public static void main(String[] args) { String recibido = JOptionPane. } } Con este complemento de la libreria swing.*.swing.

revistas. y como se llega a eso pues teniendo una buena base matemática.CONCLUSIONES: Con todo lo investigado en este trabajo llegamos a la conclusión que para poder entender cualquier tipo de lenguaje de programación es necesario tener un pensamiento matemático. 32 . tutoriales. todo lo puesto en este trabajo son algunos conocimientos adquiridos en este ciclo profundizados con ayuda de algunos libros. artículos y seminarios que aportaron esta motivación de seguir aprendiendo este lenguaje de programación.

José Ignacio. Universidad de Navarra. Mora Rodríguez.org/gusdelact/cib4132005/Java. Wang Internacional Thomson Editores 33 .wikipedia.BIBLIOGRAFÍA         http://es. Marzo.org/wiki/Java_(lenguaje_de_programaci%C3%B3n)#Historia http://www.net/posts/info/8556773.y otros.com "Aprenda Java como si estuviera en Primero". Javier. Cevallos Editorial AlfaOmega  Programación en Java 2 Luis Joyanes Aguilar.taringa.html http://www.lawebdelprogramador.R/Curso-Interactivo-Java-al-Extremo_-Todo-sobreJava. Rodríguez. Frank.txt http://www.html http://clubensayos. Ignacio Zahonero Martínez Mc Graw-Hill  Java con programación orientada a objetos y apicaciones en la WWW Paul S.Año: 2006 http://www.net/tutoriales-y-videotutoriales/tutorial-de-java-desde-cero/+ "Programación en Java".com/Tecnolog%C3%ADa/CONCEPTOS-B%C3%81SICOS-DEJAVA/98747. 1999  Java Cómo Programar Quinta edición Deitel/Deitel Pearson/Prentice-Hall  Curso de Programación 3ª Edición Fco.inquisidores.García de Jalón. Escuela Superior de Ingenieros Industriales.oocities.

Sign up to vote on this title
UsefulNot useful