Sie sind auf Seite 1von 8

Origen de Java

El uso principal que se hace de Internet e incluso de las redes internas (corporativas) es correo electrnico (e-mail), aunque actualmente hay un auge sorprendente de la navegacin web. Los documentos web pueden contener variedad de te to, gr!"icos de todas clases y proporcionar enlaces hiperte to hacia cualquier lugar de la red. Los navegadores utili#an documentos escritos en lengua$e %&'L. La combinacin actual de navegadores %&'L())) est!n limitados pues, a te to y gr!"icos. *i se quiere reproducir un sonido o e$ecutar un programa de demostracin, primero hemos de ba$arnos (download) el "ichero en cuestin y luego utili#ar un programa en nuestro ordenador capa# de entender el "ormato de ese "ichero, o bien cargar un mdulo (plug-in) en nuestro navegador para que pueda interpretar el "ichero que hemos ba$ado. %asta ahora, la +nica "orma de reali#ar una p!gina web con contenido interactivo, era mediante la inter"a# ,-I (,ommon -ateway Inter"ace), que permite pasar par!metros entre "ormularios de"inidos en lengua$e %&'L y programas escritos en .erl o en ,. Esta inter"a# resulta muy incmoda de programar y es pobre en sus posibilidades. El lengua$e /ava y los navegadores con soporte /ava, proporcionan una "orma di"erente de hacer que ese navegador sea capa# de e$ecutar programas. ,on /ava se puede reproducir sonido directamente desde el navegador, se pueden visitar home pages con animaciones, se puede ense0ar al navegador a mane$ar nuevos "ormatos de "icheros, e incluso, cuando se pueda transmitir v1deo por las l1neas tele"nicas, nuestro navegador estar! preparado para mostrar esas im!genes. 2tili#ando /ava, se pueden eliminar los inconvenientes de la inter"a# ,-I y tambi3n se pueden a0adir aplicaciones que vayan desde e perimentos cient1"icos interactivos de propsito educativo a $uegos o aplicaciones especiali#adas para la televenta. Es posible implementar publicidad interactiva y peridicos personali#ados. .or e$emplo, alguien podr1a escribir un programa /ava que implementara una simulacin qu1mica interactiva (una cadena de adn). 2tili#ando un navegador con soporte /ava, un usuario podr1a recibir "!cilmente esa simulacin e interaccionar con ella, en lugar de conseguir simplemente un dibu$o est!tico y algo de te to. Lo recibido cobra vida. 4dem!s, con /ava podemos estar seguros de que el cdigo que hace "uncionar el e perimento qu1mico no contiene ning+n tro#o de cdigo malicioso que da0e al sistema. El cdigo que intente actuar destructivamente o que contenga errores, no podr! traspasar los muros de"ensivos colocados por las caracter1sticas de seguridad y robuste# de /ava. 4dem!s, /ava proporciona una nueva "orma de acceder a las aplicaciones. El so"tware via$a transparentemente a trav3s de la red. 5o hay necesidad de instalar las aplicaciones, ellas mismas vienen cuando se necesitan. .or e$emplo, la mayor1a de los navegadores del )eb pueden procesar un reducido n+mero de "ormatos gr!"icos (t1picamente -I6 y /.E-). *i se encuentran con otro tipo de "ormato, el navegador est!ndar no tiene capacidad para procesarlo, tendr1a que ser actuali#ado para poder aprovechar las venta$as del nuevo "ormato. *in embargo, un navegador con soporte /ava puede enla#ar con el servidor que contiene el algoritmo que procesa ese nuevo "ormato y mostrar la imagen. .or lo tanto, si alguien inventa un nuevo algoritmo de compresin para im!genes, el inventor slo necesita estar seguro de que hay una copia en cdigo /ava de ese algoritmo instalada en el servidor que contiene las im!genes que quiere publicar. Es decir, los navegadores con soporte /ava se actuali#an a s1 mismos sobre la marcha, cuando encuentran un nuevo tipo de "ichero o algoritmo.

