PDF de programación - Fundamentos de Java en GNU/Linux

Imágen de pdf Fundamentos de Java en GNU/Linux

Fundamentos de Java en GNU/Linuxgráfica de visualizaciones

Publicado el 22 de Mayo del 2018
1.016 visualizaciones desde el 22 de Mayo del 2018
720,7 KB
125 paginas
Creado hace 19a (01/01/2005)
FFUUNNDDAAMMEENNTTOOSS ddee

JJAAVVAA

eenn

GGNNUU//LLIINNUUXX

GUIA DE ESTUDIO

1

FUNDAMENTOS DE JAVA EN GNU/LINUX

GUIA DE AUTO ESTUDIO

II NTRODUCCIÓN
NTRODUCCIÓN

CARACTERÍSTICAS DE JAVA

a ver para que tipo de problemas está pensado Java:

Java partieron de la sintaxis de C++ y trataron de eliminar de este todo lo que resultase complicado

o fuente de errores en este lenguaje.

Acontinuación haremos una pequeña redacción de las características del lenguaje, que nos ayudarán
Simple Es un lenguaje sencillo de aprender. Su sintaxis es la de C++ “simplificada”. Los creadores de
Orientado a Objetos Posiblemente sea el lenguaje más orientado a objetos de todos los existentes; en
Distribuido Java está muy orientado al trabajo en red, soportando protocolos como TCP/IP, UDP,
Robusto El compilador Java detecta muchos errores que otros compiladores solo detectarían en tiem-
Seguro Sobre todo un tipo de desarrollo: los Applet. Estos son programas diseñados para ser ejecuta-

dos en una página web. Java garantiza que ningún Applet puede escribir o leer de nuestro disco o
mandar información del usuario que accede a la página a través de la red (como, por ejemplo, la dirección
de correo electrónico). En general no permite realizar cualquier acción que pudiera dañar la máquina o vio-
lar la intimidad del que visita la página web.

