Está en la página 1de 33

Ao del centenario del descubrimiento de Macchu Picchu para el mundo

Facultad de Ingeniera Y Arquitectura Escuela Acadmico Profesional de Ingeniera de Sistemas E Informtica Castellano II

Lic. Mara Subira R. Java Carlos Alberto Porras Porta 2011176027 Semestre II - 2011 IIC

Chosica, diciembre del 2011

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

NDICE ndice...3 Introduccin4 Captulo I: 1.1 Origen de Java....5. 1.2 Caractersticas 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 plataforma8 Robusto9 Multiprogramacin..9

1.3 lo nuevo en java...9 1.4 Tipos de programas en Java10 Applets.10 Aplicaciones...10 Servlets.......10 Captulo 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. Declaracin de variables13 2.1.5. Nomenclatura de Variables13 2.1.6. Expresiones y Operadores.14 2.1.7. Controles de Flujo...16 2.1.7.1 estructuras de decisin o salto...16 Instrucciones if else16 Instruccin switch..17 2.1.7.2 estructuras de iteracin...17 Instruccin for18 Instruccin while...18

Instruccin do...18 Captulo III: 3.1 clases..20 3.1.1 la clase math.20 3.1.1.1 funciones matemticas..20 3.1.2 la clase carcter21 3.1.3 la clase float..22 3.1.4 la clase double.22 3.1.5 la clase integer.22 3.1.6 la clase long..23 3.1.7 la clase boolean...23 3.1.8 la clase String ..24

Captulo IV: 4.1 Ventajas de Java....24 4.1.1 Desarrollo rpido de aplicaciones..24 4.1.2 Aplicaciones efectivas y eficientes.25 4.1.3 Portabilidad para programador y programa.26 4.1.4 Costes de desarrollo....26 4.1.5 Mantenimiento y soporte.27 4.1.6 Aprendizaje...27 4.2 desventajas de java..........................................................................................................................28 4.2.1 El lenguaje...28 4.2.2 Apariencia....28

4.2.3 Rendimiento..29
Capitulo V: 5.1 programa bsico en java...30 5.1.1 una pequea aplicacin en java.30 5.2 Conclusiones..32 Bibliografa.....33

INTRODUCCIN Con la necesidad de crear un lenguaje de programacin mejor en muchos aspectos que sus antecesores, java se convierte en una buena opcin para este fin, ya que proporciona una forma diferente de hacer que los navegadores sean capaz de ejecutar programas. Con Java se puede reproducir sonidos directamente desde el navegador, se pueden visitar pginas web con animaciones, se puede ensear al navegador a manejar nuevos formatos de ficheros, e incluso, cuando se pueda transmitir video por las lneas telefnicas, nuestro navegador estar preparado para mostrar esas imgenes. Utilizando Java, se pueden eliminar los inconvenientes de interfaz y tambin se pueden aadir aplicaciones que vayan desde experimentos cientficos interactivos de propsito educativo a juegos o aplicaciones especializadas para la televenta. Por ejemplo, alguien podra escribir un programa Java que implementara una simulacin qumica interactiva (una cadena de adn). Utilizando un navegador con soporte Java, un usuario podra recibir fcilmente esa simulacin e interaccionar con ella, en lugar de conseguir simplemente un dibujo esttico y algo de texto. Lo recibido cobra vida. Adems, con Java podemos estar seguros de que el cdigo que hace funcionar el experimento qumico no contiene ningn trozo de cdigo malicioso que dae al sistema. El cdigo que intente actuar destructivamente o que contenga errores, no podr traspasar los muros defensivos colocados por las caractersticas de seguridad y robustez de Java. Este trabajo es un resumen de lo que ya hemos llevado hasta ahora en la carrera de ingeniera de sistemas en la UAP, no hay nada que no hallamos llevado en el transcurso de este ciclo y puede ser tomado en cuenta como una gua en caso no recordemos o nos falte consolidar alguna tema sobre JAVA.

CAPTULO I: ORIGEN DE JAVA Sun Microsystems, lder en servidores para Internet, es quien ha desarrollado el lenguaje Java, en un intento de resolver simultneamente todos los problemas que se le plantean a los desarrolladores de software por la proliferacin de arquitecturas incompatibles, tanto entre las diferentes mquinas como entre los diversos sistemas operativos y sistemas de ventanas que funcionaban sobre una misma mquina, aadiendo la dificultad de crear aplicaciones distribuidas en una red como Internet. Hemos podido leer ms de cinco versiones distintas sobre el origen, concepcin y desarrollo de Java, 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 atencin, hasta que finalmente encontr su nicho de mercado en la aldea global que es Internet; hasta la ms difundida, que justifica a Java como lenguaje de pequeos electrodomsticos. Hace algunos aos, Sun Microsystems decidi intentar introducirse en el mercado de la electrnica de consumo y desarrollar programas para pequeos dispositivos electrnicos. Tras unos comienzos dudosos, Sun decidi crear una filial, denominada FirstPerson Inc., para dar margen de maniobra al equipo responsable del proyecto. El mercado inicialmente previsto para los programas de FirstPerson eran los equipos domsticos: microondas, tostadoras y, fundamentalmente, televisin interactiva. Este mercado, dada la falta de pericia de los usuarios para el manejo de estos dispositivos, requera unos interfaces mucho ms cmodos e intuitivos que los sistemas de ventanas que proliferaban en el momento. Otros requisitos importantes a tener en cuenta eran la fiabilidad del cdigo y la facilidad de desarrollo. James Gosling, el miembro del equipo con ms experiencia en lenguajes de programacin, decidi que las ventajas aportadas por la eficiencia de C++ no compensaban el gran coste de pruebas y depuracin. Gosling haba estado trabajando en su tiempo libre en un lenguaje de programacin que l haba llamado Oak, el cual, aun partiendo de la sintaxis de C++, intentaba remediar las deficiencias que iba observando. Los lenguajes al uso, como C o C++, deben ser compilados para un chip, y si se cambia el chip, todo el software debe compilarse de nuevo. Esto encarece mucho los desarrollos y el problema es especialmente acusado en el campo de la electrnica de consumo. La aparicin de un chip ms barato y, generalmente, ms eficiente, conduce inmediatamente a los fabricantes a incluirlo en las nuevas series de sus cadenas de produccin, por pequea que sea la diferencia en precio ya que,

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

