.NET

 

.NET

CONCEPTOS:

·        .NET “ un proyecto de Microsoft para crear una nueva plataforma de desarrollo de software con énfasis en transparencia de redes, con independencia de plataforma de hardware y que permita un rápido desarrollo de aplicaciones. Basado en ella, la empresa intenta desarrollar una estrategia horizontal que integre todos sus productos, desde el sistema operativo hasta las herramientas de mercado”.[1]

 

·        .NET “podría considerarse una respuesta de Microsoft al creciente mercado de los negocios en entornos Web, como competencia a la plataforma Java de Sun Microsystems. Su propuesta es ofrecer una manera rápida y económica, a la vez que segura y robusta, de desarrollar aplicaciones –o como la misma plataforma las denomina, soluciones– permitiendo una integración más rápida y ágil entre empresas y un acceso más simple y universal a todo tipo de información desde cualquier tipo de dispositivo”.[1]

 

·        Microsoft.NET “es el conjunto de nuevas tecnologías en las que Microsoft ha estado trabajando durante los últimos años con el objetivo de obtener una plataforma sencilla y potente para distribuir el software en forma de servicios que puedan ser suministrados remotamente y que puedan comunicarse y combinarse unos con otros de manera totalmente independiente de la plataforma, lenguaje de programación y modelo de componentes con los que hayan sido desarrollados. Ésta es la llamada plataforma .NET, y a los servicios antes comentados se les denomina servicios Web”.[2]

 

CARACTERISTICAS:

Es el encargado de proveer lo que se llama código administrado, es decir, un entorno que provee servicios automáticos al código que se ejecuta. Los servicios son variados:

  • Cargador de clases: permite cargar en memoria las clases.
  • Compilador MSIL a nativo: transforma código intermedio de alto nivel independiente del hardware que lo ejecuta a código de máquina propio del dispositivo que lo ejecuta.
  • Administrador de código: coordina toda la operación de los distintos subsistemas del Common Language Runtime.
  • Recolector de basura: elimina de memoria objetos no utilizados.
  • Motor de seguridad: administra la seguridad del código que se ejecuta.
  • Motor de depuración: permite hacer un seguimiento de la ejecución del código aún cuando se utilicen lenguajes distintos.
  • Verificador de tipos: controla que las variables de la aplicación usen el área de memoria que tienen asignado.
  • Administrador de excepciones: maneja los errores que se producen durante la ejecución del código.

·        Para crear aplicaciones para la plataforma .NET, tanto servicios Web como aplicaciones tradicionales de software conocido como .NET Framework SDK, que incluye las herramientas necesarias tanto para su desarrollo como para su distribución y ejecución y Visual Studio.NET, que permite hacer todo la anterior desde una interfaz visual basada en ventanas. Ambas herramientas puede descargarse gratuitamente desde http://www.msdn.microsoft.com/net, aunque la última sólo está disponible para subscriptores MSDN Universal (los no subscriptores pueden pedirlo desde dicha dirección y se les enviará gratis por correo ordinario (aplicaciones de consola, aplicaciones de ventanas, servicios de Windows NT, etc.), Microsoft ha publicado el denominado kit de desarrollo).[2]

 

Componentes:

Los principales componentes del marco de trabajo son:

  • El conjunto de lenguajes de programación
  • La Biblioteca de Clases Base o BCL
  • El Entorno Común de Ejecución para Lenguajes o CLR por sus siglas en inglés.

Debido a la publicación de la norma para la infraestructura común de lenguajes (CLI por sus siglas en inglés), el desarrollo de lenguajes se facilita, por lo que el marco de trabajo .NET soporta ya más de 20 lenguajes de programación y es posible desarrollar cualquiera de los tipos de aplicaciones soportados en la plataforma con cualquiera de ellos, lo que elimina las diferencias que existían entre lo que era posible hacer con uno u otro lenguaje.

Common Language Runtime (CLR)

El Common Language Runtime (CLR) es el núcleo de la plataforma .NET. Es el motor encargado de gestionar la ejecución de las aplicaciones para ella desarrolladas y a las que ofrece numerosos servicios que simplifican su desarrollo y favorecen su fiabilidad y seguridad.

Microsoft Intermediate Language (MSIL)