po de ejecución o incluso nunca. (ej: if(a=b) then ... el compilador Java no nos dejaría compilar este

Java todo, a excepción de los tipos fundamentales de variables (int, char, long...) es un objeto.

HTTP y FTP. Por otro lado el uso de estos protocolos es bastante sencillo comparandolo con otros

lenguajes que los soportan.

código.

Portable En Java no hay aspectos dependientes de la implementación, todas las implementaciones de

Java siguen los mismos estándares en cuanto a tamaño y almacenamiento de los datos. Esto no ocu-
rre así en C++, por ejemplo. En éste un entero, por ejemplo, puede tener un tamaño de 16, 32 o más bits,
siendo lo única limitación que el entero sea mayor que un short y menor que un long int. Así mismo C++
bajo UNIX almacena los datos en formato little endian, mientas que bajo Windows lo hace en big endian.
Java lo hace siempre en little edian para evitar confusiones.

2

Arquitectura Neutral El código generado por el compilador Java es independiente de la arquitectura:

podría ejecutarse en un entorno UNIX, Mac o Windows. El motivo de esto es que el que realmente
ejecuta el código generado por el compilador no es el procesador del ordenador directamente, sino que este
se ejecuta mediante una máquina virtual. Esto permite que los Applets de una web pueda ejecutarlos cual-
quier máquina que se conecte a ella independientemente de que sistema operativo emplee (siempre y cuan-
do el ordenador en cuestión tenga instalada una máquina virtual de Java).

Rendimiento medio Actualmente la velocidad de procesado del código Java es semejante a la de C++,

hay ciertos pruebas estándares de comparación (benchmarks) en las que Java gana a C++ y vice-
versa. Esto es así gracias al uso de compiladores just in time, compiladores que traduce los bytecodes de
Java en código para una determinada CPU, que no precisa de la máquina virtual para ser ejecutado, y guar-
dan el resultado de dicha conversión, volviéndolo a llamar en caso de volverlo a necesitar, con lo que se evita
la sobrecarga de trabajo asociada a la interpretación del bytecode. No obstante por norma general el pro-
grama Java consume bastante más memoria que el programa C++, ya que no sólo ha de cargar en memoria
los recursos necesario para la ejecución del programa, sino que además debe simular un sistema operativo y
hardware virtuales (la máquina virtual). Por otro lado la programación gráfica empleando las librerías Swing
es más lenta que el uso de componentes nativos en las interfaces de usuario. En general en Java se ha sacri-
ficado el rendimiento para facilitar la programación y sobre todo para conseguir la característica de neutra-
lidad arquitectural, si bien es cierto que los avances en las máquinas virtuales remedian cada vez más estas
decisiones de diseño.

Multithread Soporta de modo nativo los threads, sin necesidad del uso de de librerías específicas

(como es el caso de C++). Esto le permite además que cada Thread de una aplicación java pueda
correr en una CPU distinta, si la aplicación se ejecuta en una máquina que posee varias CPU. Las aplicacio-
nes de C++ no son capaces de distribuir, de modo transparente para el programador, la carga entre varias
CPU.

3

4

CAPITULO 1
FUNDAMENTOS JAVA SOBRE GNU/LINUX

INTRODUCCION
INTRODUCCION

OBJETIVOS

Al completar éste Capitulo, usted podrá:

• Instalar y configurar java sobre GNU/Linux
• Escribir Simple programas de Java
• Compilar y ejecutar programas de Java

PREGUNTAS PRE-EXAMEN

Las repuestas se encuentran en el Apéndice A al final del Libro.

1. ¿Qué es Java?

2. ¿Quien Goslin?

3. ¿Cómo es JAVA Distribuido?

4. ¿Cómo es JAVA Licenciado?

5. ¿Es JAVA Software Open Source?

6. ¿Es JAVA Software Open Source?

7. ¿Que es el ByteCode?

8. ¿Que es un desarrollador?

9. ¿Que es el JVM?

5

HISTHISTORIAORIA
A. ¿Por qué se diseñó Java?

Los lenguajes de programación C y Fortran se han utilizado para diseñar algunos de los sistemas más

complejos en lenguajes de programación estructurada, creciendo hasta formar complicados procedi-
mientos. De ahí provienen términos como "código de espagueti" o "canguros" referentes a programas con
múltiples saltos y un control de flujo difícilmente trazable.

de programación. Este cambio de paradigma de la programación estructurada a la programación

orientada a objetos, comenzó hace 30 años con un lenguaje llamado Simula67.

No sólo se necesitaba un lenguaje de programación para tratar esta complejidad, sino un nuevo estilo
El lenguaje C++ fue un intento de tomar estos principios y emplearlos dentro de las restricciones de C.

Todos los compiladores de C++ eran capaces de compilar programas de C sin clases, es decir, un len-
guaje capaz de interpretar dos estilos diferentes de programación. Esta compatibilidad ("hacia atrás") que
habitualmente se vende como una característica de C++ es precisamente su punto más débil. No es necesa-
rio utilizar un diseño orientado a objetos para programar en C++, razón por la que muchas veces las aplica-
ciones en este lenguaje no son realmente orientadas al objeto, perdiendo así los beneficios que este paradig-
ma aporta.

Así Java utiliza convenciones casi idénticas para declaración de variables, paso de parámetros, y

demás, pero sólo considera las partes de C++ que no estaban ya en C.

Las principales características que Java no hereda de C++ son:

Punteros: Las direcciones de memoria son la característica más poderosa de C++. El inadecuado uso

de los punteros provoca la mayoría de los errores de colisión de memoria, errores muy difíciles de detec-
tar. Además, casi todos los virus que se han escrito aprovechan la capacidad de un programa para acceder
a la memoria volátil (RAM) utilizando punteros. En Java, no existen punteros, evitando el acceso directo
a la memoria volátil.

• Variables globales: Con ellas cualquier función puede producir efectos laterales, e incluso se pueden
producir fallos catastróficos cuando algún otro método cambia el estado de la variable global necesaria
para la realización de otros procesos. En Java lo único global es el nombre de las clases.

goto: Manera rápida de arreglar un programa sin estructurar el código. Java no tiene ninguna senten-

cia goto. Sin embargo Java tiene las sentencias break y continue que cubren los casos importantes de goto.

• Asignación de memoria: La función malloc de C, asigna un número especificado de bytes de memo-
ria devolviendo la dirección de ese bloque. La función free devuelve un bloque asignado al sistema para
que lo utilice. Si se olvida de llamar a free para liberar un bloque de memoria, se están limitando los recur-
sos del sistema, ralentizando progresivamente los programas. Si por el contrario se hace un free sobre un
puntero ya liberado, puede ocurrir cualquier cosa. Más tarde C++ añadió new y delete, que se usan de
forma similar, siendo todavía el programador, el responsable de liberar el espacio de memoria. Java no
tiene funciones malloc ni free. Se utiliza el operador new para asignar un espacio de memoria a un obje-
to en el montículo de memoria. Con new no se obtiene una dirección de memoria sino un descriptor al
objeto del montículo. La memoria real asignada a ese objeto se puede mover a la vez que el programa se

6

ejecuta, pero sin tener que preocuparse de ello. Cuando no tenga ninguna referencia de ningún objeto, la
memoria ocupada estará disponible para que la reutilice el resto del sistema sin tener que llamar a free o
delete. A esto se le llama recogida de basura. El recolector de basura se ejecuta siempre que el sistema esté
libre, o cuando una asignación solicitada no encuentre asignación suficiente.

• Conversión de tipos insegura: Los moldeados de tipo (type casting) son un mecanismo poderoso de
C y C++ que permite cambiar el tipo de un puntero. Esto requiere extremada precaución puesto que no
hay nada previsto para detectar si la conversión es correcta en tiempo de ejecución. En Java se puede hacer
una comprobación en tiempo de ejecución de la compatibilidad de tipos y emitir una excepción cuando
falla.

B. Comienzos

Java fue diseñado en 1990 por James Gosling, de Sun Microsystems, como software para dispositivos elec-
trónicos de consumo. Curiosamente, todo este lenguaje fue diseñado antes de que diese comienzo la era
World Wide Web, puesto que fue diseñado para dispositivos electrónicos como calculadoras, microondas y
la televisión interactiva.

Imagen 2: Logotipo de la empresa Sun Microsystems

En los primeros años de la década de los noventa, Sun Microsystems decidió inten
  • Links de descarga
http://lwp-l.com/pdf11223

Comentarios de: Fundamentos de Java en GNU/Linux (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad