Contenido Checked

Java (lenguaje de programaci??n)

Temas relacionados: Programas de computadoras

Antecedentes de las escuelas de Wikipedia

SOS cree que la educaci??n da una mejor oportunidad en la vida para los ni??os en el mundo en desarrollo tambi??n. Madres SOS cada aspecto despu??s de un una familia de ni??os apadrinados .

Java
Java logo.svg
Paradigma (s) multi-paradigma: orientado a objetos, estructurado, imperativo, gen??rico, reflectante
Apareci?? en 1995 (1995)
Dise??ado por James Gosling y
Sun Microsystems
Revelador Oracle Corporation
??ltima versi??n estable Java Standard Edition 7 Actualizaci??n 21 (07/01/21) (16 de abril de 2013 (16/04/2013))
Disciplina Typing Est??tica, fuerte, seguro, nominativas, manifiesto
Las principales implementaciones OpenJDK, muchos otros
Dialectos Generic Java, Pizza
Influenciado por Ada 83, C ++ , C #, Eiffel, Generic Java, Mesa, Modula-3, Oberon, Objective-C, UCSD Pascal, Smalltalk
Influenciado Ada 2005, BeanShell, C #, Clojure, D, ECMAScript, Groovy, J #, JavaScript PHP, Python , Scala, Seed7, Vala
Lenguaje de implementaci??n C y C ++
OS Cruz-plataforma (multiplataforma)
Licencia Licencia P??blica General de GNU, Java Community Process
Usual extensiones de archivos .java, .class, .jar
  • Para desarrolladores de Java
  • Programaci??n Java en Wikilibros

Java es una prop??sito general, concurrente, basada en la clase, orientado a objetos lenguaje de programaci??n que est?? dise??ado espec??ficamente para tener el menor n??mero de dependencias de implementaci??n como sea posible. Su objetivo es permitir a los desarrolladores de aplicaciones "escribir una vez, ejecutar en cualquier lugar" (WORA), lo que significa que el c??digo que se ejecuta en una plataforma no necesita ser recompilado para funcionar en otro. Las aplicaciones Java est??n t??picamente compilado para c??digo de bytes ( archivo de clase) que puede funcionar en cualquier M??quina virtual Java (JVM), independientemente de arquitectura de computadores. Java es, desde 2012, uno de los lenguajes de programaci??n m??s populares en uso, en particular para aplicaciones web cliente-servidor, con una reportado 10 millones de usuarios. Java fue desarrollado originalmente por James Gosling en Sun Microsystems (que desde entonces ha fusionado en Oracle Corporation) y lanzado en 1995 como un componente b??sico de Sun Microsystems Plataforma Java. El lenguaje se deriva gran parte de su sintaxis de C y C ++ , pero tiene menos instalaciones de bajo nivel que cualquiera de ellos.

El original y referencia Java aplicaci??n compiladores, m??quinas virtuales, y bibliotecas de clases fueron desarrollados por Sun a partir de 1991 y por primera vez en 1995. En mayo de 2007, en cumplimiento de las especificaciones de la Java Community Process, Sun relicensed la mayor parte de sus tecnolog??as Java bajo la Licencia P??blica General GNU. Otros tambi??n han desarrollado implementaciones alternativas de estas tecnolog??as de Sun, como la Compilador GNU para Java y Classpath GNU.

Historia

James Gosling, Mike Sheridan, y Patrick Naughton inici?? el proyecto del lenguaje Java en junio de 1991. Java fue dise??ado originalmente para la televisi??n interactiva, pero ya era demasiado avanzada para la industria de la televisi??n por cable digital en el momento. El lenguaje se llam?? inicialmente Roble despu??s de un roble ??rbol que se encontraba fuera de la oficina de Gosling; que fue por el nombre Verde despu??s, y m??s tarde pas?? a llamarse Java, desde Caf?? de Java, dijo que se consume en grandes cantidades por los creadores del lenguaje. Gosling dirigido para implementar una m??quina virtual y un lenguaje que ten??a un familiar de C / C ++ estilo de notaci??n.

Sun Microsystems lanz?? la primera aplicaci??n p??blica como Java 1.0 en 1995. Prometi?? " Escribir una vez, ejecutar en cualquier lugar "(WORA), ofreciendo sin costo-tiempos de ejecuci??n en la popular plataformas. Seguridad configurable Bastante seguro y que ofrece, permiti?? que las restricciones de red y de acceso a archivos. Las principales navegadores web pronto incorporaron la posibilidad de ejecutar Applets de Java dentro de las p??ginas web y Java se convirti?? r??pidamente popular. Con la llegada de Java 2 (lanzado inicialmente como J2SE 1.2 en Diciembre de 1998 - 1999), las nuevas versiones ten??an m??ltiples configuraciones creadas para diferentes tipos de plataformas. Por ejemplo, J2EE dirigida aplicaciones empresariales y la versi??n J2ME despojada gran medida para aplicaciones m??viles (Mobile Java). J2SE designado la edici??n est??ndar. En 2006, con fines de marketing, Sun rebautizado nuevas versiones J2 como Java EE, Java ME, y Java SE, respectivamente.