Caractersticas
Las caracter1sticas principales que nos o"rece /ava respecto a cualquier otro lengua$e de programacin, son7 Es SIMPLE: /ava o"rece toda la "uncionalidad de un lengua$e potente, pero sin las caracter1sticas menos usadas y m!s con"usas de 3stos. ,88 es un lengua$e que adolece de "alta de seguridad, pero , y ,88 son lengua$es m!s di"undidos, por ello /ava se dise0 para ser parecido a ,88 y as1 "acilitar un r!pido y "!cil aprendi#a$e. /ava elimina muchas de las caracter1sticas de otros lengua$es como ,88, para mantener reducidas las especi"icaciones del lengua$e y a0adir caracter1sticas muy +tiles como elgarbage collector (reciclador de memoria din!mica). 5o es necesario preocuparse de liberar memoria, el reciclador se encarga de ello y como es un thread de ba$a prioridad, cuando entra en accin, permite liberar bloques de memoria muy grandes, lo que reduce la "ragmentacin de la memoria. /ava reduce en un 9:; los errores m!s comunes de programacin con lengua$es como , y ,88 al eliminar muchas de las caracter1sticas de 3stos, entre las que destacan7 aritm3tica de punteros no e isten re"erencias registros (struct) de"inicin de tipos (typede") macros (<de"ine) necesidad de liberar memoria ("ree) 4unque, en realidad, lo que hace es eliminar las palabras reservadas (struct, typede"), ya que las clases son algo parecido. 4dem!s, el int3rprete completo de /ava que hay en este momento es muy peque0o, solamente ocupa =>9 ?b de @4'. Es ORIENTADO A OBJETOS: /ava implementa la tecnolog1a b!sica de ,88 con algunas me$oras y elimina algunas cosas para mantener el ob$etivo de la simplicidad del lengua$e. /ava traba$a con sus datos como ob$etos y con inter"aces a esos ob$etos. *oporta las tres caracter1sticas propias del paradigma de la orientacin a ob$etos7 encapsulacin, herencia y polimor"ismo. Las plantillas de ob$etos son llamadas, como en ,88,clases y sus copias, instancias. Estas instancias, como en ,88, necesitan ser construidas y destruidas en espacios de memoria. /ava incorpora "uncionalidades ine istentes en ,88 como por e$emplo, la resolucin din!mica de m3todos. Esta caracter1stica deriva del lengua$e Ab$ective ,, propietario del sistema operativo 5e t. En ,88 se suele traba$ar con librer1as din!micas (BLLs) que obligan a recompilar la aplicacin cuando se retocan las "unciones que se encuentran en su interior. Este inconveniente es resuelto por /ava mediante una inter"a# espec1"ica llamada @&&I (@un&ime &ype Identi"ication) que de"ine la interaccin entre ob$etos e cluyendo variables de instancias o implementacin de m3todos. Las clases en /ava tienen una representacin en el runtime que permite a los programadores interrogar por el tipo de clase y enla#ar din!micamente la clase con el resultado de la b+squeda. Es DISTRIBUIDO: /ava se ha construido con e tensas capacidades de intercone in &,.(I.. E isten librer1as de rutinas para acceder e interactuar con protocolos como http y "tp. Esto permite a los programadores acceder a la in"ormacin a trav3s de la red con tanta "acilidad como a los "icheros locales.