Todos los compiladores que generan código para la plataforma .NET no generan código máquina para CPUs x86 ni para ningún otro tipo de CPU concreta, sino que generan código escrito en el lenguaje intermedio conocido como Microsoft Intermediate Lenguage (MSIL) El CLR da a las aplicaciones las sensación de que se están ejecutando sobre una máquina virtual, y precisamente MSIL es el código máquina de esa máquina virtual. Es decir, MSIL es el único código que es capaz de interpretar el CLR, y por tanto cuando se dice que un compilador genera código para la plataforma .NET lo que se está diciendo es que genera MSIL.

Metadatos

En la plataforma .NET se distinguen dos tipos de módulos de código compilado: ejecutables (extensión .exe) y librerías de enlace dinámico (extensión .dll generalmente) Ambos son ficheros que contienen definiciones de tipos de datos, y la diferencia entre ellos es que sólo los primeros disponen de un método especial que sirve de punto de entrada a partir del que es posible ejecutar el código que contienen haciendo una llamada desde la línea de comandos del sistema operativo. A ambos tipos de módulos se les suele llamar ejecutables portables (PE), ya que su código puede ejecutarse en cualquiera de los diferentes sistemas operativos de la familia Windows para los que existe alguna versión del CLR.

El contenido de un módulo no sólo MSIL, sino que también consta de otras dos áreas muy importantes: la cabecera de CLR y los metadatos:

La cabecera de CLR es un pequeño bloque de información que indica que se trata de un módulo gestionado e indica es la versión del CLR que necesita, cuál es su firma digital, cuál es su punto de entrada (si es un ejecutable), etc.

Los metadatos son un conjunto de datos organizados en forma de tablas que almacenan información sobre los tipos definidos en el módulo, los miembros de éstos y sobre cuáles son los tipos externos al módulo a los que se les referencia en el módulo.

 

El futuro de .NET:

A largo plazo Microsoft pretende reemplazar el API Win32 o Windows API con la plataforma .NET. Esto debido a que el API Win32 o Windows API fue desarrollada sobre la marcha, careciendo de documentación detallada, uniformidad y cohesión entre sus distintos componentes, provocando múltiples problemas en el desarrollo de aplicaciones para el sistema operativo Windows. La plataforma .NET pretende solventar la mayoría de estos problemas proveyendo un conjunto único y expandible con facilidad, de bloques interconectados, diseñados de forma uniforme y bien documentados, que permitan a los desarrolladores tener a mano todo lo que necesitan para producir aplicaciones sólidas.

Debido a las ventajas que la disponibilidad de una plataforma de este tipo puede darle a las empresas de tecnología y al público en general, muchas otras empresas e instituciones se han unido a Microsoft en el desarrollo y fortalecimiento de la plataforma .NET, ya sea por medio de la implementación de la plataforma para otros sistemas operativos aparte de Windows (Proyecto Mono de Ximian/Novell para Linux/MacOS X/BSD/Solaris), el desarrollo de lenguajes de programación adicionales para la plataforma (ANSI C de la Universidad de Princeton, NetCOBOL de Fujitsu, Delphi de Borland, PowerBuilder de Sybase entre otros) o la creación de bloques adicionales para la plataforma (como controles, componentes y bibliotecas de clases adicionales); siendo algunas de ellas software libre, distribuibles bajo la licencia GPL.

Con esta plataforma Microsoft incursiona de lleno en el campo de los Servicios Web y establece el XML como norma en el transporte de información en sus productos y lo promociona como tal en los sistemas desarrollados utilizando sus herramientas.

 

 

INFOGRAFIA  DE .NET

 

http://es.wikipedia.org/wiki/.NET_de_Microsoft

 

http://www.programacion.net/tutorial/csharp/2/

 

 

 

 

 

 

 

 

 

 

 

Caracteristicas de POO

 
  

   

*      Encapsulación:

Significa que en una clase se declaran los tipos de datos y el medio de  manipularlos (sus métodos)”. 2

En el ejemplo anterior, el objeto silla encapsula datos (los valores de los atributos que encapsulan la silla), operaciones, constantes y otra información relacionada,” es decir, el encapsulamiento significa que toda esta información se encuentra empaquetada bajo un nombre y puede reutilizarse como una especificación o componente de programa”.[4]

 

*     Herencia:

 

“La herencia supone crear clases derivadas de otras existentes, que heredan sus tipos y métodos y pueden contener otros nuevos. Si una nueva clase hereda propiedades de más de una antecesora, se denomina herencia múltiple; no todos los lenguajes orientados a objetos lo permiten”.2

También, “permite el acceso automático de la información contenida en otras clases”1, por ello las clases deben estar organizada jerárquicamente.

