¿Qué es Java?

Categoría: Electrónica Digital

Análisis:

Introducción a Java

Java es un lenguaje de programación lanzado por Sun. Es un lenguaje interpretado con reglas de sintaxis similares a C++.

Al mismo tiempo, Java es un lenguaje de programación multiplataforma. Los programas escritos en lenguaje Java se denominan "Applet" (pequeñas aplicaciones). Después de que el compilador lo compila en un archivo de clase, se almacena en la página WWW y se marca en consecuencia en el archivo HTML. Siempre que el cliente esté equipado con el software cliente Java, puede ejecutar "pequeños programas" directamente en Internet. Java es muy adecuado para redes corporativas y entornos de Internet, y ahora se ha convertido en uno de los lenguajes de programación más populares e influyentes de Internet. Java tiene muchas ventajas encomiables, como simplicidad, orientado a objetos, distribuido, interpretable, confiabilidad, seguridad, neutralidad estructural, portabilidad, alto rendimiento, subprocesos múltiples, dinámica, etc. Java ha abandonado varias funciones en C++ que hacen más daño que bien y muchas funciones raramente utilizadas. Java puede ejecutarse en cualquier microprocesador y los programas desarrollados en Java pueden transmitirse a través de la red y ejecutarse en cualquier cliente. Características de JAVA

Java es un lenguaje de programación orientado a objetos multiplataforma adecuado para entornos informáticos distribuidos. En concreto, tiene las siguientes características: simplicidad, orientado a objetos, distribuido, interpretable, confiabilidad, seguridad, independencia de plataforma, portabilidad, alto rendimiento, multihilo, dinámica, etc. A continuación, nos centraremos en las características del lenguaje Java, como orientado a objetos, independiente de la plataforma, distribuido, multiproceso, confiable, seguro, etc.

-Orientado a objetos

La orientación a objetos es en realidad una extensión natural de los modelos del mundo real. Cualquier entidad del mundo real puede verse como un objeto. Los objetos interactúan entre sí a través de mensajes. Además, cualquier entidad en el mundo real puede pertenecer a un determinado tipo de cosa, y cualquier objeto es una instancia de un determinado tipo de cosa. Si los lenguajes de programación de procedimientos tradicionales están centrados en procesos y controlados por algoritmos, entonces los lenguajes de programación orientados a objetos están centrados en objetos y controlados por mensajes. Expresado como una fórmula, el lenguaje de programación procedimental es: programa = algoritmo + datos; el lenguaje de programación orientado a objetos es: programa = objeto + mensaje.

Todos los lenguajes de programación orientados a objetos admiten tres conceptos: encapsulación, polimorfismo y herencia, y Java no es una excepción. Los objetos del mundo real tienen propiedades y comportamientos que se asignan a programas de computadora. Las propiedades representan los datos del objeto y los comportamientos representan los métodos del objeto (su función es procesar datos o interactuar con el mundo exterior). La llamada encapsulación consiste en utilizar un marco autónomo para conectar los datos y métodos del objeto para formar un todo. Se puede decir que el objeto es el medio que soporta el embalaje y la unidad básica del embalaje. El lenguaje Java tiene una fuerte encapsulación, porque Java no tiene variables completas ni funciones principales. La mayoría de los miembros de Java son objetos, con la excepción de los tipos numéricos simples, tipos de caracteres y tipos booleanos. Para estos tipos, Java también proporciona los tipos de objetos correspondientes para interoperar con otros objetos.

El polimorfismo es una variedad de expresiones. Específicamente, se puede representar mediante "una interfaz externa y múltiples métodos de implementación internos". Por ejemplo, una pila en una computadora puede almacenar datos en varios formatos, incluidos números enteros, coma flotante o caracteres. No importa qué tipo de datos se almacenen, la implementación del algoritmo de la pila es la misma. Para diferentes tipos de datos, los programadores no necesitan seleccionarlos manualmente. Solo necesitan usar nombres de interfaz unificados y el sistema puede seleccionarlos automáticamente. La sobrecarga de operadores siempre se ha considerado una excelente encarnación del polimorfismo, pero Java finalmente la eliminó porque haría que el programa fuera difícil de entender.

