1.1 Entorno de Desarrollo-1
1.1 Entorno de Desarrollo-1
http://es.wikibooks.org/wiki/Programaci%C3%B3n_en_Java/Caracter%
C3%ADsticas_del_lenguaje
Programación Convencional
Los programas se componen de procedimientos y datos. Los procedimientos son los
que se encargan de realizar tareas específicas, como calcular la suma de dos números, o
mostrar un Frame en pantalla. Los argumentos (datos que se le pasan a los procedimientos),
son generalmente estructuras globales o se pasan como parámetros.
Multiplataforma: Lo que se conoce como "write once, run everywhere", escribe una vez
y ejecuta cuando quieras. Es un lenguaje que funciona independiente del sistema operativo
sobre el que se ejecuta. Esto se puede conseguir con una máquina virtual que hace de
puente entre el lenguaje y el sistema operativo. Es el único lenguaje que tiene esta
arquitectura, aunque existan otros lenguajes que también funcionan en varios sistemas
operativos.
Características:
Lenguaje totalmente orientado a Objetos. Todos los conceptos en los que se apoya
esta técnica, encapsulación, herencia, polimorfismo, etc., están presentes en Java.
Disponibilidad de un amplio conjunto de bibliotecas. Como ya se mencionó
anteriormente, Java es algo más que un lenguaje. La programación de aplicaciones con
Java se basa no solo en el empleo del juego de instrucciones que componen el lenguaje,
sino, fundamentalmente, en la posibilidad de utilizar el amplísimo conjunto de clases
que Sun pone a disposición del programador y con las cuales es posible realizar
prácticamente cualquier tipo de aplicación.
Lenguaje simple. Java posee una curva de aprendizaje muy rápida. Resulta
relativamente sencillo escribir applets interesantes desde el principio. Todos aquellos
familiarizados con C++ encontrarán que Java es más sencillo, ya que se han eliminado
ciertas características, como los punteros. Debido a su semejanza con C y C++, y dado
que la mayoría de la gente los conoce aunque sea de forma elemental, resulta muy fácil
aprender Java. Los programadores experimentados en C++ pueden migrar muy
rápidamente a Java y ser productivos en poco tiempo.
Distribuido. Java proporciona una colección de clases para su uso en aplicaciones de
red, que permiten abrir sockets y establecer y aceptar conexiones con servidores o
clientes remotos, facilitando así la creación de aplicaciones distribuidas.
Interpretado y compilado a la vez. Java es compilado, en la medida en que su código
fuente se transforma en una especie de código máquina, los bytecodes, semejantes a las
instrucciones de ensamblador. Por otra parte, es interpretado, ya que los bytecodes se
pueden ejecutar directamente sobre cualquier máquina a la cual se hayan portado el
intérprete y el sistema de ejecución en tiempo real (run-time).
Robusto. Java fue diseñado para crear software altamente fiable. Para ello proporciona
numerosas comprobaciones en compilación y en tiempo de ejecución. Sus
características de memoria liberan a los programadores de una familia entera de errores
(la aritmética de punteros), ya que se ha prescindido por completo de los punteros, y la
recolección de basura elimina la necesidad de liberación explícita de memoria.
Seguro (?). Dada la naturaleza distribuida de Java, donde las applets se bajan desde
cualquier punto de la Red, la seguridad se impuso como una necesidad de vital
importancia. A nadie le gustaría ejecutar en su ordenador programas con acceso total a
su sistema, procedentes de fuentes desconocidas. Así que se implementaron barreras de
seguridad en el lenguaje y en el sistema de ejecución en tiempo real.
Indiferente a la arquitectura. Java está diseñado para soportar aplicaciones que serán
ejecutadas en los más variados entornos de red, desde Unix a Windows Nt, pasando por
Mac y estaciones de trabajo, sobre arquitecturas distintas y con sistemas operativos
diversos. Para acomodar requisitos de ejecución tan diversos o variopintos, el
compilador de Java genera bytecodes: un formato intermedio indiferente a la
arquitectura diseñado para transportar el código eficientemente a múltiples plataformas
hardware y software. El resto de problemas los soluciona el intérprete de Java.
Portable. La indiferencia a la arquitectura representa sólo una parte de su portabilidad.
Además, Java especifica los tamaños de sus tipos de datos básicos y el comportamiento
de sus operadores aritméticos, de manera que los programas son iguales en todas las
plataformas. Estas dos últimas características se conocen como la Máquina Virtual Java
(JVM).
Alto rendimiento.
Multihebra. Hoy en día ya se ven como terriblemente limitadas las aplicaciones que
sólo pueden ejecutar una acción a la vez. Java soporta sincronización de múltiples hilos
de ejecución (multithreading) a nivel de lenguaje, especialmente útiles en la creación de
aplicaciones de red distribuidas. Así, mientras un hilo se encarga de la comunicación,
otro puede interactuar con el usuario mientras otro presenta una animación en pantalla
y otro realiza cálculos.
Dinámico. El lenguaje Java y su sistema de ejecución en tiempo real son dinámicos en
la fase de enlazado. Las clases sólo se enlazan a medida que son necesitadas. Se pueden
enlazar nuevos módulos de código bajo demanda, procedente de fuentes muy variadas,
incluso desde la Red.
Produce applets. Java puede ser usado para crear dos tipos de programas: aplicaciones
independientes y applets. Las aplicaciones independientes se comportan como
cualquier otro programa escrito en cualquier lenguaje, como por ejemplo el navegador
de Web HotJava, escrito íntegramente en Java. Por su parte, las applets son pequeños
programas que aparecen embebidos en las páginas Web, como aparecen los gráficos o
el texto, pero con la capacidad de ejecutar acciones muy complejas, como animar
imágenes, establecer conexiones de red, presentar menús y cuadros de diálogo para
luego emprender acciones, etc.
¿Qué es un objeto?, Un Objeto es una colección de datos, junto con las funciones asociadas
a esos datos y que operan sobre ellos. Lo importante y fundamental de los objetos, son sus
propiedades:
Herencia
Encapsulamiento o Encapsulación
Polimorfismo.
JVM (Java Virtual Machine): Es el diferencial de Java, es lo que permite que podamos
ejecutar los programas en cualquier entorno o sistema operativo. Cuando escribes código en
Java, este se compila y se genera un "byte code" ese código se ejecuta en la máquina
virtual, o mejor dicho se interpreta. Existe una máquina virtual para cada dispositivo y
gracias a ella es la que podemos interpretar en cada sistema ese código.
Nota: Android tiene su propia máquina virtual, que tiene unas características diferentes, por
lo que si tienes un programa Java no se ejecuta en Android y lo que escribes para Android
no se ejecuta en Java "común".
Java JDK (Kit de desarrollo Java): Es el kit de desarrollo para Java, lo mejor es que
busques en Google por "java download" y busques las referencias dentro del site de Oracle,
que es el actual dueño de Java.
Los IDE son Entornos de desarrollo integrados y son más recomendables. Entre los
IDE más comunes encuentras:
Nota: a un nivel más bajo también puedes programar con un editor de texto plano,
como el Bloc de Notas, aunque no es lo más recomendable para un lenguaje como Java.