En Java ya no es necesario preocuparse de liberar memoria. Reduce en un 50% los errores ms comunes de programacin con lenguajes como C y C++ al eliminar muchas de las caractersticas de stos, entre las que destacan: aritmtica de punteros no existen referencias registros (struct) definicin de tipos (typedef) macros (#define) necesidad de liberar memoria (free)

Orientado a Objetos Java implementa la tecnologa bsica de C++ con algunas mejoras, Java trabaja con sus datos como objetos y con interfaces a esos objetos. Soporta las tres caractersticas propias del paradigma de la orientacin a objetos: encapsulacin, herencia y polimorfismo. Distribuido Java se ha construido con extensas capacidades de interconexin TCP/IP. Existen libreras de rutinas para acceder e interactuar con protocolos como http y ftp. Esto permite a los programadores acceder a la informacin a travs de la red con tanta facilidad como a los ficheros locales. Independiente de la Plataforma Para establecer Java como parte integral de la red, el compilador Java compila su cdigo a un fichero objeto de formato independiente de la arquitectura de la mquina en que se ejecutar. Cualquier mquina que tenga el sistema de ejecucin (run-time) puede ejecutar ese cdigo objeto, sin importar en modo alguno la mquina en que ha sido generado. Actualmente existen sistemas run-time para Solaris 2.x, SunOs 4.1.x, Windows 95, Windows NT, Linux, Irix, Aix, Mac, Apple y probablemente haya grupos de desarrollo trabajando en el porting a otras plataformas. El cdigo fuente Java se "compila" a un cdigo de bytes de alto nivel independiente de la mquina. Este cdigo (byte-codes) est diseado para ejecutarse en una mquina hipottica que es implementada por un sistema run-time, que s es dependiente de la mquina. En una representacin en que tuvisemos que indicar todos los elementos que forman parte de la arquitectura de Java sobre una plataforma genrica, obtendramos una figura como la siguiente:

En ella podemos ver que lo verdaderamente dependiente del sistema es la Mquina Virtual Java (JVM) y las libreras fundamentales, que tambin nos permitiran acceder directamente al hardware de la mquina. Adems, habr APIs de Java que tambin entren en contacto directo con el hardware y sern dependientes de la mquina. Robusto Java realiza verificaciones en busca de problemas tanto en tiempo de compilacin como en tiempo de ejecucin. La comprobacin de tipos en Java ayuda a detectar errores, lo antes posible, en el ciclo de desarrollo. Java obliga a la declaracin explcita de mtodos, reduciendo as las posibilidades de error. Maneja la memoria para eliminar las preocupaciones por parte del programador de la liberacin o corrupcin de memoria. Tambin implementa los arrays autnticos, en vez de listas enlazadas de punteros, con comprobacin de lmites, para evitar la posibilidad de sobreescribir o corromper memoria resultado de punteros que sealan a zonas equivocadas. Estas caractersticas reducen drsticamente el tiempo de desarrollo de aplicaciones en Java. Adems, para asegurar el funcionamiento de la aplicacin, realiza una verificacin de los byte-codes, que son el resultado de la compilacin de un programa Java. Es un cdigo de mquina virtual que es interpretado por el intrprete Java. No es el cdigo mquina directamente entendible por el hardware, pero ya ha pasado todas las fases del compilador: anlisis de instrucciones, orden de operadores, etc., y ya tiene generada la pila de ejecucin de rdenes. Multiprogramacin Al ser multithreaded (multihilvanado, en mala traduccin), Java permite muchas actividades simultneas en un programa. Los threads (a veces llamados, procesos ligeros), son bsicamente pequeos procesos o piezas independientes de un gran proceso. Al estar los threads construidos en el lenguaje, son ms fciles de usar y ms robustos que sus homlogos en C o C++. El beneficio de ser multithreaded consiste en un mejor rendimiento interactivo y mejor comportamiento en tiempo real. Aunque el comportamiento en tiempo real est limitado a las capacidades del sistema operativo subyacente (Unix, Windows, etc.), an supera a los entornos de flujo nico de programa (single-threaded) tanto en facilidad de desarrollo como en rendimiento. 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 mquinas de los usuarios que se utilizan para recorrer Internet. Por la misma estructura del lenguaje, los nuevos navegadores permiten la telecarga de "applets", pequeos fragmentos de programas compactos, precompilados,

que pueden entonces interpretar de modo distinto los datos telecargados para producir por ejemplo animaciones, sonido y especialmente la verdadera interactividad. El lenguaje Java, visto desde un navegador de Internet, es pues un lenguaje que no es ni totalmente interpretado, ni totalmente compilado. El lenguaje se transforma en un cdigo elemental parecido al ensamblador, llamado tambin p-code o byte-code. Posee la particularidad de ser compacto y por tanto puede ser compilado (traducido a lenguaje mquina) muy rpidamente, en el transcurso de la propia ejecucin del programa. El p-code constituye una capa intermedia que facilita enormemente la portabilidad de un entorno o de una mquina a otra. La facilita hasta el punto de lograrla desaparecer. Aparece entonces la "mquina virtual". Una mquina virtual es una capa lgica que hace creer al programa Java que se ejecuta en un ordenador real (con registros, memoria y procesador), cuando en realidad slo ve una reconstruccin lgica de un ordenador. Para ejecutar un programa Java compilado (que est en p-code), es preciso tambin que cuente con una implementacin de la mquina virtual especfica donde se desea ejecutar, la cual efecta la transformacin del p-code en un programa comprensible para la mquina. Tipos de programas en Java

Los programas en Java suelen estar en una de las siguientes categoras: Applets Los applets son pequeos programas que se incorporan en una pgina Web y que por lo tanto, necesitan de un Navegador Web compatible con Java para poder ejecutarse. A menudo los applets se descargan junto con una pgina HTML desde un Servidor Web y se ejecutan en la mquina cliente. Aplicaciones Las aplicaciones son programas standalone de propsito general que normalmente se ejecutan desde la lnea de comandos del sistema operativo. Con Java se puede realizar cualquier programa que normalmente se creara con algn otro lenguaje de programacin. Servlets Los servlets al contrario de los applets son programas que estn pensados para trabajar en el lado del servidor y desarrollar aplicaciones Web que interacten con los clientes. Los servlets son una alternativa de la programacin CGI tradicional.

10

Captulo II: SINTAXIS DE JAVA

La sintaxis de un lenguaje define cmo se usarn las palabras claves, los operadores y las variables para construir y evaluar expresiones. La sintaxis de Java especifica como se escribirn los siguientes elementos: Comentarios:

Java ofrece tres tipos de comentarios: dos para comentarios regulares en el cdigo fuente y uno para la documentacin especial del sistema javadoc. Comentarios de varias lneas. Los comentarios de varias lneas se incluyen entre los smbolos /* y */, como en C y C++. /* Este es un ejemplo de un comentario de varias lneas. */ Comentarios de una sola lnea. Para comentariar una sola lnea se utiliza la doble diagonal //. El comentario se inicia cuando se encuentra la doble diagonal y continua hasta el final de la lnea. // Este es un comentario de una sola linea Comentarios para documentacin. Realmente este tipo de comentario es el mismo que el de varias lneas con la diferencia de que la informacin que contenga ser usada para un procesamiento especial que lleva a cabo la herramienta javadoc.

Se distingue del comentario de varias lneas porque se agrega un asterisco adicional al inicio del comentario. /** Este tipo de comentarios los utiliza la herramienta javadoc */

11

Literales: Un literal es cualquier nmero, texto o informacin que representa directamente un valor. Literales numricos: Para representar un literal de tipo long anteponga una L al nmero (long total = 10L;) Para representar un literal negativo anteponga un (long total = -10L;) Para representar un literal con notacin octal anteponga un 0 al nmero (int total = 010;) Para representar un literal con notacin hexadecimal anteponga un 0x al nmero (int total = 0xFF;) Para representar un literal de punto flotante se utiliza un punto (.) para el punto decimal (double numero = 2.50;), todas estas literales se consideran double. Para especificar un literal de punto flotante como float anteponga la letra f (f o F) (float numero = 3.1416F;) Para representar notacin exponencial utilice la letra e (double x = 12e22;) Literales booleanos Los valores true y false son literales, y son los nicos valores posibles para las variables booleanas Literales de caracteres Es un carcter sencillo entre comillas sencillas como a, # y 3. Literales de cadena Es una cadena de caracteres entre comillas dobles como Esto es una cadena. Como las cadenas en Java son objetos reales, contienen mtodos para combinar cadenas, modificarlas y determinar si dos cadenas poseen el mismo valor. Java almacena el valor de una cadena como un objeto String, por lo tanto solo se debe crear un nuevo objeto explcitamente, por lo que son tan fciles de utilizar como los tipos de dato bsicos. Palabras reservadas Las siguientes son las palabras reservadas que estn definidas en Java y que no se pueden utilizar como identificadores:

12

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. Hay que prestar especial atencin a lo que est sucediendo en el mundo de la computacin, a pesar de que Java es relativamente nuevo, posee mucha fuerza y es tema de moda en cualquier medio computacional. Muchas personas apuestan a futuro y piensan en Java. Declaracin de variables Se declaran anteponiendo el tipo de dato o clase a la cual pertenecen. Para las variables del mismo tipo, se pueden declarar en la misma lnea separndolas por comas.. Ejemplo int total; String ciudad, calle, provincia = Buenos Aires ; boolean activo = true; Nomenclatura de Variables Los nombres de variables deben comenzar con una letra, un carcter de subrayado ( _ ) o un signo pesos ($). No pueden empezar con un nmero. Despus del primer carcter pueden incluir cualquier combinacin. Java es sensible a minsculas y maysculas, esto permite tener una variable llamada X y otra llamada x.

13

El estndar recomendado es para el nombramiento de variables es: La primera letra minscula. Cada palabra despus del nombre de la variable empieza con mayscula. (Ej. areaCodigo) Todas las dems letras son minsculas Expresiones y Operadores Una expresin es una instruccin que produce un valor. Por ejemplo: int x = 3; int y = 4; int z = x * y; // Expresin Un operador es un smbolo especial utilizado para funciones matemticas, algunos tipos de instrucciones de asignacin y comparaciones lgicas. Por ejemplo el * de la expresin anterior. Operadores Aritmticos Suma Resta + -

Multiplicacin * Divisin Mdulo / % esta

El lado derecho de una expresin siempre se calcula antes de que se d la asignacin. Por razn la siguiente expresin es posible: int x = 5; x = x + 2; Donde x ahora es 7. Incremento y Decremento

14

Sirven para aadir o sustraer 1 a una variable. Para incrementar se utiliza ++ (int x = 7; x = x++; ahora x vale 8). Para decrementar se utiliza - - (int x = 7; x = x - -; ahora x vale 6). Comparaciones Son operaciones para hacer comparaciones entre las variables, variables y literales, u otros tipos de informacin. Devuelven siempre un valor booleano. Igual Distinto Menor que Mayor que Menor que o igual a Mayor que o igual a Operadores Lgicos Las expresiones que producen valores booleanos, como las operaciones de comparacin, se pueden combinar para formar expresiones ms complejas. Esto se maneja a travs de operadores lgicos, los cuales para las combinaciones lgicas: AND: & o && (con && el lado derecho de la expresin nunca se evala), devuelve true solo si las dos expresiones son verdaderas. OR: | o || (con || el lado derecho de las expresin nunca se evala), devuelve true si alguna de las expresiones son verdaderas. XOR: ^, devuelve true solo si las dos expresiones booleanas que combina tienen valores opuestos. Si ambas son true o false, devuelve false. NOT. !, invierte el valor de una expresin booleana de la misma manera en que un smbolo menos invierte el signo positivo en un nmero. Precedencia de operadores Es el orden de evaluacin que posee Java cuando hay mas de un operador en una expresin. El orden del primero al ltimo es: == = < > <= >=

15

Operaciones de incremento y decremento Operaciones aritmticas Comparaciones Operaciones lgicas Expresiones de asignacin Para cambiar el orden en que se evalan las operaciones se deben colocar parntesis en las expresiones que se quieren evaluar primero. Aritmtica de cadenas El operador + tambin puede ser utilizado para concatenar cadenas. El operador + combina cadenas, objetos y variables para formar una cadena sencilla. Tambin esta el operador corto += que aade algo al final de la cadena. Ejemplo miNombre += Seor; Controles de Flujo

Estructuras de decisin o salto: Instrucciones if else Estructura: if (expresin boolean) { //Bloque de cdigo para expresiones verdaderas; } else { // Bloque de cdigo para expresiones falsas; }

16

Siempre debe tomar una expresin booleana. El else es opcional y puede ser omitido si no existen acciones a tomar en caso de no cumplirse la condicin Instruccin switch Estructura: Switch (expresin 1) { Case constante2: Bloque de cdigo; Break; Case constante3: Bloque de cdigo; Break; Default: Bloque de cdigo; Break; } La expresin 1 debe ser compatible con un tipo de dato entero. Los tipos de punto flotante, long o clases no estn permitidas. El default es opcional, y es utilizado para especificar un segmento de cdigo que es ejecutado si la variable o expresin no matchea con ninguno de los case. Si no hubiera un break como ltima instruccin dentro del cdigo del case, el programa entrara al cdigo del prximo case sin evaluar la expresin. Estructuras de Iteracin Las estructuras de lazo permiten repetir la ejecucin del bloque de cdigo que contengan. En java existen tres tipos: for, while y do. For y while evalan la condicin de lazo antes de ejecutar el bucle. Do evala despus de ejecutar el bucle. En este caso el bucle se ejecuta al menos una vez.

17

Instruccin for Estructura: For (expresin inicial; expresin booleana; alter_expresion3) { Bloque de cdigo; } En esta estructura est permitido utilizar comas para separar variables, Ejemplo for (int i = 0, j = 0; j < 10; i++, j++) { Bloque de cdigo; } La variable i es solo accesible dentro del bloque del for. Instruccin while Estructura: While (boolean) { Bloque de cdigo; } Hay que asegurarse de que la variable utilizada en el while est definida y sea verdadera antes de la ejecucin del mismo. Instruccin do Estructura: Do { Bloque de cdigo; } while (expresin booleana); Hay que asegurarse de que la variable utilizada en el while est definida y sea verdadera antes de la ejecucin del mismo.

18

Instrucciones especiales dentro de las estructuras de lazo: Break [label]; // Es utilizada para salir de las instrucciones del switch, de las estructureas de lazo y de los bloques con etiqueta de forma prematura. Continue [label]; // Es usada para saltear el cdigo y llegar hasta el final dentro de las estructuras de lazo. Label : instruccin; // Identifica con un nombre una instruccin vlida a la que se le tranferir el control. Ejemplo: Do { Bloque de cdigo; If (condicin es true) Break; } while (expresin booleana); Do { Bloque de cdigo; If (condicin es true) continue; } while (expresin booleana); loop: //label Do { instruccin; Do { instruccin; instruccin;

19

If (condicin es true) Break loop; } while (expresin booleana); instruccin; } while (expresin booleana); CAPITULO III: CLASES: La Clase Math La clase Math representa la librera matemtica de Java. Las funciones que contiene son las de todos los lenguajes, parece que se han metido en una clase solamente a propsito de agrupacin, por eso se encapsulan en Math, y lo mismo sucede con las dems clases que corresponden a objetos que tienen un tipo equivalente (Character, Float, etc.). El constructor de la clase es privado, por los que no se pueden crear instancias de la clase. Sin embargo, Math es public para que se pueda llamar desde cualquier sitio y static para que no haya que inicializarla. Funciones matemticas Si se importa la clase, se tiene acceso al conjunto de funciones matemticas estndar: Math.abs( x ) Math.sin( double ) Math.cos( double ) Math.tan( double ) Math.asin( double ) Math.acos( double ) Math.atan( double ) Math.atan2( double,double ) Math.exp( double ) Math.log( double ) Math.sqrt( double ) Math.ceil( double ) Math.floor( double ) Math.rint( double ) para int, long, float y double