Herencia significa que un objeto utiliza directamente las propiedades y métodos de otro objeto. De hecho, muchas entidades que encontramos tienen importancia hereditaria. Por ejemplo, si un automóvil se considera una entidad, se puede dividir en varias subentidades, como camiones y autobuses. Todas estas entidades infantiles tienen las características de un automóvil, por lo que el automóvil es su "padre" y estas entidades infantiles son sus "hijos". Java proporciona a los usuarios una serie de clases. Las clases Java tienen una estructura jerárquica y las subclases pueden heredar las propiedades y métodos de las clases principales. A diferencia de otros lenguajes de programación orientados a objetos, Java sólo admite herencia única.

Java es un lenguaje independiente de la plataforma, lo que significa que las aplicaciones escritas en Java pueden ejecutarse en diferentes plataformas de software y hardware sin modificaciones. Hay dos tipos de independencia de plataforma: nivel de código fuente y nivel de código objeto. C y C++ tienen un cierto grado de independencia de plataforma a nivel de código fuente, lo que significa que las aplicaciones escritas en C o C++ no necesitan modificarse para ejecutarse en diferentes plataformas y solo necesitan recompilarse.

Java se basa principalmente en la máquina virtual Java (JVM) para lograr la independencia de la plataforma a nivel del código de destino. JVM es una máquina abstracta, adjunta a un sistema operativo específico, con un conjunto de instrucciones de máquina virtual, su propia pila, conjunto de registros, etc. Pero JVM generalmente se implementa en software en lugar de hardware. (Actualmente, SUN Systems ha diseñado e implementado un chip Java, que se utiliza principalmente en computadoras en red NC. Además, la aparición de chips Java facilitará la integración de Java en los electrodomésticos). JVM es la base independiente de la plataforma de Java.

En la JVM, hay un intérprete de Java para interpretar programas compilados por el compilador de Java. Después de escribir el software, el programador de Java compila el programa fuente de Java en un código de bytes JVM a través del compilador de Java. Cualquier máquina equipada con un intérprete de Java puede ejecutar este programa, independientemente de la plataforma en la que se genere el código de bytes (el proceso se muestra en la Figura 1). Además, Java utiliza tipos de datos basados ​​en los estándares IEEE. La JVM garantiza la coherencia de los tipos de datos y la independencia de la plataforma de Java.

La independencia de plataforma de Java tiene una importancia de gran alcance. En primer lugar, hace realidad el sueño de los programadores (desarrollar software para ejecutarlo en cualquier plataforma a la vez), lo que acelerará y promoverá enormemente el desarrollo de productos de software. En segundo lugar, la independencia de plataforma de Java satisface la idea de "computadoras en red". Si una gran cantidad de software de aplicación de uso común (como software de procesamiento de textos, etc.) se reescribe en Java y se coloca en un servidor de Internet, los usuarios con NC no necesitarán ocupar mucho espacio para instalar el software. Necesita un intérprete de Java Siempre que necesite utilizar un determinado software de aplicación, puede descargar el código de bytes del software y enviar los resultados de la ejecución al servidor. En la actualidad, varias empresas han comenzado a utilizar este nuevo modelo informático para construir sus propios sistemas de información empresarial.

-Distribuido

Java soporta el modelo informático cliente/servidor WWW, por lo que ambas distribuciones son compatibles. Para el primero, Java proporciona un objeto llamado URL. Con este objeto, puede abrir y acceder a objetos con la misma dirección URL como si se hubiera accedido a ellos en el sistema de archivos local. Para este último, el subprograma de Java se puede descargar desde el servidor al cliente, es decir, parte del cálculo se completa en el cliente, lo que mejora la eficiencia de ejecución del sistema.