En 1997, Sun Microsystems se acerc?? a la Normas ISO / IEC JTC1 cuerpo y m??s tarde el Ecma Internacional para la formalizaci??n de Java, pero pronto se retir?? del proceso. Java sigue siendo una est??ndar de facto, controlado a trav??s de la Java Community Process. En un momento, Sun hizo la mayor??a de sus implementaciones Java disponibles sin costo alguno, a pesar de su estado de software propietario. Sun gener?? ingresos de Java a trav??s de la venta de licencias para productos especializados, como el Java Enterprise System. Sun distingue entre su Kit de Desarrollo de Software (SDK) y Runtime Environment (JRE) (un subconjunto del SDK); la distinci??n primaria implica la Falta de JRE del compilador, programas de utilidad, y los archivos de cabecera.

El 13 de noviembre de 2006, Sun lanz?? la mayor parte de Java como software libre y de c??digo abierto, (FOSS), en los t??rminos de la GNU General Public License (GPL). El 8 de mayo de 2007, Sun terminado el proceso, por lo que todo el c??digo del n??cleo de Java disponible bajo t??rminos de distribuci??n de software / gratuitas de c??digo abierto, aparte de una peque??a porci??n de c??digo para que Sun no tienen los derechos de autor.

El vicepresidente de Sun Rich Green, dijo que el papel ideales de Sun con respecto a Java era como un "evangelista". A ra??z de Oracle Corporation adquisici??n 's de Sun Microsystems en el per??odo 2009-2010, Oracle ha descrito a s?? mismo como el "administrador de la tecnolog??a Java con un incansable compromiso con el fomento de una comunidad de la participaci??n y la transparencia". Esto no sostuvo Oracle, sin embargo, a partir de la presentaci??n de una demanda contra Google poco despu??s de que por el uso de Java en el SDK de Android (ver secci??n de Google a continuaci??n). Software de Java se ejecuta en ordenadores port??tiles a centros de datos, consolas de juegos a cient??fico supercomputadoras. Hay 930 millones Java Runtime Environment se descarga cada a??o y 3 mil millones de tel??fonos m??viles ejecutar Java. El 2 de abril de 2010, James Gosling dimiti?? de Oracle.

Principios

James Gosling, creador de Java

Hab??a cinco objetivos principales en la creaci??n del lenguaje Java:

  1. Debe ser "simple, orientado a objetos y familiar"
  2. Debe ser "robusta y segura"
  3. Debe ser "arquitectura neutra y port??til"
  4. Se debe ejecutar con "alto rendimiento"
  5. Cabe "interpretado, roscado, y din??mico"

Versiones

Versiones gran lanzamiento de Java, junto con sus fechas de estreno:

  • JDK 1.0 (21 de enero, 1996)
  • JDK 1.1 (19 de febrero, 1997)
  • J2SE 1.2 (8 de diciembre, 1998)
  • J2SE 1.3 (8 de mayo, 2000)
  • J2SE 1.4 (6 de febrero de 2002)
  • J2SE 5.0 (30 de septiembre de 2004)
  • Java SE 6 (11 de diciembre de 2006)
  • Java SE 7 (28 de julio de 2011)

Pr??cticas

Plataforma Java

Una caracter??stica de Java es la portabilidad, lo que significa que los programas inform??ticos escritos en el lenguaje Java deben ejecutarse de manera similar en cualquier plataforma hardware / sistema operativo. Esto se logra mediante la compilaci??n del c??digo del lenguaje Java a una representaci??n intermedia llamada Bytecode de Java, en lugar de directamente a espec??fico de la plataforma c??digo de m??quina. Instrucciones de c??digo de bytes de Java son an??logos a c??digo de m??quina, sino que se pretende que sean interpretado por una m??quina virtual (VM) por escrito espec??ficamente para el hardware del host. Los usuarios finales suelen utilizar un Java Runtime Environment (JRE) instalado en su propia m??quina para aplicaciones Java aut??nomas, o en un navegador Web para Java applets.

Bibliotecas estandarizadas proveen una manera gen??rica para acceder a funciones espec??ficas de servidor, tales como gr??ficos, roscado, y la creaci??n de redes.

Un beneficio importante de usar el c??digo de bytes est?? portando. Sin embargo, los gastos generales de la interpretaci??n significa que los programas interpretados casi siempre se ejecutan con mayor lentitud que los programas compilados para ejecutables nativos har??a. Just-in-Time (JIT) compiladores se introdujeron desde una etapa temprana que compile bytecodes a c??digo m??quina durante el tiempo de ejecuci??n.

Implementaciones

Oracle Corporation es la propietaria actual de la aplicaci??n oficial de la plataforma Java SE, tras su adquisici??n de Sun Microsystems, el 27 de enero de 2010. Esta aplicaci??n se basa en la implementaci??n original de Java de Sun. La aplicaci??n est?? disponible para Oracle Mac OS X, de Windows y Solaris. Debido a que Java carece de normalizaci??n formal reconocido por Ecma Internacional, ISO / IEC, ANSI, u otra organizaci??n de est??ndares de terceros, la implementaci??n de Oracle es la est??ndar de facto.

La implementaci??n de Oracle se empaqueta en dos distribuciones diferentes: El Java Runtime Environment (JRE), que contiene las partes de la plataforma Java SE necesarios para ejecutar programas Java y est?? destinado a los usuarios finales, y la Java Development Kit (JDK), que est?? dirigido a los desarrolladores de software e incluye herramientas de desarrollo como el Compilador de Java, Javadoc, Jar, y un depurador.