20

Math.pow( a,b ) Math.round( x ) Math.random() Math.max( a,b ) Math.min( a,b ) Math.E Math.PI para double y float devuelve un double para int, long, float y double para int, long, float y double para la base exponencial para PI

He aqu un ejemplo, Mates.java, de uso de algunas funciones de la clase Math: class Mates { public static void main( String args[] ) { int x; double rand,y,z; float max;

rand = Math.random(); x = Math.abs( -123 ); y = Math.round( 123.567 ); z = Math.pow( 2,4 ); max = Math.max( (float)1e10,(float)3e9 );

System.out.println( rand ); System.out.println( x ); System.out.println( y ); System.out.println( z ); System.out.println( max ); } } La Clase Character Al trabajar con caracteres se necesitan muchas funciones de comprobacin y traslacin. Estas funciones estn empleadas en la clase Character. De esta clase s que se pueden crear instancias, al contrario que sucede con la clase Math. Declaraciones La primera sentencia crear una variable carcter y la segunda un objeto Character: char c; Character C;

21

La Clase Float Cada tipo numrico tiene su propia clase de objetos. As el tipo float tiene el objeto Float. De la misma forma que con la clase Character, se han codificado muchas funciones tiles dentro de los mtodos de la clase Float. Declaraciones La primera sentencia crear una variable float y la segunda un objeto Float: float f; Float F; La Clase Double Cada tipo numrico tiene su propia clase de objetos. As el tipo double tiene el objeto Double. De la misma forma que con la clase Character, se han codificado muchas funciones tiles dentro de los mtodos de la clase Double. Declaraciones La primera sentencia crear una variable double y la segunda un objeto Double: double d; Double D; La Clase Integer Cada tipo numrico tiene su propia clase de objetos. 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 mtodos de la clase Integer. Declaraciones La primera sentencia crear una variable int y la segunda un objeto Integer: int i; Integer I; Mtodos de Integer String Integer.toString( int i,int base ); String Integer.toString( int i ); int I.parseInt( String s,int base ); int I.parseInt( String s ); Integer Integer.valueOf( String s,int base ); Integer Integer.valueOf( String s ); int I.intValue(); long I.longValue(); float I.floatValue(); double I.doubleValue(); String I.toString();