Java proporciona un conjunto completo de bibliotecas de clases de red. Los desarrolladores pueden utilizar estas bibliotecas de clases para diseñar programas de red para implementar fácilmente las funciones distribuidas de Java.

La distribución incluye la distribución de datos y la distribución de operaciones. La distribución de datos significa que los datos se pueden distribuir en diferentes hosts de la red, y la distribución de operaciones significa que un cálculo se distribuye en diferentes hosts para su procesamiento.

-Fiabilidad y seguridad

Java fue diseñado originalmente para productos electrónicos de consumo, por lo que tiene altos requisitos de confiabilidad. Aunque Java se originó a partir de C++, elimina muchos factores poco confiables de C++ y puede evitar muchos errores de programación. En primer lugar, Java es un lenguaje fuertemente tipado que requiere declaraciones de métodos explícitas para garantizar que el compilador pueda detectar errores de llamada a métodos y garantizar que el programa sea más confiable; en segundo lugar, Java no admite punteros para evitar el acceso ilegal a la memoria; Colección automática de celdas de Java Previene problemas causados ​​por la asignación dinámica de memoria, como la pérdida de memoria; en cuarto lugar, cuando se ejecuta el intérprete de Java, se puede encontrar que el acceso a matrices y cadenas está fuera de los límites. Finalmente, Java proporciona un mecanismo de manejo de excepciones para que los programadores puedan colocar un conjunto de códigos de error en un solo lugar, lo que puede simplificar las tareas de manejo de errores y facilitar la recuperación.

Debido a que Java se utiliza principalmente para el desarrollo de aplicaciones de red, tiene mayores requisitos de seguridad. Sin protección de seguridad, es muy peligroso para los usuarios descargar programas de Internet y ejecutarlos. Java utiliza su propio mecanismo de seguridad para evitar la generación de programas de virus y la amenaza de descargar programas al sistema local. Cuando el código de bytes de Java ingresa al intérprete, primero debe ser inspeccionado por un verificador de código de bytes. Luego, el intérprete de Java determinará la distribución de la memoria de las clases en el programa. Luego, el cargador de clases es responsable de cargar las clases en la red en áreas de memoria separadas para evitar interferencias e interrupciones entre aplicaciones. Finalmente, los usuarios del cliente pueden restringir las clases cargadas desde la red para que solo puedan acceder a ciertos sistemas de archivos. La combinación de los mecanismos anteriores convierte a Java en un lenguaje de programación seguro.

-Multi-threading

Los threads son un nuevo concepto del sistema operativo, también llamados procesos ligeros. Son unidades más pequeñas que se pueden ejecutar de forma concurrente que los procesos tradicionales. C y C++ adoptan una arquitectura de subproceso único y Java proporciona soporte para subprocesos múltiples.

Java admite subprocesos múltiples de dos maneras. Por un lado, el entorno Java en sí es multiproceso. Varios subprocesos del sistema son responsables de las operaciones necesarias a nivel del sistema, como el reciclaje de unidades inútiles y el mantenimiento del sistema. Por otro lado, el lenguaje Java tiene controles de subprocesos múltiples integrados, que pueden simplificar enormemente el desarrollo de aplicaciones de subprocesos múltiples. Java proporciona un subproceso de clase, que es responsable de iniciar operaciones, finalizar subprocesos y verificar el estado de los subprocesos. Los subprocesos de Java también incluyen un conjunto de primitivas de sincronización. Estas primitivas son responsables del control de concurrencia de subprocesos. Al utilizar la interfaz de programación multiproceso de Java, los desarrolladores pueden escribir fácilmente aplicaciones que admitan subprocesos múltiples y mejoren la eficiencia de ejecución del programa. Cabe señalar que el soporte de subprocesos múltiples de Java está limitado hasta cierto punto por la plataforma de soporte de tiempo de ejecución. Por ejemplo, si el sistema operativo en sí no admite subprocesos múltiples, es posible que las funciones de subprocesos múltiples de Java no se expresen.