OpenJDK es otra implementaci??n notable Java SE que est?? bajo la licencia GPL. La implementaci??n comenz?? cuando Sun comenz?? a liberar el c??digo fuente de Java bajo GPL. A partir de Java SE 7, OpenJDK es la implementaci??n de referencia oficial de Java.

El objetivo de Java es hacer que todas las implementaciones de Java compatible. Hist??ricamente, la licencia de la marca registrada de Sun para el uso de la marca Java insiste en que todas las implementaciones sean "compatibles". Esto dio lugar a una disputa legal con Microsoft despu??s de que Sun afirm?? que la implementaci??n de Microsoft no apoy?? RMI o JNI y hab??a a??adido caracter??sticas espec??ficas de la plataforma de los suyos. Sun demand?? en 1997, y en 2001 gan?? una compensaci??n de US $ 20 millones, as?? como una orden de la corte hacer cumplir los t??rminos de la licencia de Sun. Como resultado, Microsoft barcos ya no de Windows con Java.

Independiente de la plataforma Java es esencial para Java EE, y una validaci??n m??s rigurosa es necesaria para certificar una implementaci??n. Este entorno permite a las aplicaciones de servidor portables.

Rendimiento

Los programas escritos en Java tienen una reputaci??n de ser m??s lento y que requiere m??s memoria que los escritos en C ++ . Sin embargo, la velocidad de ejecuci??n de programas Java mejor?? significativamente con la introducci??n de Compilaci??n en 1997/1998 para Just-in-time Java 1.1, la adici??n de las caracter??sticas del lenguaje de apoyo mejor an??lisis de c??digo (como clases internas, la clase StringBuffer, afirmaciones opcionales, etc.), y optimizaciones en la propia m??quina virtual Java, como HotSpot convertirse en el valor predeterminado para la JVM de Sun en 2000. En diciembre de 2012, microbenchmarks muestran Java 7 es aproximadamente 44% m??s lento que C ++.

Algunas plataformas ofrecen apoyo directo al hardware para Java; hay microcontroladores que se pueden ejecutar Java en hardware en lugar de software Java m??quina virtual, y Procesadores ARM basado pueden tener soporte de hardware para ejecutar bytecode de Java a trav??s de su Opci??n Jazelle.

La gesti??n autom??tica de memoria

Java utiliza una recolector de basura autom??tico para la gesti??n de memoria en el ciclo de vida del objeto. El programador determina cu??ndo se crean los objetos, y el tiempo de ejecuci??n de Java se encarga de recuperar la memoria una vez que los objetos ya no est??n en uso. Una vez no hay referencias a un objeto se mantienen, la memoria inalcanzable hace elegible para ser liberado autom??ticamente por el recolector de basura. Algo similar a una p??rdida de memoria pueden producirse si el c??digo de un programador contiene una referencia a un objeto que ya no se necesitan, por lo general cuando los objetos que ya no son necesarios se almacenan en recipientes que todav??a est??n en uso. Si se llaman los m??todos de un objeto inexistente, se emite una "excepci??n de puntero nulo".

Una de las ideas detr??s de modelo de gesti??n autom??tica de memoria de Java es que los programadores se puede ahorrar la carga de tener que llevar a cabo la gesti??n de memoria manual. En algunos idiomas, la memoria para la creaci??n de objetos se asigna impl??citamente en la pila, o asignado de forma expl??cita y cancela la asignaci??n del mont??n. En este ??ltimo caso la responsabilidad de la gesti??n de memoria reside en el programador. Si el programa no desasignar un objeto, una p??rdida de memoria. Si el programa intenta acceder o liberar memoria que ya ha sido desasignado, el resultado es indefinido y dif??cil de predecir, y el programa es probable que se vuelva inestable y / o accidente. Esto puede remediarse en parte por el uso de punteros inteligentes, pero estos se suman los gastos generales y la complejidad. Tenga en cuenta que la recolecci??n de basura no evita p??rdidas de memoria "l??gicas", es decir, aquellos en los que la memoria todav??a est?? referenciada pero nunca utilizado.

La recolecci??n de basura puede ocurrir en cualquier momento. Lo ideal es que se producir?? cuando un programa est?? inactivo. Est?? garantizado que se activar?? si hay suficiente memoria libre en el mont??n de asignar un nuevo objeto; esto puede causar un programa para detener moment??neamente. Gesti??n de memoria expl??cita no es posible en Java.

Java no soporta C estilo / C ++ aritm??tica de punteros, donde las direcciones de objetos y enteros sin signo (enteros normalmente largas) se pueden utilizar indistintamente. Esto permite que el recolector de basura para reubicar objetos referenciados y garantiza la seguridad y la seguridad de tipo.

Al igual que en C ++ y otros lenguajes orientados a objetos, variables de Java tipos de datos primitivos no son objetos. Los valores de los tipos primitivos o bien se almacenan directamente en los campos (para objetos) o en el Stack (para los m??todos) en lugar de en el mont??n, como com??nmente cierto para los objetos (pero v??ase Escapar de an??lisis). Esta fue una decisi??n consciente por parte de los dise??adores de Java por motivos de rendimiento. Debido a esto, Java no se considera que es un lenguaje de programaci??n orientado a objetos puro. Sin embargo, a partir de Java 5.0, autoboxing permite a los programadores a proceder como si los tipos primitivos eran instancias de su clase contenedora.