La verdad es que /ava en s1 no es distribuido, sino que proporciona las librer1as y herramientas para que los programas puedan ser distribuidos, es decir, que se corran en varias m!quinas, interactuando. Es ROBUSTO: /ava reali#a veri"icaciones en busca de problemas tanto en tiempo de compilacin como en tiempo de e$ecucin. La comprobacin de tipos en /ava ayuda a detectar errores, lo antes posible, en el ciclo de desarrollo. /ava obliga a la declaracin e pl1cita de m3todos, reduciendo as1 las posibilidades de error. 'ane$a la memoria para eliminar las preocupaciones por parte del programador de la liberacin o corrupcin de memoria. &ambi3n implementa los arrays aut3nticos, en ve# de listas enla#adas de punteros, con comprobacin de l1mites, para evitar la posibilidad de sobrescribir o corromper memoria resultado de punteros que se0alan a #onas equivocadas. Estas caracter1sticas reducen dr!sticamente el tiempo de desarrollo de aplicaciones en /ava. 4dem!s, para asegurar el "uncionamiento de la aplicacin, reali#a una veri"icacin de losbyte-codes, que son el resultado de la compilacin de un programa /ava. Es un cdigo de m!quina virtual que es interpretado por el int3rprete /ava. 5o es el cdigo m!quina directamente entendible por el hardware, pero ya ha pasado todas las "ases del compilador7 an!lisis de instrucciones, orden de operadores, etc., y ya tiene generada la pila de e$ecucin de rdenes. /ava proporciona, pues7 ,omprobacin de punteros ,omprobacin de l1mites de arrays E cepciones Ceri"icacin de byte-codes Es de ARQUITECTURA NEUTRAL: .ara establecer /ava como parte integral de la red, el compilador /ava compila su cdigo a un "ichero ob$eto de "ormato independiente de la arquitectura de la m!quina en que se e$ecutar!. ,ualquier m!quina que tenga el sistema de e$ecucin (run-time) puede e$ecutar ese cdigo ob$eto, sin importar en modo alguno la m!quina en que ha sido generado. 4ctualmente e isten sistemas run-time para *olaris =. , *unAs D.>. , )indows E9, )indows 5&, Linu , Iri , 4i , 'ac, 4pple y probablemente haya grupos de desarrollo traba$ando en el porting a otras plata"ormas. El cdigo "uente /ava se FcompilaF a un cdigo de bytes de alto nivel independiente de la m!quina. Este cdigo (byte-codes) est! dise0ado para e$ecutarse en una m!quina hipot3tica que es implementada por un sistema run-time, que s1 es dependiente de la m!quina. En una representacin en que tuvi3semos que indicar todos los elementos que "orman parte de la arquitectura de /ava sobre una plata"orma gen3rica, obtendr1amos una "igura como la siguiente7 En ella podemos ver que lo verdaderamente dependiente del sistema es la '!quina Cirtual /ava (/C') y las librer1as "undamentales, que tambi3n nos permitir1an acceder directamente al hardware de la m!quina. 4dem!s, habr! 4.Is de /ava que tambi3n entren en contacto directo con el hardware y ser!n dependientes de la m!quina, como e$emplo de este tipo de 4.Is podemos citar7 /ava /ava /ava /ava /ava /ava =B7 gr!"icos =B y manipulacin de im!genes 'edia 6rameworG7 Elementos cr1ticos en el tiempo7 audio, video... 4nimation7 4nimacin de ob$etos en =B &elephony7 Integracin con tele"on1a *hare7 Interaccin entre aplicaciones multiusuario HB7 -r!"icos HB y su manipulacin