22

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

23

Valores de Boolean Boolean.TRUE; Boolean.FALSE; La Clase String Java posee gran capacidad para el manejo de cadenas dentro de sus clases String y StringBuffer. Un objeto String representa una cadena alfanumrica de un valor constante que no puede ser cambiada despus de haber sido creada. Un objeto StringBuffer representa una cadena cuyo tamao puede variar. Los Strings son objetos constantes y por lo tanto muy baratos para el sistema. La mayora de las funciones relacionadas con cadenas esperan valores String como argumentos y devuelven valores String. Hay que tener en cuenta que las funciones estticas no consumen memoria del objeto, con lo cual es ms conveniente usar Character que char. No obstante, char se usa, por ejemplo, para leer ficheros que estn escritos desde otro lenguaje. Tal como uno puede imaginarse, las cadenas pueden ser muy complejas, existiendo muchas funciones muy tiles para trabajar con ellas y, afortunadamente, la mayora estn codificadas en la clase String.

CAPITULO IV Ventajas y desventajas de java : Desarrollo rpido de aplicaciones Hace aos, se deca que los programadores pronto desapareceran. Los generadores automticos de programas, eliminaran a los generadores humanos y el mundo sera un lugar mejor para vivir. Desafortunadamente, quienes decan esto no tuvieron en cuenta una acelerada demanda de software de calidad para muy diferentes aplicaciones. Sin embargo, la tecnologa de objetos pronto vino a intentar facilitar la tarea, adoptando el modelo de "generar parte de un programa", as, generando la parte bsica de un programa (los objetos), se podra conectar con otras partes para proporcionar diferentes utilidades al usuario. El lenguaje C++ es una buena herramienta, pero no cumple totalmente la premisa. Visual Basic y NextStep, se acercan cada vez ms al poder de los objetos. Java facilita la creacin de entornos de desarrollo-aplicaciones de modo similar, pero adems es flexible, poderoso y efectivo. Los programadores ahora disponen de herramientas de programacin de calidad beta, que apuntan hacia esa meta, como son el Java WorkShop de SunSoft, el entorno Java de Borland, el Caf de Symantec,

