Java

From FdIwiki ELP
Jump to: navigation, search

Introducción

Java es un lenguaje de programación ideado en 1991 por Sun Microsystem. Su nombre y logo se deben a que se ideó en una cafetería llamada 'Java', aunque hay otras versiones del origen de su nombre. A fecha de hoy, el propietario de la plataforma es uno de los grandes actores de la industria TIC.

Se trata de un lenguaje orientado a objetos y concurrente. Su sintaxis está basada en la de C++, Aunque se le ha dotado de simplicidad que favorece la programación.

Una característica fundamental es que es "portable", es decir, puede ser usado en cualquier arquitectura, gracias a su máquina virtual. Esto fue resaltado en su lema "Write Once, Run Anywhere", es decir, escríbelo una, y ejecútalo en todas partes.

En sus principios, era destinado a funcionar en Lavadoras y otros electrodomésticos, pero ahora mismo su alcance es mayor.

Características

Sus características más importantes son las siguientes:

  • Simple: elimina las características problemáticas de otros lenguajes(C++).
  • Orientado a Objetos : paradigma de programación por la cual se deja de ser una programación modular, y se puede dividir la aplicación en partes simples las cuales pueden ser reemplazadas.
  • Tipificación estáticamente: implica que las variables deben ser tipificadas en su declaración e inicialización, pero el contenido de dicha variable, puede cambiar de tipo.
  • Interpretado: El compilador traduce cada fichero fuente de clases a ByteCode, el cual puede ser interpretado por todas las máquinas.
  • Robusto: las aplicaciones creadas dispondrán de una fortaleza frente a fallos.
  • Seguro: se proporcionan herramientas para proteger una aplicación.
  • Multihilo: permite correr varios hilos de ejecución a la vez.
  • Recolector de basura: borra objetos no referenciados automáticamente.
  • Portable: puede ser usado en cualquier arquitectura y sus operaciones aritméticas funcionaran igual en todas las máquinas.


Además podemos destacar :

  • Herencia, permite ahorrar código basado en la repetición, ya que comparte automáticamente métodos y datos entre clases, subclases y objetos.
  • Interfaces, establecen relaciones entre clases que no están relacionadas y obligan a que estas usen los mismos métodos.
  • Polimorfismo, que significa que una variable puede tomar distintos tipos en tiempo de ejecución.
  • Sobrecarga, permite sobrescribir funciones, que se diferencian por el número y tipos de argumentos que tengan las funciones.

La Licencia de Java es cuanto menos interesante.


Filosofía

El lenguaje Java se creó con cinco objetivos principales:

  1. Debería usar el paradigma de la programación orientada a objetos.
  2. Debería permitir la ejecución de un mismo programa en múltiples sistemas operativos.
  3. Debería incluir por defecto soporte para trabajo en red.
  4. Debería diseñarse para ejecutar código en sistemas remotos de forma segura.
  5. Debería ser fácil de usar y tomar lo mejor de otros lenguajes orientados a objetos, como C++.


Orientado a objetos

La primera característica, orientado a objetos (“OO”), se refiere a un método de programación y al diseño del lenguaje. Aunque hay muchas interpretaciones para OO, una primera idea es diseñar el software de forma que los distintos tipos de datos que usen estén unidos a sus operaciones. Así, los datos y el código (funciones o métodos) se combinan en entidades llamadas objetos. Un objeto puede verse como un paquete que contiene el “comportamiento” (el código) y el “estado” (datos). El principio es separar aquello que cambia de las cosas que permanecen inalterables. Frecuentemente, cambiar una estructura de datos implica un cambio en el código que opera sobre los mismos, o viceversa. Esta separación en objetos coherentes e independientes ofrece una base más estable para el diseño de un sistema software. El objetivo es hacer que grandes proyectos sean fáciles de gestionar y manejar, mejorando como consecuencia su calidad y reduciendo el número de proyectos fallidos.

Otra de las grandes promesas de la programación orientada a objetos es la creación de entidades más genéricas (objetos) que permitan la reutilización del software entre proyectos, una de las premisas fundamentales de la Ingeniería del Software. Un objeto genérico “cliente”, por ejemplo, debería en teoría tener el mismo conjunto de comportamiento en diferentes proyectos, sobre todo cuando estos coinciden en cierta medida, algo que suele suceder en las grandes organizaciones. En este sentido, los objetos podrían verse como piezas reutilizables que pueden emplearse en múltiples proyectos distintos, posibilitando así a la industria del software a construir proyectos de envergadura empleando componentes ya existentes y de comprobada calidad; conduciendo esto finalmente a una reducción drástica del tiempo de desarrollo. Podemos usar como ejemplo de objeto el aluminio. Una vez definidos datos (peso, maleabilidad, etc.), y su “comportamiento” (soldar dos piezas, etc.), el objeto “aluminio” puede ser reutilizado en el campo de la construcción, del automóvil, de la aviación, etc.

La reutilización del software ha experimentado resultados dispares, encontrando dos dificultades principales: el diseño de objetos realmente genéricos es pobremente comprendido, y falta una metodología para la amplia comunicación de oportunidades de reutilización. Algunas comunidades de “código abierto” (open source) quieren ayudar en este problema dando medios a los desarrolladores para diseminar la información sobre el uso y versatilidad de objetos reutilizables y bibliotecas de objetos.

Ejemplo en java

Hola mundo en java:


public class HolaMundo{

   public static void main(String args[]){
       system.out.println("Hola Mundo.");
   }

}



Java