Es SE URO: La seguridad en /ava tiene dos "acetas. En el lengua$e, caracter1sticas como los punteros o el casting impl1cito que hacen los compiladores de , y ,88 se eliminan para prevenir el acceso ilegal a la memoria. ,uando se usa /ava para crear un navegador, se combinan las caracter1sticas del lengua$e con protecciones de sentido com+n aplicadas al propio navegador. El lengua$e ,, por e$emplo, tiene lagunas de seguridad importantes, como son los errores de alineacin. Los programadores de , utili#an punteros en con$uncin con operaciones aritm3ticas. Esto le permite al programador que un puntero re"erencie a un lugar conocido de la memoria y pueda sumar (o restar) alg+n valor, para re"erirse a otro lugar de la memoria. *i otros programadores conocen nuestras estructuras de datos pueden e traer in"ormacin con"idencial de nuestro sistema. ,on un lengua$e como ,, se pueden tomar n+meros enteros aleatorios y convertirlos en punteros para luego acceder a la memoria7 print"( FEscribe un valor entero7 F )I scan"( F;uF,Jpuntero )I print"( F,adena de memoria7 ;snF,puntero )I Atra laguna de seguridad u otro tipo de ataque, es el ,aballo de &roya. *e presenta un programa como una utilidad, resultando tener una "uncionalidad destructiva. .or e$emplo, en 25IK se visuali#a el contenido de un directorio con el comando ls. *i un programador de$a un comando destructivo ba$o esta re"erencia, se puede correr el riesgo de e$ecutar cdigo malicioso, aunque el comando siga haciendo la "uncionalidad que se le supone, despu3s de lan#ar su carga destructiva. .or e$emplo, despu3s de que el caballo de &roya haya enviado por correo el (etc(shadow a su creador, e$ecuta la "uncionalidad de lspersentando el contenido del directorio. *e notar! un retardo, pero nada inusual. El cdigo /ava pasa muchos tests antes de e$ecutarse en una m!quina. El cdigo se pasa a trav3s de un veri"icador de byte-codes que comprueba el "ormato de los "ragmentos de cdigo y aplica un probador de teoremas para detectar "ragmentos de cdigo ilegal -cdigo que "alsea punteros, viola derechos de acceso sobre ob$etos o intenta cambiar el tipo o clase de un ob$eto. *i los byte-codes pasan la veri"icacin sin generar ning+n mensa$e de error, entonces sabemos que7 El cdigo no produce desbordamiento de operandos en la pila El tipo de los par!metros de todos los cdigos de operacin son conocidos y correctos 5o ha ocurrido ninguna conversin ilegal de datos, tal como convertir enteros en punteros El acceso a los campos de un ob$eto se sabe que es legal7 public, private, protected 5o hay ning+n intento de violar las reglas de acceso y seguridad establecidas El ,argador de ,lases tambi3n ayuda a /ava a mantener su seguridad, separando el espacio de nombres del sistema de "icheros local, del de los recursos procedentes de la red. Esto limita cualquier aplicacin del tipo ,aballo de &roya, ya que las clases se buscan primero entre las locales y luego entre las procedentes del e terior. Las clases importadas de la red se almacenan en un espacio de nombres privado, asociado con el origen. ,uando una clase del espacio de nombres privado accede a otra clase, primero se busca en las clases prede"inidas (del sistema local) y luego en el espacio de nombres de la clase que hace la re"erencia. Esto imposibilita que una clase suplante a una prede"inida.