En el ejemplo el objeto silla hereda los atributos y operaciones de la clase.

  

*     Polimorfismo:

 

Es una característica que reduce en gran medida el esfuerzo necesario para extender un sistema OO. “Facilita la programación de funciones o procedimientos que ejecutarán acciones que dependerán de los objetos sobre los que se apliquen; por ejemplo, aumentar el tamaño de un objeto, independientemente de su forma”.[2]

También, Hace referencia a los métodos heredados de la superclase y que son ejecutados por las subclases de diferente manera.

 

 *     Abstracción

Por medio de la abstracción conseguimos no detenernos en los detalles concretos de las cosas que no interesen en cada momento, si no generalizar y centrarse en los aspectos que permitan tener una visión global del problema. Por ejemplo, el estudio de un ordenador podemos realizarlo a nivel de funcionamiento de sus circuitos electrónicos, en términos de corriente, tensión, o nivel de transferencia entre registros, centrándose asi en el flujo de información entre las unidades que lo componen (memoria, unidad aritmética, unidad de control, entre otros, sin importarnos el comportamiento de los circuitos electrónicos que componen estas unidades”.[1]

Infografia de POO

INFOGRAFIA

1.  Libro: Java 2, Curso de Programación

Autor: Javier Ceballos Sierra

Edición: Segunda, RA_MA, Madrid España.

2.  Microsoft ® Encarta ® 2008. © 1993-2007 Microsoft Corporation. Reservados todos los derechos.

3. http://es.wikipedia.org/wiki/Lenguaje_de_programaci%C3%B3n_Java

4.  Libro : Ingeniería de Software, Un enfoque práctico

Autor: Roger S. Pressman

Edición: Interamericana de España 2003 Quinta Edición

Elementos de POO

 

*      Clases

“Es un concepto OO para exhibir diferentes procedimientos que se requieren para describir el contenido y comportamiento de alguna entidad del mundo real. También se puede definir como una descripción generalizada (por ejemplo una plantilla, un patrón o un prototipo) que describe una colección de datos similares”.[4]

  Puede existir una jerarquía de clases, como por ejemplo esta situación del dominio real:

 

*      Objetos

“Un objeto puede verse como un paquete que contiene el “comportamiento” (el código) y el “estado” (datos). 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”.[3]

“un objeto es una instancia de una clase, que se puede usar como una variable en un programa; es decir, la creación de una instancia de una clase se corresponde con la declaración de una variable en la programación tradicional, pero refiriéndose a objetos”.2 

     Como en el gráfico anterior se observa un ejemplo de un objeto, es un miembro o instancia de una clase más grande de objetos que se llama Mobiliario.

ç*      Atributos

Describen la clase o el objeto de alguna manera, son características como en el ejemplo (costos, dimensiones, peso, localización y color).

Los valores asignados a los atributos de un objeto hacen a ese objeto ser único. [4]

 

*      Mensajes

Los mensajes son el medio a través del cual interactúan los objetos, es decir un mensaje estimula la ocurrencia de cierto comportamiento en el objeto receptor. El comportamiento se realiza cuando se ejecuta una operación.[4]

 

 *      Operaciones, métodos o servicios

Son las acciones que se aplican para cambiar los atributos de el objeto o como en el ejemplo la silla.

“Un objeto encapsula datos (representados como una colección de atributos) y los algoritmos que procesan esos datos. Estos algoritmos son llamados operaciones, métodos o servicios”.[4]

“Siempre que un objeto es estimulado por un mensaje, inicia algún comportamiento ejecutando una operación”.[4]

Retomando el ejemplo anterior los métodos (Operaciones o servicios), modificaran uno o más atributos del objeto (mover, pesar, entre otros)

 

 

 

 

 

 

 

 

 
 
 
 
 
 
 
 

 

 

 

 

 

 

 

 

 

 

  

 

 

 

 

 

 

 

 

 

 

 

 

¿Que es Programación Orientada a Objetos?

 

PROGRAMACIÓN ORIENTADA A OBJETOS

CONCEPTO:

*      “Es un modelo de programación que utiliza objetos, ligados mediante mensajes, para la solución de problemas. Puede considerarse como una extensión natural de la programación estructurada de potenciar conceptos de modularidad y reutilización del código”. [1]

*      “Es un método de programación en el que un programa se contempla como un conjunto de objetos limitados que, a su vez, son colecciones independientes de estructuras de datos y rutinas que interactúan con otros objetos, o que dan acceso para modificar el contenido de un dato o propiedad del propio objeto. También se identifica con las siglas POO y OOP (del inglés Object Oriented Programming)”.[2]

*      En cuanto a la funcionalidad y la metodología interna, la programación orientada a objetos se fundamenta en la encapsulación, la herencia y el polimorfismo.

*      “Aunque hay muchas interpretaciones para OO, una primera idea es diseñar el software de forma que los distintos tipos de datos que use estén unidos a sus operaciones. Así, los datos y el código (funciones o métodos) se combinan en entidades llamadas objetos. [3]

*      Una de las primeras cosas a tener en cuenta a la hora de construir un sistema OO es cómo clasificar los objetos o manipular en dicho sistema.

 

 

Infografia de Java

INFOGRAFIA

1. http://es.wikipedia.org/wiki/Lenguaje_de_programaci%C3%B3n_Java

2. Libro: Java 2, Curso de Programación
Autor: Javier Ceballos Sierra

3. http://java.com/es/download/whatis_java.jsp

4. Microsoft ® Encarta ® 2008. © 1993-2007 Microsoft Corporation. Reservados todos los derechos.

5. http://www.desarrolloweb.com/articulos/497.php

6. http://www.monografias.com/trabajos/java/java.shtml

7. http://www.javahispano.org/contenidos/es/que_es_java/

8. http://www.softonic.com/windows/entornos-de-desarrollo.

9. http://pjsml.50megs.com/java/entorno.html

10. http://prog-asm.blogspot.com/2007/06/entornos-de-java.html

11. http://www.alegsa.com.ar/Dic/jbuilder.php

12. www.uv.es/~jgutierr/MySQL_Java/TutorialEclipse.pdf

IDES

 

IDES

“Los IDEs (Integrated Development Environment), tal y como su nombre indica, son entornos de desarrollo integrados. En un mismo programa es posible escribir el código Java, compilarlo y ejecutarlo sin tener que cambiar de aplicación.

Estos entornos integrados permiten desarrollar las aplicaciones de forma mucho más rápida, incorporando en muchos casos librerías con componentes ya desarrollados, los cuales se incorporan al proyecto o programa.

Entre los gratuitos más conocidos, se puede nombrar a la aplicación JCreator y JBuilder (Personal Edition), la primera para sistemas operativos Windows y la segunda para Windows y Linux.  Además, en el sitio web de JCreator, se encuentra el link para bajar el J2SDK, necesario para compilar y ejecutar los programas en lenguaje java”.

·         Eclipse «es una plataforma de desarrollo open source basada en Java. Es un desarrollo de IBM cuyo código fuente fue puesto a disposición de los usuarios. En sí mismo Eclipse es un marco y un conjunto de servicios para construir un entorno de desarrollo a partir de componentes conectados (plug-in)».12

·         Hay plug-ins para el desarrollo de Java (JDT Java Development Tools) así como para el desarrollo en C/C++, COBOL, etc. La versión instalada en el laboratorio incluye el plug-in JDT. 

·         Jbuilder de Borland: “Entorno de desarrollo (IDE) para el lenguaje de programación Java de Borland. Fue creado en1995. Actualmente con el nombre de Borland JBuilder 2006, posee tres ediciones: la Enterprise, para aplicaciones J2EE, Web Services y struts. La Developer, para el desarrollo completo de aplicaciones Java, y la Foundation, con capacidades básicas para iniciarse en Java”.11

·         NetBeans es una aplicación de código abierto («open source») diseñada para el desarrollo de aplicaciones fácilmente portables entre las distintas plataformas, haciendo uso de la tecnología Java. Dispone de soporte para crear interfaces gráficas de forma visual, desarrollo de aplicaciones web, control de versiones, colaboración entre varias personas, creación de aplicaciones compatibles con teléfonos móviles, resaltado de sintaxis y por si fuera poco sus funcionalidades son ampliables mediante la instalación de packs.  En NetBeans encontrarás la solución más completa para programar en Java.

 

 

Java 2

 

JAVA 2

 

“Java se suele ver en lo que respecta a las tres plataformas como: Standard Edition (SE) Enterprise Edition (EE), y Micro Edition (ME). Cada una describe la combinación de una versión del lenguaje, un conjunto de librerías estándar, y la máquina virtual (mira más bajo) para ejecutar el código. EE es una ampliación de SE—cualquier programa EE puede asumir que existen las librerías de SE–y el uso del lenguaje en EE es idéntico que en SE.

A causa de las limitaciones de los aparatos pequeños como teléfonos o cajas set-top, Java Micro Edition difiere significativamente de sus “hermanos”. No es un subconjunto de SE (como SE lo es de EE), porque algunas de sus librerías existen sólo en Micro Edition. Además, ME elimina algunas características del lenguaje, como el tipo primitivo float y la clase Float, reflejando las limitaciones de las plataformas en las que se ejecuta. Necesita herramientas diferentes a SE y EE, y como las grandes diferencias en los aparatos hacen que la verdadera portabilidad del código este un poco más lejana en el espacio micro, muchos programadores de Java ven ME como un completo desconocido”.7

 

1: J2SEE

Desde J2SE 1.4, la evolución del lenguaje ha sido regulada por el JCP (Java Community Process), que usa Java Specification Requests (JSRs) para proponer y especificar cambios en la plataforma Java. El lenguaje en sí mismo está especificado en la Java Language Specification (JLS), o Especificación del Lenguaje Java. Los cambios en los JLS son gestionados en JSR 901 el nombre «J2SE» (Java 2 Platform, Standard Edition), reemplazó a JDK para distinguir la plataforma base de J2EE. 1

“Es la versión Standard. Permite hacer aplicaciones normales de ordenador. Si estamos empezando, posiblemente es la que debemos bajarnos”.10

2: J2EE

 Java Platform, Enterprise Edition o Java EE (anteriormente conocido como Java 2 Platform, Enterprise Edition o J2EE hasta la versión 1.4), es una plataforma de programación—parte de la Plataforma Java—para desarrollar y ejecutar software de aplicaciones en Lenguaje de programación Java con arquitectura de N niveles distribuida, basándose ampliamente en componentes de software modulares ejecutándose sobre un servidor de aplicaciones. La plataforma Java EE está definida por una especificación. Similar a otras especificaciones del Java Community Process, Java EE es también considerada informalmente como un estándar debido a que los suministradores deben cumplir ciertos requisitos de conformidad para declarar que sus productos son conformes a Java EE; no obstante sin un estándar de ISO o ECMA”.1

Es la versión Enterprise. Sirve para hacer aplicaciones web. Si queremos esta, debemos bajarnos también el J2SE”.10

3: J2ME

La plataforma Java 2, Micro Edition, o Java ME (anteriormente J2ME), es una colección de APIs en Java orientadas a productos de consumo como PDAs, teléfonos móviles o electrodomésticos. “Sirve para móviles y similares pequeños que admitan java”.10

Java ME se ha convertido en una buena opción para crear juegos en teléfonos móviles debido a que se puede emular en un PC durante la fase de desarrollo y luego subirlos fácilmente al teléfono. Al utilizar tecnologías Java el desarrollo de aplicaciones o videojuegos con estas APIs resulta bastante económico de portar a otros dispositivos”.1

 

 

 

 

Proceso de Compilación

 

 

El código fuente Java se «compila» a un código de bytes de alto nivel independiente de la máquina. Este código (byte-codes) está diseñado para ejecutarse en una máquina hipotética que es implementada por un sistema run-time, que sí es dependiente de la máquina.

En algún punto, “el código Java ha de convertirse en código nativo ejecutable en la plataforma. Esto requiere normalmente dos pasos: el programador compila su código a Java bytecode, y después la máquina virtual de Java (JVM) lo convierte a código nativo para la plataforma host. Este ultimo paso está optimizado para ser interpretado—cogiendo cada instrucción de la JVM y convirtiéndola al momento en una o más instrucciones nativas. Después, los compiladores just-in-time (JIT) convertían el bytecode en código nativo cuando el programa empezaba su ejecución. Actualmente, hay diferentes enfoques. El compilador HotSpot de Sun empieza interpretando y perfilando el código en tiempo de ejecución, compilando y ejecutando las partes más críticas para el funcionamiento del programa. El «interprete de modo mixto» de IBM’s  JVMs funciona de forma similar. Estos enfoques evitan la optimización inicial supuestamente hecha de golpe por los compiladores JIT para todo el programa, lo que significa que la mejora en el rendimiento llega después de un tiempo, cuando las secciones de código críticas son localizadas y optimizadas. Los procesos que se ejecutan durante bastante tiempo en los servidores se benefician de este enfoque, aunque las programas de los clientes no tanto”.7

Como es el caso de los tipos primitivos, el ciclo de compilación de dos pasos de Java empieza a parecerse a una optimización prematura de algunos tipos críticos. Si estas dispuesto a esperar para compilar el Java Bytecode a código nativo, se preguntaron, ¿porque no librar al programador de un paso interpretando el código Java en vez del Java Bytecode? Como Tate señala en Beyond Java, «Java no es el lenguaje más simple. Ni le gusta hacer iteraciones cortas… Otros lenguajes te permiten moverte de un cambio al otro sin el engorroso ciclo de compilar/utilizar.»

 

 

 

 

 

Caracteristicas de Java

CARACTERISTICAS

·    Multiplataforma: Java es un lenguaje que es independiente de la plataforma, tanto el código fuente como en binario. Esto quiere decir que el código producido por el compilador Java puede transportarse a cualquier plataforma (Intel, Sparc, Motorola), que tenga instalada la maquina virtual de java. “La independencia de plataforma es una de las razones por las que Java es interesante para Internet, ya que muchas personas deben tener acceso con ordenadores distintos. Pero no se queda ahí, Java está desarrollándose incluso para distintos tipos de dispositivos además del ordenador como móviles, agendas y en general para cualquier cosa que se le ocurra a la industria“. 5

 

·    Simple: “Java ofrece toda la funcionalidad de un lenguaje potente, pero sin las características menos usadas y más confusas de éstos. C++ es un lenguaje que adolece de falta de seguridad, pero C y C++ son lenguajes más difundidos, por ello Java se diseñó para ser parecido a C++ y así facilitar un rápido y fácil aprendizaje.”6

 

·    Potente

 

·    Java también simplifica el uso de protocolos nuevos o actualizados. Si su sistema ejecuta una aplicación Java sobre la red y encuentra una pieza de la aplicación que no sabe manejar, tal como se ha explicado en párrafos anteriores, Java es capaz de traer automáticamente cualquiera de esas piezas que el sistema necesita para funcionar.6

·       Es una ventaja significativa para los desarrolladores de software, pues antes tenían que hacer un programa para cada sistema operativo, por ejemplo Windows, Linux, Apple, etc. Esto lo consigue porque se ha creado una Máquina de Java para cada sistema que hace de puente entre el sistema operativo y el programa de Java y posibilita que este último se entienda perfectamente. “No debes volver a escribir el código si quieres ejecutar el programa en otra máquina. Un solo código funciona para todos los browsers compatibles con Java o donde se tenga una Máquina Virtual de Java (Mac’s, PC’s, Sun’s, etc). “ 5

·    Portable: Más allá de la portabilidad básica por ser de arquitectura independiente, Java implementa otros estándares de portabilidad para facilitar el desarrollo. “Los enteros son siempre enteros y además, enteros de 32 bits en complemento a 2. Además, Java construye sus interfaces de usuario a través de un sistema abstracto de ventanas de forma que las ventanas puedan ser implantadas en entornos Unix, Pc o Mac”.6

·    Es un lenguaje  orientado a objetos (“OO”), se refiere a un método de programación y al diseño del lenguaje.

·     Distribuido: Proporciona las librerías y herramientas para que los programas puedan ser        distribuidos, es decir, que se corran en varias máquinas, interactuando. 6

·    Robusto: Java realiza verificaciones en busca de problemas tanto en tiempo de compilación como en tiempo de ejecución. La comprobación de tipos en Java ayuda a detectar errores, lo antes posible, en el ciclo de desarrollo. Java obliga a la declaración explícita de métodos, reduciendo así las posibilidades de error. Maneja la memoria para eliminar las preocupaciones por parte del programador de la liberación o corrupción de memoria. 6

·   Seguro: La seguridad en Java tiene dos facetas. En el lenguaje, características como los punteros o el casting implícito que hacen los compiladores de C y C++ se eliminan para prevenir el acceso ilegal a la memoria. Cuando se usa Java para crear un navegador, se combinan las características del lenguaje con protecciones de sentido común aplicadas al propio navegador. 6

 

·    Interpretado:

El intérprete Java (sistema run-time) puede ejecutar directamente el código objeto. Enlazar (linkar) un programa, normalmente, consume menos recursos que compilarlo, por lo que los desarrolladores con Java pasarán más tiempo desarrollando y menos esperando por el ordenador.6

·    Dinámico

Java se beneficia todo lo posible de la tecnología orientada a objetos. Java no intenta conectar todos los módulos que comprenden una aplicación hasta el tiempo de ejecución. 6