24

y pronto, herramientas ms sofisticadas como Netcode o FutureTense. Esto proporciona una gran progresin a los entornos de desarrollo Java. Aplicaciones efectivas y eficientes Las aplicaciones que se crean en grandes empresas deben ser ms efectivas que eficientes; es decir, conseguir que el programa funcione y el trabajo salga adelante es ms importante que el que lo haga eficientemente. Esto no es una crtica, es una realidad de la programacin corporativa. Al ser un lenguaje ms simple que cualquiera de los que ahora estn en el cajn de los programadores, Java permite a stos concentrarse en la mecnica de la aplicacin, en vez de pasarse horas y horas incorporando APIs para el control de las ventanas, controlando minuciosamente la memoria, sincronizando los ficheros de cabecera y corrigiendo los agnicos mensajes del linker. Java tiene su propio toolkit para interfaces, maneja por s mismo la memoria que utilice la aplicacin, no permite ficheros de cabecera separados (en aplicaciones puramente Java) y solamente usa enlace dinmico. Muchas de las implementaciones de Java actuales son puros intrpretes. Los byte-codes son interpretados por el sistema run-time de Java, la Mquina Virtual Java (JVM), sobre el ordenador del usuario. Aunque ya hay ciertos proveedores que ofrecen compiladores nativos Just-In-Time (JIT). Si la Mquina Virtual Java dispone de un compilador instalado, las secciones (clases) del byte-code de la aplicacin se compilarn hacia la arquitectura nativa del ordenador del usuario. Los programas Java en ese momento rivalizarn con el rendimiento de programas en C++. Los compiladores JIT no se utilizan en la forma tradicional de un compilador; los programadores no compilan y distribuyen binarios Java a los usuarios. La compilacin JIT tiene lugar a partir del bytecode Java, en el sistema del usuario, como una parte (opcional) del entorno run-time local de Java. Muchas veces, los programadores corporativos, ansiosos por exprimir al mximo la eficiencia de su aplicacin, empiezan a hacerlo demasiado pronto en el ciclo de vida de la aplicacin. Java permite algunas tcnicas innovadoras de optimizacin. Por ejemplo, Java es inherentemente multithreaded, a la vez que ofrece posibilidades de multithread como la clase Thread y mecanismos muy sencillos de usar de sincronizacin; Java en s utiliza threads. Los desarrolladores de compiladores inteligentes pueden utilizar esta caracterstica de Java para lanzar un thread que compruebe la forma en que se est utilizando la aplicacin. Ms especficamente, este thread podra detectar qu mtodos de una clase se estn usando con ms frecuencia e invocar a sucesivos niveles de optimizacin en tiempo de ejecucin de la aplicacin. Cuanto ms tiempo est corriendo la aplicacin o el applet, los mtodos estarn cada vez ms optimizados (Guava de Softway es de este tipo). Si un compilador JIT est embebido en el entorno run-time de Java, el programador no se preocupa de hacer que la aplicacin se ejecute ptimamente. Siempre he pensado que en los Sistemas