Java contiene varios tipos de recolectores de basura. De forma predeterminada, utiliza el HotSpot Concurrente colector de barrido Marcos, tambi??n conocido como el Garbage Collector CMS. Sin embargo, tambi??n hay varios otros recolectores de basura que pueden ser utilizados para gestionar el Mont??n. Para el 90% de las aplicaciones en Java, el Garbage Collector CMS es lo suficientemente bueno.

Sintaxis

La sintaxis de Java se deriva en gran parte de C ++ . A diferencia de C ++, que combina la sintaxis estructurada, gen??rico, y la programaci??n orientada a objetos, Java fue construido casi exclusivamente como un lenguaje orientado a objetos. Todo el c??digo est?? escrito dentro de una clase, y todo es un objeto, con la excepci??n de los tipos de datos simples (por ejemplo, n??meros enteros, n??meros de coma flotante, valores booleanos y caracteres), que no son clases por razones de rendimiento.

A diferencia de C ++, Java no soporta operador sobrecargar o herencia m??ltiple para las clases. Esto simplifica el lenguaje y ayuda en la prevenci??n de errores potenciales y dise??o anti-patr??n.

Java utiliza m??todos de comentarios similares a C ++. Hay tres estilos diferentes de observaciones: un solo estilo de la l??nea marcada con dos barras ( // ), un estilo de l??nea m??ltiple se abri?? con /* y cierran con */ , y el Javadoc comentando estilo abierto con /** y cerr?? con */ . El estilo Javadoc de comentar permite que el usuario ejecute el archivo ejecutable Javadoc establecer una documentaci??n para el programa.

Ejemplo:

 // Este es un ejemplo de una sola l??nea de comentario mediante dos barras
 
 / * Este es un ejemplo de un comentario de varias l??neas usando la barra y asterisco. 
   Este tipo de comentario se puede utilizar para contener una gran cantidad de informaci??n o desactivar 
   c??digo, pero es muy importante recordar para cerrar el comentario.  * /
 
 / ** 
   * Este es un ejemplo de un comentario Javadoc;  Javadoc puede establecer una documentaci??n 
   * A partir de este texto. 
   * /
 
 / ** Finalmente, un ejemplo de un m??todo escrito en Java, envuelto en una clase.  * /
 fibsandlies paquete;
 java.util.HashMap importaci??n;
 
 public class FibCalculator extiende Fibonacci implementa Calculadora {
     HashMap est??tico privado <Integer, Integer> memoized = new HashMap <Integer, Integer> ();
 
     / ** Dado un n??mero FIBINDEX no negativo, devoluciones, 
       * El n??mero en??simo Fibonacci, donde N es igual FIBINDEX. 
       *param FibIndex El ??ndice del n??mero de Fibonacci 
       *return El propio n??mero de Fibonacci 
       * /
     @ Override
     public static int fibonacci (int fibIndex) {
         si (memoized. contains (fibIndex)) {
             volver memoized conseguir (fibIndex).;
         } Else {
             int respuesta = fibonacci (fibIndex - 1) + fibonacci (fibIndex - 2);
             . memoized poner (fibIndex, respuesta);
             respondamos;
         }
     }
 }

Ejemplos

Hola mundo

El tradicional Hola mundo puede ser escrito en Java como:

 clase HelloWorldApp {
     main (String [] args) {static void p??blicos
         Sistema cabo println ("Hello World!");.. // Muestra la cadena.
     }
 }

Para comparar esto con otros lenguajes de programaci??n ver la lista de hola ejemplos de programas mundo.

Los archivos de origen deber??n llevar el nombre de la clase p??blica que contienen, a??adiendo el sufijo .java , por ejemplo, HelloWorldApp.java . En primer lugar, debe ser compilado en bytecode, utilizando un Compilador Java, produciendo un archivo llamado HelloWorldApp.class . S??lo entonces puede ser ejecutado, o 'lanz??'. El archivo fuente de Java s??lo puede contener una clase p??blica, pero puede contener varias clases con distintos de acceso p??blico y cualquier n??mero de p??blico clases internas.

Una class que no se declara public puede ser almacenado en cualquier archivo .java. El compilador generar?? un archivo por cada clase que se define en el archivo de origen. El nombre del archivo de clase es el nombre de la clase, con .class adjuntas. Para la generaci??n de archivo de clase, clases an??nimas son tratados como si su nombre fuera la concatenaci??n del nombre de su clase envolvente, a $, y un entero.

La palabra clave public indica que un m??todo puede ser llamado desde c??digo en otras clases, o que una clase puede ser utilizada por las clases fuera de la jerarqu??a de clases. La jerarqu??a de clases est?? relacionado con el nombre del directorio en el que se encuentra el archivo .java.

La palabra clave static delante de un m??todo indica una m??todo est??tico, que se asocia s??lo con la clase y no con cualquier instancia espec??fica de dicha clase. S??lo los m??todos est??ticos pueden invocarse sin una referencia a un objeto. Los m??todos est??ticos no pueden acceder a los miembros de la clase que no son tambi??n est??tica.

La palabra clave void indica que el m??todo main no devuelve ning??n valor a la persona que llama. Si un programa Java es para salir con un c??digo de error, debe llamar System.exit () de forma expl??cita.

El nombre del m??todo " main "no es una palabra clave en el lenguaje Java. Es simplemente el nombre del m??todo, el lanzador Java llama a pasar el control al programa. Clases Java que se ejecutan en entornos administrados como applets y Empresa JavaBean no utiliza o necesita un main() m??todo. Un programa Java puede contener varias clases que tienen main m??todos, lo que significa que la m??quina virtual tiene que ser expl??citamente dicho qu?? clase de lanzar desde.

El m??todo main debe aceptar una gama de String objetos. Por convenci??n, se le hace referencia como args aunque cualquier otro nombre identificador legal podr?? utilizarse. Desde Java 5, el principal m??todo tambi??n se puede utilizar argumentos variables, en forma de public static void main(String... args) , lo que permite el m??todo principal para ser invocados con un n??mero arbitrario de String argumentos. El efecto de esta declaraci??n alternativa es sem??nticamente id??ntico (el args par??metro es todav??a una serie de String objetos), pero permite una sintaxis alternativa para la creaci??n y pasando la matriz.

El lanzador lanza Java Java mediante la carga de una clase determinada (especificado en la l??nea de comandos o como un atributo en una JAR) y comenzar su public static void main(String[]) m??todo. Stand-alone programas deben declarar este m??todo de forma expl??cita. El String[] args par??metro es un gama de String objetos que contienen los argumentos que se pasan a la clase. Los par??metros a main se pasan a menudo por medio de una l??nea de comando.

La impresi??n es parte de una librer??a est??ndar de Java: La System clase define un campo est??tico p??blico llamado out . El out objeto es una instancia de la PrintStream clase y proporciona muchos m??todos para la impresi??n de datos para la salida est??ndar, incluyendo println(String) que tambi??n a??ade una nueva l??nea a la cadena pasada.

La cadena "Hola, mundo!" se convierte autom??ticamente en un objeto String por el compilador.

Un ejemplo m??s amplia

 // OddEven.java
 javax.swing.JOptionPane importaci??n;
 
 public class OddEven {
     / ** 
       * "Entrada" es el n??mero que el usuario da a la computadora 
       * /
     entrada privada int; // un n??mero entero ("int" significa entero)
 
     / ** 
       * Este es el m??todo constructor.  Se obtiene la llamada cuando un objeto del tipo OddEven 
       Est?? siendo creado *. 
       * /
     OddEven p??blico () {
         / * 
           * En la mayor??a de los programas de Java constructores pueden inicializar objetos con valores por defecto, o crear 
           * otros objetos que este objeto podr??a utilizar para realizar sus funciones.  En algunos programas de Java, la 
           * Constructor puede ser simplemente una funci??n vac??a si no tiene que ser inicializado antes de la 
           * Funcionamiento del objeto.  En el caso de este programa, un constructor vac??o ser??a suficiente. 
           * Un constructor debe existir;  Sin embargo, si el usuario no poner uno en el compilador 
           * Crear?? una vac??a. 
           * /
     }
 
     / ** 
       * Este es el m??todo principal.  Se pone llama cuando esta clase se ejecuta a trav??s de un int??rprete de Java. 
       * Argumentos de la l??nea de comandos argsparam (sin usar) 
       * /
     static void main (String final [] args) {p??blico
        / * 
          * Esta l??nea de c??digo crea una nueva instancia de esta clase que se llama "n??mero" (tambi??n conocido como 
          * Object) y lo inicializa llamando al constructor.  La siguiente l??nea de c??digo llamadas 
          * El "showDialog ()" m??todo, que produce la solicitud para pedir por un n??mero 
          * /
        N??mero OddEven = new OddEven ();
        . N??mero showDialog ();
     }
 
     public void showDialog () {
         / * 
           * "Tratar" se asegura de que nada salga mal.  Si algo hace, 
           * El int??rprete salta para "atrapar" a ver de qu?? se debe hacer. 
           * /
         try {
             / * 
               * El c??digo de abajo aparece un JOptionPane, que es un cuadro de di??logo 
               * La cadena devuelta por el m??todo "showInputDialog ()" se convierte en 
               * Un entero, haciendo que el programa lo tratan como un n??mero en lugar de una palabra. 
               * Despu??s de eso, este m??todo requiere un segundo m??todo, calcular () que lo har?? 
               * Mostrar "Incluso" o "impar". 
               * /
             .. esta entrada = entero parseInt (. JOptionPane showInputDialog ("Por favor, introduzca un n??mero."));
             este c??lculo (.);
         } Catch (e NumberFormatException final) {
             / * 
               * Conseguir en el bloque catch significa que hubo un problema con el formato de 
               * El n??mero.  Probablemente algunas letras se escriben en lugar de un n??mero. 
               * /
             . Sistema de errar println ("ERROR: Entrada no v??lida Por favor, escriba un valor num??rico...");
         }
     }
 
     / ** 
       * Cuando esto se llama, env??a un mensaje a la int??rprete. 
       * El int??rprete suele mostrar en el s??mbolo del sistema (para usuarios de Windows) 
       * O el terminal (para usuarios de * nix). (Asumiendo que est?? abierta) 
       * /
     private void calcular () {
         if ((esta entrada.% 2) == 0) {
             JOptionPane showMessageDialog (null, "incluso.");
         } Else {
             . JOptionPane showMessageDialog (null, "impar");
         }
     }
 }
  • La declaraci??n de importaci??n importa el JOptionPane clase desde el javax.swing paquete.
  • El OddEven clase declara una sola privado campo de tipo int nombrado input . Cada instancia de la OddEven clase tiene su propia copia de la input campo. La declaraci??n privada significa que ninguna otra clase puede acceder (leer o escribir) la input campo.
  • OddEven() es un public constructor. Constructores tener el mismo nombre que la clase envolvente que se declaran en, ya diferencia de un m??todo, no tienen el tipo de retorno. Un constructor se utiliza para inicializar un objeto que es una instancia reci??n creada de la clase.
  • El calculate() m??todo se declara sin el static palabra clave. Esto significa que el m??todo se invoca usando una instancia espec??fica de la OddEven clase. (El de referencia utilizado para invocar el m??todo se pasa como un par??metro no declarada de tipo OddEven llamado this ). El m??todo de prueba la expresi??n input % 2 == 0 utilizando el if la palabra clave para ver si el resto de dividir la input campo perteneciente a la instancia de la clase por dos es cero. Si esta expresi??n es verdadera, entonces imprime Incluso; si esta expresi??n es falsa imprime impar. (La input campo se puede acceder de forma equivalente como this.input , que utiliza expl??citamente la no declarado this par??metro.)
  • OddEven number = new OddEven(); declara un objeto local variable de referencia en el main m??todo denominado number . Esta variable puede contener una referencia a un objeto de tipo OddEven . La declaraci??n inicializa number creando primero una instancia de la OddEven clase, utilizando el new palabra clave y el OddEven() constructor y asignando a esta instancia a la variable.
  • La declaraci??n number.showDialog(); llama al m??todo de calcular. La instancia de OddEven objeto referenciado por el number variable local se utiliza para invocar el m??todo y pasa como el no declarado this par??metro al calculate m??todo.
  • input = Integer.parseInt(JOptionPane.showInputDialog("Please Enter A Number")); es una declaraci??n que convierte el tipo de cadena a la tipo de datos primitivo int mediante el uso de una funci??n de utilidad en el primitiva Entero clase contenedora.

Clases especiales

Applet

Applets Java son programas que est??n incrustados en otras aplicaciones, por lo general en una p??gina Web que se muestra en un Navegador web.

 // Hello.java
 javax.swing.JApplet importaci??n;
 java.awt.Graphics de importaci??n;
 
 public class Hola extiende JApplet {
     p??blica paintComponent void (Gr??ficos ??ltima g) {
         g drawString ("??Hola, mundo!", 65, 95).;
     }
 }

Los import declaraciones dirigen el Compilador de Java para incluir el javax.swing.JApplet y java.awt.Graphics clases en la compilaci??n. La sentencia import permite estas clases para hacer referencia en el c??digo fuente utilizando el nombre de clase simple (es decir JApplet ) en lugar del nombre completo de la clase (es decir javax.swing.JApplet ).

El Hello clase extends ( subclases) la JApplet (Java Applet) de clase; la JApplet clase proporciona el marco para la aplicaci??n host para visualizar y controlar la ciclo de vida del applet. El JApplet clase es un JComponent (Java gr??fica de componentes), que proporciona el applet con la capacidad de mostrar un interfaz gr??fica de usuario (GUI) y responder a usuario eventos.

El Hello clase anula el paintComponent(Graphics) m??todo (que se indica, adem??s, con la anotaci??n, acompa??ada, de JDK 1.5, Override ) heredada de la Contenedor superclase para proporcionar el c??digo para mostrar el applet. El paintComponent() m??todo se pasa un Graphics objeto que contiene el contexto gr??fico utilizado para mostrar el applet. El paintComponent() m??todo llama al contexto gr??fico drawString(String, int, int) m??todo para visualizar el "Hola, mundo!" cuerda a la pixel desplazamiento de ( 65, 95 ) de la esquina superior izquierda de la pantalla del applet.

 
  "Http://www.w3.org/TR/html4/strict.dtd"> 
  
  <Html> 
      <Head> 
          <Title> Hello World Applet </ title> 
      </ Head> 
      <Body> 
          <Applet code = "width Hello.class" = "200" height = "200"> 
          </ Applet> 
      </ Body> 
  </ Html> 
 

Un applet se coloca en una Documento HTML utilizando el Elemento HTML. El applet etiqueta tiene tres atributos establecidos: code="Hello" especifica el nombre del JApplet clase y width="200" height="200" establece el ancho de p??xel y la altura del applet. Applets tambi??n pueden ser incrustados en HTML utilizando el object o embed elemento, aunque el apoyo a estos elementos por los navegadores Web es inconsistente. Sin embargo, el applet la etiqueta est?? en desuso, por lo que el object se prefiere etiqueta donde compatible.

La aplicaci??n host, normalmente un navegador Web, una instancia del Hello applet y crea un AppletContext para el applet. Una vez que el applet se ha inicializado en s??, que se a??ade a la jerarqu??a de im??genes AWT. El paintComponent() m??todo es llamado por el AWT despacho de eventos hilo cada vez que la pantalla necesita el applet para dibujarse a s?? mismo.

Servlet

La tecnolog??a Java Servlet proporciona a los desarrolladores Web con un mecanismo simple y consistente para ampliar la funcionalidad de un servidor Web y para acceder a los sistemas empresariales existentes. Los servlets son del lado del servidor Java EE componentes que generan respuestas (normalmente P??ginas HTML) a peticiones (t??picamente Peticiones HTTP) de clientes. Un servlet casi puede ser considerado como un applet que se ejecuta en el lado del servidor, sin una cara.

 // Hello.java
 import java.io. *;
 importar javax.servlet. *;
 
 public class Hola extiende GenericServlet {
     public void servicio (petici??n ServletRequest final, la respuesta ServletResponse final)
     lanza ServletException, IOException {
         . setContentType respuesta ("text / html");
         ??ltima PrintWriter pw = respuesta getWriter (.);
         try {
             . pw println ("??Hola, mundo!");
         } Finally {
             . pw close ();
         }
     }
 }

Los import declaraciones dirigen el compilador de Java para incluir todas las clases p??blicas y las interfaces de la java.io y javax.servlet paquetes en la compilaci??n.

El Hello clase extends la GenericServlet clase; la GenericServlet clase proporciona la interfaz para el servidor que transmita peticiones al servlet y el control del ciclo de vida del servlet.

El Hello clase anula el service(ServletRequest, ServletResponse) m??todo definido por el Servlet interfaz para proporcionar el c??digo para el controlador de solicitud de servicio. El service() m??todo se pasa: un ServletRequest objeto que contiene la solicitud desde el cliente y una ServletResponse objeto utilizado para crear la respuesta de devuelve al cliente. El service() m??todo declara que throws el excepciones ServletException y IOException si un problema le impide responder a la solicitud.

La setContentType(String) m??todo en el objeto respuesta est?? llamada a establecer el Tipo de contenido MIME de los datos devueltos a "text / html". La getWriter() m??todo en el que la respuesta vuelve a PrintWriter objeto que se utiliza para escribir los datos que se env??a al cliente. La println(String) m??todo se llama para escribir el "Hola, mundo!" cadena a la respuesta y luego la close() m??todo se llama para cerrar el transcriptor de impresi??n, lo que hace que los datos que se han escrito en la corriente que se devuelve al cliente.

JavaServer Pages

JavaServer Pages (JSP) son componentes de EA en el servidor Java que generan respuestas, t??picamente P??ginas HTML, a Peticiones HTTP de clientes. JSP incrustar c??digo Java en una p??gina HTML utilizando el especial delimitadores <% y %> . Un JSP se compila a un servlet Java, una aplicaci??n Java en su propio derecho, la primera vez que se accede. Despu??s de eso, el servlet generado crea la respuesta.

Aplicaci??n Swing

Swing es una interfaz gr??fica de usuario biblioteca para la plataforma Java SE. Es posible especificar un aspecto diferente a trav??s de la conectable mirar y sistema de oscilaci??n sentir. Clones de Ventanas , GTK + y Motivo son suministrados por Sun. de Apple tambi??n ofrece una Aguamarina buscar y sentir Mac OS X. Cuando implementaciones anteriores de estos ve y se siente pudieron haber sido considerados carentes, Swing en Java SE 6 aborda este problema mediante el uso de m??s nativa Widget GUI dibujo rutinas de las plataformas subyacentes.

Este ejemplo de aplicaci??n de Swing crea una sola ventana con "Hola, mundo!" en el interior:

 // Hello.java (Java SE 5)
 importar javax.swing. *;
 
 public class Hola extiende JFrame {
     Hola p??blica () {
         super ("hola");
         s??per setDefaultCloseOperation (WindowConstants EXIT_ON_CLOSE.).;
         . s??per add (new JLabel ("??Hola, mundo!"));
         paquete de super (.);
         . s??per setVisible (true);
     }
 
     static void main (String final [] args) {p??blico
         Hola nuevo ();
     }
 }

La primera import incluye todas las clases p??blicas y las interfaces de la javax.swing paquete.

El Hello clase extends la JFrame clase; el JFrame clase implementa un ventana con una barra de t??tulo y una estrecha control.

El Hello() constructor inicializa el cuadro por primera llamada al constructor de la superclase, pasando el par??metro "hello" , que se utiliza como t??tulo de la ventana. A continuaci??n, llama la setDefaultCloseOperation(int) m??todo heredado de JFrame para ajustar el funcionamiento por defecto cuando se selecciona el control estricto sobre la barra de t??tulo para WindowConstants.EXIT_ON_CLOSE - esto hace que el JFrame que deban eliminarse cuando el marco est?? cerrado (en vez de simplemente oculta), que permite que la m??quina virtual Java para salir y el programa para terminar. A continuaci??n, una JLabel es creado para la cadena "Hola, mundo!" y el add(Component) m??todo heredado de la Container superclase se llama a??adir la etiqueta para el marco. La pack() m??todo heredado de la Window superclase se llama al tama??o de la ventana y se qued?? fuera de su contenido.

El main() m??todo es llamado por la m??quina virtual de Java cuando se inicia el programa. Ella instancia un nuevo Hello marco y hace que se visualiza mediante una llamada al setVisible(boolean) m??todo heredado de la Component superclase con el par??metro booleano true . Una vez que se muestra el cuadro, que sale de la main m??todo no hace que el programa de interrumpir porque el AWT despacho de eventos hilo permanece activo hasta que todas las ventanas de nivel superior de Swing se han dispuesto.

Gen??ricos

En el a??o 2004, gen??ricos se a??adieron a el lenguaje Java, como parte de J2SE 5.0. Antes de la introducci??n de los gen??ricos, cada declaraci??n de variables ten??a que ser de un tipo espec??fico. Para las clases de contenedores, por ejemplo, este es un problema porque no hay manera f??cil de crear un recipiente que acepta s??lo tipos espec??ficos de objetos. O bien el recipiente opera en todos los subtipos de una clase o interfaz, por lo general Object , o una clase de contenedor diferente tiene que ser creado para cada clase contenidos. Los genéricos permiten la verificación de tipos en tiempo de compilación sin tener que crear un gran número de clases de contenedores, cada código casi idéntica que contiene. Además de permitir un código más eficiente, ciertas excepciones de tiempo de ejecución se convierten a compilar los tiempos de excepciones, una característica conocida como la seguridad de tipos.

Cr??tica

Las críticas dirigidas a Java incluyen la implementación de los genéricos, la velocidad, el manejo de números sin signo, la aplicación de la aritmética de punto flotante, y una historia de las vulnerabilidades de seguridad en las primarias de la ejecución de Java VMHotSpot.

El uso por empresas externas

Androidhace un uso extensivo de la tecnología relacionada con Java

Google

Google y Android, Inc. han optado por utilizar Java como un pilar clave en la creación del sistema operativo Android , una de código abierto del sistema operativo smartphone. Además del hecho de que el sistema operativo, construido en el kernel de Linux, fue escrito en gran parte en C, el SDK de Android utiliza Java para diseñar aplicaciones para la plataforma Android.

El 7 de mayo de 2012, un jurado de San Francisco encontró que si las API podrían derechos de autor, a continuación, Google había infringido los derechos de autor de Oracle por el uso de Java en los dispositivos Android. La postura de Oracle en este caso ha suscitado dudas sobre la condición jurídica de la lengua. Sin embargo, el Hon. William Haskell Alsup dictaminó el 31 de mayo de 2012, que las API no pueden ser propiedad.

Gaikai

Gaikai utiliza el navegador plug-in de Java para escuchar demos de juegos a cualquier PC. Gaikai (en japonés significa "mar abierto") es un servicio de juegos basado en la nube que permite a los usuarios jugar de gama alta para PC y consolas de juegos a través de la nube y al instante juegos de demostración y aplicaciones de una página web en cualquier ordenador o dispositivo conectado a Internet.

Las bibliotecas de clases

  • La Java Class Library son los compilados bytecodes de código fuente desarrollados por el implementador JRE para apoyar el desarrollo de aplicaciones en Java. Ejemplos de estas bibliotecas son:
    • Las bibliotecas del núcleo, que incluyen:
      • Bibliotecas Colección que implementanestructuras de datos tales comolistas,diccionarios,árboles,juegos,colas ycolas de dos extremos, opilas
      • Procesamiento de XML (de análisis, Transformación, validando) bibliotecas
      • Seguridad
      • Bibliotecas Internacionalización y localización
    • Las bibliotecas de integración, que permiten al escritor de aplicación para comunicarse con sistemas externos. Estas bibliotecas incluyen:
      • La Java Database Connectivity (JDBC)API para el acceso de base de datos
      • Jndi (JNDI) para la búsqueda y el descubrimiento
      • RMI yCORBA para el desarrollo de aplicaciones distribuidas
      • JMX para la gestión y el seguimiento de las aplicaciones
    • Bibliotecas de interfaz de usuario, que incluyen:
      • El (peso pesado, onativo)Abstract Window Toolkit (AWT), que proporcionacomponentes GUI, los medios para trazar los componentes y los medios para la gestión de eventos de los componentes
      • Los (ligero)bibliotecas de Swing, que se construyen en AWT pero proporcionan (no nativos) implementaciones del widgetry AWT
      • APIs para la captura de audio, el procesamiento y la reproducción
  • Una implementación dependiente de la plataforma de la máquina virtual de Java que es el medio por el que se ejecutan los códigos de bytes de las bibliotecas Java y aplicaciones de terceros
  • Plugins, que permiten alos applets que se ejecutan ennavegadores web
  • Java Web Start, que permite que las aplicaciones Java que se distribuye de manera eficiente alos usuarios finales a través de laInternet
  • Licencias y documentación.

Documentaci??n

Javadoc es un sistema de documentación integral, creado por Sun Microsystems, utilizado por muchos desarrolladores de Java. Se proporciona a los desarrolladores un sistema organizado para documentar su código. comentarios Javadoc tienen un asterisco adicional al principio, es decir, las etiquetas son / ** y * /, mientras que los comentarios normales multilínea en Java son compensados ??????con las etiquetas / * y * /.

Ediciones

Sun ha definido y soporta cuatro ediciones de Java dirigidos a diferentes entornos de aplicación y segmentado muchos de sus APIs para que ellos pertenecen a una de las plataformas. Las plataformas son:

  • Java Card para tarjetas inteligentes.
  • Java Platform, Micro Edition (Java ME) - orientación entornos con recursos limitados.
  • Java Platform, Standard Edition (Java SE) - orientación entornos de estaciones de trabajo.
  • Java Platform, Enterprise Edition (Java EE) - dirigido grandes entornos empresariales o de Internet distribuidos.

La clases en las API de Java se organizan en grupos separados llamados paquetes. Cada paquete contiene un conjunto de relacionados interfaces, clases y excepciones. Consulte las plataformas separadas para una descripción de los paquetes disponibles.

El conjunto de APIs es controlado por Sun Microsystems en cooperación con los demás a través del programa Java Community Process. Las empresas o personas que participan en este proceso pueden influir en el diseño y desarrollo de las API. Este proceso ha sido un tema de controversia.

Sun también ofrece una edición llamadaPersonalJava que ha sido sustituida por tarde, basadas en estándares Java ME configuración de perfil emparejamientos.

Recuperado de " http://en.wikipedia.org/w/index.php?title=Java_(programming_language)&oldid=555476562 "