En resumen, las aplicaciones de /ava resultan e tremadamente seguras, ya que no acceden a #onas delicadas de memoria o de sistema, con lo cual evitan la interaccin de ciertos virus. /ava no posee una sem!ntica espec1"ica para modi"icar la pila de programa, la memoria libre o utili#ar ob$etos y m3todos de un programa sin los privilegios del Gernel del sistema operativo. 4dem!s, para evitar modi"icaciones por parte de los cracGers de la red, implementa un m3todo ultra seguro de autenticacin por clave p+blica. El ,argador de ,lases puede veri"icar una "irma digital antes de reali#ar una instancia de un ob$eto. .or tanto, ning+n ob$eto se crea y almacena en memoria, sin que se validen los privilegios de acceso. Es decir, la seguridad se integra en el momento de compilacin, con el nivel de detalle y de privilegio que sea necesario. Bada, pues la concepcin del lengua$e y si todos los elementos se mantienen dentro del est!ndar marcado por *un, no hay peligro. /ava imposibilita, tambi3n, abrir ning+n "ichero de la m!quina local (siempre que se reali#an operaciones con archivos, 3stas traba$an sobre el disco duro de la m!quina de donde parti el applet), no permite e$ecutar ninguna aplicacin nativa de una plata"orma e impide que se utilicen otros ordenadores como puente, es decir, nadie puede utili#ar nuestra m!quina para hacer peticiones o reali#ar operaciones con otra. 4dem!s, los int3rpretes que incorporan los navegadores de la )eb son a+n m!s restrictivos. La$o estas condiciones (y dentro de la "iloso"1a de que el +nico ordenador seguro es el que est! apagado, desenchu"ado, dentro de una c!mara acora#ada en un bunGer y rodeado por mil soldados de los cuerpos especiales del e$3rcito), se puede considerar que /ava es un lengua$e seguro y que los applets est!n libres de virus. @especto a la seguridad del cdigo "uente, no ya del lengua$e, /B? proporciona un desemsamblador de byte-code, que permite que cualquier programa pueda ser convertido a cdigo "uente, lo que para el programador signi"ica una vulnerabilidad total a su cdigo. 2tili#ando $avap no se obtiene el cdigo "uente original, pero s1 desmonta el programa mostrando el algoritmo que se utili#a, que es lo realmente interesante. La proteccin de los programadores ante esto es utili#ar llamadas a programas nativos, e ternos (incluso en , o ,88) de "orma que no sea descompilable todo el cdigoI aunque as1 se pierda portabilidad. Esta es otra de las cuestiones que /ava tiene pendientes. Es PORTABLE: '!s all! de la portabilidad b!sica por ser de arquitectura independiente, /ava implementa otros est!ndares de portabilidad para "acilitar el desarrollo. Los enteros son siempre enterosy adem!s, enteros de H= bits en complemento a =. 4dem!s, /ava construye sus inter"aces de usuario a trav3s de un sistema abstracto de ventanas de "orma que las ventanas puedan ser implantadas en entornos 2ni , .c o 'ac. Es INTERPRETADO: El int3rprete /ava (sistema run-time) puede e$ecutar directamente el cdigo ob$eto. Enla#ar (linGar) un programa, normalmente, consume menos recursos que compilarlo, por lo que los desarrolladores con /ava pasar!n m!s tiempo desarrollando y menos esperando por el ordenador. 5o obstante, el compilador actual del /B? es bastante lento. .or ahora, que todav1a no hay compiladores espec1"icos de /ava para las diversas plata"ormas, /ava es m!s lento que otros lengua$es de programacin, como ,88, ya que debe ser interpretado y no e$ecutado como sucede en cualquier programa tradicional. *e dice que /ava es de >: a H: veces m!s lento que ,, y que tampoco e isten en /ava proyectos de gran envergadura como en otros lengua$es. La verdad es que ya hay comparaciones venta$osas entre /ava y el resto de los lengua$es de programacin, y una ingente cantidad de "olletos electrnicos que supuran "anatismo en "avor y en contra de los distintos lengua$es contendientes con /ava. Lo que se suele de$ar de lado en todo esto, es que primero habr1a que decidir hasta que punto /ava, un lengua$e en pleno desarrollo y todav1a sin de"inicin de"initiva, est! maduro como

lengua$e de programacin para ser comparado *malltalG, que lleva m!s de =: a0os en cancha.

con

otrosI

como

por

e$emplo

con

La verdad es que /ava para conseguir ser un lengua$e independiente del sistema operativo y del procesador que incorpore la m!quina utili#ada, es tanto interpretado como compilado. M esto no es ning+n contrasentido, me e plico, el cdigo "uente escrito con cualquier editor se compila generando el byte-code. Este cdigo intermedio es de muy ba$o nivel, pero sin alcan#ar las instrucciones m!quina propias de cada plata"orma y no tiene nada que ver con el p-code de Cisual Lasic. El byte-code corresponde al N:; de las instrucciones de la aplicacin. Ese mismo cdigo es el que se puede e$ecutar sobre cualquier plata"orma. .ara ello hace "alta el run-time, que s1 es completamente dependiente de la m!quina y del sistema operativo, que interpreta din!micamente el byte-code y a0ade el =:; de instrucciones que "altaban para su e$ecucin. ,on este sistema es "!cil crear aplicaciones multiplata"orma, pero para e$ecutarlas es necesario que e ista el runtime correspondiente al sistema operativo utili#ado. Es MULTIT!READED: 4l ser multithreaded (multihilvanado, en mala traduccin), /ava permite muchas actividades simult!neas en un programa. Los threads (a veces llamados, procesos ligeros), son b!sicamente peque0os procesos o pie#as independientes de un gran proceso. 4l estar los threads contruidos en el lengua$e, son m!s "!ciles de usar y m!s robustos que sus homlogos en , o ,88. El bene"icio de ser miltithreaded consiste en un me$or rendimiento interactivo y me$or comportamiento en tiempo real. 4unque el comportamiento en tiempo real est! limitado a las capacidades del sistema operativo subyacente (2ni , )indows, etc.), a+n supera a los entornos de "lu$o +nico de programa (single-threaded) tanto en "acilidad de desarrollo como en rendimiento. ,ualquiera que haya utili#ado la tecnolog1a de navegacin concurrente, sabe lo "rustrante que puede ser esperar por una gran imagen que se est! trayendo. En /ava, las im!genes se pueden ir trayendo en un thread independiente, permitiendo que el usuario pueda acceder a la in"ormacin en la p!gina sin tener que esperar por el navegador. Es DINAMICO: /ava se bene"icia todo lo posible de la tecnolog1a orientada a ob$etos. /ava no intenta conectar todos los mdulos que comprenden una aplicacin hasta el tiempo de e$ecucin. Las librer1a nuevas o actuali#adas no parali#ar!n las aplicaciones actuales (siempre que mantengan el 4.I anterior). /ava tambi3n simpli"ica el uso de protocolos nuevos o actuali#ados. *i su sistema e$ecuta una aplicacin /ava sobre la red y encuentra una pie#a de la aplicacin que no sabe mane$ar, tal como se ha e plicado en p!rra"os anteriores, /ava es capa# de traer autom!ticamente cualquiera de esas pie#as que el sistema necesita para "uncionar. /ava, para evitar que los mdulos de byte-codes o los ob$etos o nuevas clases, haya que estar tray3ndolos de la red cada ve# que se necesiten, implementa las opciones de persistencia, para que no se eliminen cuando de limpie la cach3 de la m!quina.