25

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

26

crecimiento cada da mayor de la comunidad de desarrolladores de software freeware y shareware que incluso proporcionan el cdigo fuente, los programadores corporativos tienen un amplio campo donde moverse y muchas oportunidades de aprender y muchos recursos a su disposicin. El xito que Internet ha proporcionado a los equipos de software corporativos es un regalo. El precio del software es ahora el mismo para un poderoso equipo corriendo Unix que para un PC. Incluso Netscape tiene al mismo precio la versin Unix de su servidor Web SuiteSpot que la versin PC/NT. Esta es la filosofa de precios que parece ser ser la que se siga con las herramientas basadas en Java. Mantenimiento y soporte Un problema bien conocido que ocurre con el software corporativo es la demanda de cuidados y realimentacin. Java no es, ciertamente, la cura para la enfermedad del mantenimiento, pero tiene varias caractersticas que harn la vida del enfermero ms fcil. Uno de los componentes del JDK es javadoc. Si se usan ciertas convenciones en el cdigo fuente Java (como comenzar un comentario con /** y terminarlo con */), javadoc se puede fcilmente generar pginas HTML con el contenido de esos comentarios, que pueden visualizarse en cualquier navegador. La documentacin del API de Java ha sido creada de este modo. Esto hace que el trabajo de documentar el cdigo de nuevas clases Java sea trivial. Otro gran problema del desarrollador corporativo es la creacin y control de makefiles. Leerse un makefile es como estar leyendo la historia de empresa. Normalmente se pasan de programador a programador, quitando la informacin que no es esencial, siempre que se puede. Esto hace que muchos de los makefiles de las aplicaciones contengan docenas de libreras, una mirada de ficheros de cabecera y ultra-confusos macros. Es como mirar en el estmago de la ballena de Jons. Java reduce las dependencia de complejos makefiles drsticamente. Primero, no hay ficheros de cabecera. Java necesita que todo el cdigo fuente de una clase se encuentre en un solo fichero. Java tiene la inteligencia de make en el propio lenguaje para simplificar la compilacin de byte-codes. En el libro Just Java de Peter van der Linden hay un captulo excelente acerca del compilador de Java, si tienes oportunidad, no dejes de leerlo. Aprendizaje Si la empresa est llena de programadores de C++ con alguna experiencia en el manejo de librera grfica, aprendern rpidamente lo esencial de Java. Si el equipo de ingenieros no conoce C++, pero

27

maneja cualquier otro lenguaje de programacin orientada a objetos, les llevar pocas semanas dominar la base de Java. Lo que s que no es cierto es que haya que aprender C++ antes de aprender Java. Si los ingenieros de la empresa no conocen ningn lenguaje orientado a objetos, s que tienen que aprender los fundamentos de esta tecnologa antes de nada, y luego aplicarlos a la programacin con Java. El anlisis y diseo orientado a objetos debe ser comprendido antes de intentar nada con Java. Los programadores de Java sin un fondo de conocimientos de OOA/D producirn cdigo pobre. Adems, los libros sobre Java crecen como la espuma, ya hay ms de 25 publicados, y si buscas "Progamming in Java" en la Red, encontrars 312 Web sites, y 30 ms dedicados a "Learning Java". Y si esto, evidentemente, no es el sustituto de un instructor humano, hay ya varias empresas que ofrecen enseanza de Java, entre ellas, Sun. Desventajas

En 1995 alguien dijo que Java fue creado para abrir una nueva va en la gestin de software complejo, y es por regla general aceptado que se ha comportado bien en ese aspecto. Sin embargo no puede decirse que Java no tenga grietas, ni que se adapta completamente a todos los estilos de programacin, todos los entornos, o todas las necesidades.
El lenguaje En un sentido estricto, Java no es un lenguaje absolutamente orientado a objetos, a diferencia de, por ejemplo, Ruby o Smalltalk. Por motivos de eficiencia, Java ha relajado en cierta medida el paradigma de orientacin a objetos, y as por ejemplo, no todos los valores son objetos. El cdigo Java puede ser a veces redundante en comparacin con otros lenguajes. Esto es en parte debido a las frecuentes declaraciones de tipos y conversiones de tipo manual (casting). Tambin se debe a que no se dispone de operadores sobrecargados, y a una sintaxis relativamente simple. Sin embargo, J2SE 5.0 introduce elementos para tratar de reducir la redundancia, como una nueva construccin para los bucles foreach. A diferencia de C++, Java no dispone de operadores de sobrecarga definidos por el usuario. Los diseadores de Java tomaron esta decisin puesto que consideraban que, bajo ciertas circunstancias, esta caracterstica poda complicar la lectura y mantenimiento de los programas. 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. Aunque el programador puede usar el juego de herramientas AWT (Abstract Windowing Toolkit) que genera objetos grficos de la plataforma nativa, el AWT no es capaz de funciones grficas avanzadas sin sacrificar la portabilidad entre plataformas; ya que cada una tiene un conjunto de APIs distinto,

28