"ersi#nes de Java
JD$ %&' (=H de enero de >EEO) JD$ %&% (>E de "ebrero de >EEP). 2na reestructuracin intensiva del modelo de eventos 4)& (4bstract )indowing &oolGit), clases internas (inner classes), /avaLeans, /BL, (/ava Batabase ,onnectivity), para la integracin de bases de datos, @'I (@emote 'ethod Invocation).

J(SE %&( (N de dieciembre de >EEN - 5ombre clave .layground. Esta y las siguientes versiones "ueron recogidas ba$o la denominacin /ava = y el nombre F/=*EF (/ava = .lat"orm, *tandard Edition), reempla# a /B? para distinguir la plata"orma base de /=EE (/ava = .lat"orm, Enterprise Edition) y /='E (/ava = .lat"orm, 'icro Edition). La palabra reservada (Geyword) strict"p. @e"le in en la programacin. La 4.I gr!"ica ( *wing) "ue integrada en las clases b!sicas. La m!quina virtual (/C') de *un "ue equipada con un compilador /I& (/ust in &ime) por primera ve#. /ava .lug-in. /ava IBL, una implementacin de IBL (Inter"a# para Bescripcin de Lengua$e) para la interoperabilidad con ,A@L4 ,olecciones (,ollections)

J(SE %&) (N de mayo de =:::) - 5ombre clave ?estrel. La inclusin de la m!quina virtual de %ot*pot /C' (la /C' de %ot*pot "ue lan#ada inicialmente en abril de >EEE, para la /C' de /=*E >.=) @'I "ue cambiado para que se basara en ,A@L4. /ava*ound *e incluy el /ava 5aming and Birectory Inter"ace (/5BI) en el paquete de librer1as principales (anteriormente disponible como una e tensin). /ava .lat"orm Bebugger 4rchitecture (/.B4)

J(SE %&* (O de "ebrero de =::=) 5ombre ,lave 'erlin. Este "ue el primer lan#amiento de la plata"orma /ava desarrollado ba$o el .roceso de la ,omunidad /ava como /*@ 9E. Los cambios m!s notables "ueron7 comunicado de prensalista completa de cambios. .alabra reservada assert (Especi"icado en /*@ D>.) E presiones regulares modeladas al estilo de las e presiones regulares .erl. Encadenacin de e cepciones .ermite a una e cepcin encapsular la e cepcin de ba$o nivel original. 5on-blocGing 5IA (5ew Input(Autput) (Especi"icado en /*@ 9>.) Logging 4.I (*peci"ied in /*@ DP.) 4.I I(A para la lectura y escritura de im!genes en "ormatos como /.E- o .5.arser K'L integrado y procesador K*L& (/4K.) (Especi"icado en /*@ 9 y /*@ OH.) *eguridad integrada y e tensiones criptogr!"icas (/,E, /**E, /44*) /ava )eb *tart incluido (El primer lan#amiento ocurri en 'ar#o de =::> para /=*E >.H) (Especi"icado en /*@ 9O.)

J(SE +&' (H: de septiembre de =::D) - 5ombre clave7 &iger. (Ariginalmente numerado >.9, esta notacin a+n es usada internamente.QDR) Besarrollado ba$o /*@ >PO, &iger a0adi un n+mero signi"icativo de nuevas caracter1sticas comunicado de prensa. 'etadatos - tambi3n llamados anotaciones, permite a estructuras del lengua$e como las clases o los m3todos, ser etiquetados con datos adicionales, que puedan ser procesados posteriormente por utilidades de proceso de metadatos. (Especi"icado por /*@ >P9.) 4utobo ing(unbo ing - ,onversiones autom!ticas entre tipos primitivos (,omo los int) y clases de envoltura primitivas (,omo Integer). (Especi"icado por /*@ =:>.) Enumeraciones - la palabra reservada enum crea una typesa"e, lista ordenada de valores (como Bia.L25E*, Bia.'4@&E*, etc.). 4nteriormente, esto solo pod1a ser llevado a cabo por constantes enteras o clases construidas manualmente (enum pattern). (Especi"icado por /*@ =:>.)

Carargs (n+mero de argumentos variable) - El +ltimo par!metro de un m3todo puede ser declarado con el nombre del tipo seguido por tres puntos (e.g. void drawte t(*tring... lines)). En la llamada al m3todo, puede usarse cualquier n+mero de par!metros de ese tipo, que ser!n almacenados en un array para pasarlos al metodo. Lucle "or me$orado - La sinta is para el bucle "or se ha e tendido con una sinta is especial para iterar sobre cada miembro de un array o sobre cualquier clase que implemente Iterable, como la clase est!ndar ,ollection, de la siguiente "orma7 void display)idgets (Iterable widgets) S "or ()idget w 7 widgets) S w.display()I T T Este e$emplo itera sobre el ob$eto Iterable widgets, asignando, en orden, cada uno de los elementos a la variable w, y llamando al m3todo display() de cada uno de ellos. (Especi"icado por /*@ =:>.) , (>> de diciembre de =::O) - 5ombre clave 'ustang. Estuvo en desarrollo /*@ =P:. En esta versin, *un cambi el nombre F/=*EF por /ava *E y elimin del n+mero de versin.Q9R. Est! disponible en http://java.sun.com/javase/6/ Los m!s importantes introducidos en esta versin son7

Java SE ba$o la el F.:F cambios

Incluye un nuevo marco de traba$o y 4.Is que hacen posible la combinacin de /ava con lengua$es din!micos como .%., .ython, @uby y /ava*cript. Incluye el motor @hino, de 'o#illa, una implementacin de /avascript en /ava. Incluye un cliente completo de *ervicios )eb y soporta las +ltimas especi"icaciones para *ervicios )eb, como /4K-)* =.:, /4KL =.:, *&4K y /4K.. 'e$oras en la inter"a# gr!"ica y en el rendimiento.

Java SE -- 5ombre clave Bolphin. En el a0o =::O a+n se encontraba en las primeras etapas de plani"icacin. *e espera que su desarrollo d3 comien#o en la primavera de =::O, y se estima su lan#amiento para =::N. *oporte para K'L dentro del propio lengua$e 2n nuevo concepto de superpaquete *oporte para closures Introduccin de anotaciones est!ndar para detectar "allos en el so"tware.

4dem!s de los cambios en el lengua$e, con el paso de los a0os se han e"ectuado muchos m!s cambios dram!ticos en la librer1a de clases de /ava (Java class library) que ha crecido de unos pocos cientos de clases en /B? >.: hasta m!s de tres mil en /=*E 9.:. 4.Is completamente nuevas, como *wing y /ava=B, han sido introducidas y muchos de los m3todos y clases originales de /B? >.: est!n desaprobados.

Das könnte Ihnen auch gefallen