especialmente para objetos grficos de alto nivel. Las herramientas de Swing, escritas completamente en Java, evitan este problema construyendo los objetos grficos a partir de los mecanismos de dibujo bsicos que deben estar disponibles en todas las plataformas. El inconveniente es el trabajo extra requerido para conseguir la misma apariencia de la plataforma destino. Aunque esto es posible (usando GTK+ y el Look-and-Feel de Windows), la mayora de los usuarios no saben cmo cambiar la apariencia que se proporciona por defecto por aquella que se adapta a la de la plataforma. Rendimiento El rendimiento de una aplicacin est determinado por multitud de factores, por lo que no es fcil hacer una comparacin que resulte totalmente objetiva. En tiempo de ejecucin, el rendimiento de una aplicacin Java depende ms de la eficiencia del compilador, o la JVM, que de las propiedades intrnsecas del lenguaje. El bytecode de Java puede ser interpretado en tiempo de ejecucin por la mquina virtual, o bien compilado al cargarse el programa, o durante la propia ejecucin, para generar cdigo nativo que se ejecuta directamente sobre el hardware. Si es interpretado, ser ms lento que usando el cdigo mquina intrnseco de la plataforma destino. Si es compilado, durante la carga inicial o la ejecucin, la penalizacin est en el tiempo necesario para llevar a cabo la compilacin. Algunas caractersticas del propio lenguaje conllevan una penalizacin en tiempo, aunque no son nicas de Java. Algunas de ellas son el chequeo de los lmites de arrays, chequeo en tiempo de ejecucin de tipos, y la indireccin de funciones virtuales. El uso de un recolector de basura para eliminar de forma automtica aquellos objetos no requeridos, aade una sobrecarga que puede afectar al rendimiento, o ser apenas apreciable, dependiendo de la tecnologa del recolector y de la aplicacin en concreto. Las JVM modernas usan recolectores de basura que gracias a rpidos algoritmos de manejo de memoria, consiguen que algunas aplicaciones puedan ejecutarse ms eficientemente. El rendimiento entre un compilador JIT y los compiladores nativos puede ser parecido, aunque la distincin no est clara en este punto. La compilacin mediante el JIT puede consumir un tiempo apreciable, un inconveniente principalmente para aplicaciones de corta duracin o con gran cantidad de cdigo. Sin embargo, una vez compilado, el rendimiento del programa puede ser comparable al que consiguen compiladores nativos de la plataforma destino, inclusive en tareas numricas. Aunque Java no permite la expansin manual de llamadas a mtodos, muchos compiladores JIT realizan esta optimizacin durante la carga de la aplicacin y pueden aprovechar informacin del entorno en tiempo de ejecucin para llevar a cabo transformaciones eficientes durante la propia ejecucin de la aplicacin. Esta recompilacin dinmica, como la que proporciona la mquina virtual HotSpot de Sun, puede llegar a mejorar el resultado de compiladores estticos tradicionales, gracias a los datos que slo estn disponibles durante el tiempo de ejecucin. Java fue diseado para ofrecer seguridad y portabilidad, y no ofrece acceso directo al hardware de la arquitectura ni al espacio de direcciones. Java no soporta expansin de cdigo ensamblador, aunque

29

las aplicaciones pueden acceder a caractersticas de bajo nivel usando bibliotecas nativas (JNI, Java Native Interfaces). CAPITULO V Programas Bsicos En Java Una pequea aplicacin en java Sin duda alguna el ejercicio ms simple, y a la par, el que nunca puede faltar en cualquier lenguaje de programacin es el programa Hola Mundo. Este consiste en sacar por pantalla la muy conocida frase de Hola Mundo.

Lo primero que tendremos que hacer es crear la estructura base de nuestro codigo que seria algo asi.

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. Para ello utilizaremos la clase esttica System.out. Esta clase nos permite acceder a la salida de la consola. En concreto usaremos el mtodo println(texto).

Finalmente el cdigo nos quedar de la siguiente forma:

public class HolaMundo {

public static void main(String[] args) {

System.out.println("Hola Mundo"); } }

Se puede hacer los mismo con ventanas usando la libreria swing utilizaremos el complemento JOptionPane:

import javax.swing.*;

30

public class HolaMundo {

public static void main(String[] args) { JOptionPane.ShowMessageDialog(null, "Hola Mundo"); } } Con este complemento de la libreria swing, tambien se pueden recibir parametros con el InputDialog el cual quedaria de esta forma:

import javax.swing.*;

public class HolaMundo {

public static void main(String[] args) {

String recibido = JOptionPane.showInputDialog("Cual es tu edad"); JOptionPane.showMessageDialog(null, "Tu edad es "+recibido+" aos");

} }

31

CONCLUSIONES: Con todo lo investigado en este trabajo llegamos a la conclusin que para poder entender cualquier tipo de lenguaje de programacin es necesario tener un pensamiento matemtico, y como se llega a eso pues teniendo una buena base matemtica, todo lo puesto en este trabajo son algunos conocimientos adquiridos en este ciclo profundizados con ayuda de algunos libros, revistas, tutoriales, artculos y seminarios que aportaron esta motivacin de seguir aprendiendo este lenguaje de programacin.

32

BIBLIOGRAFA http://es.wikipedia.org/wiki/Java_(lenguaje_de_programaci%C3%B3n)#Historia http://www.taringa.net/posts/info/8556773.R/Curso-Interactivo-Java-al-Extremo_-Todo-sobreJava.html http://clubensayos.com/Tecnolog%C3%ADa/CONCEPTOS-B%C3%81SICOS-DEJAVA/98747.html http://www.oocities.org/gusdelact/cib4132005/Java.txt http://www.inquisidores.net/tutoriales-y-videotutoriales/tutorial-de-java-desde-cero/+ "Programacin en Java", Mora Rodrguez, Frank.Ao: 2006 http://www.lawebdelprogramador.com "Aprenda Java como si estuviera en Primero".Garca de Jaln, Javier. Rodrguez, Jos Ignacio.y otros. Escuela Superior de Ingenieros Industriales. Universidad de Navarra. Marzo, 1999 Java Cmo Programar Quinta edicin Deitel/Deitel Pearson/Prentice-Hall Curso de Programacin 3 Edicin Fco. Cevallos Editorial AlfaOmega Programacin en Java 2 Luis Joyanes Aguilar, Ignacio Zahonero Martnez Mc Graw-Hill Java con programacin orientada a objetos y apicaciones en la WWW Paul S. Wang Internacional Thomson Editores

33

También podría gustarte