“AÑO DEL BUEN SERVICIO AL CIUDADANO”
TEMA: JAVA.
CURSO: LABORATORIO
DE PROGRAMACIÓN II.
ESPECIALIDAD: INGENIERÍA DE SISTEMAS Y
TELEMATICA.
NOMBRE Y APELLIDO: GILDA PAMELA SILVA
FLORES
DOCENTE: MARCO
AURELIO PORRO CHULLI.
CICLO: V
–
A AULA:
101
BAGUA GRANDE– PERÚ
2017
I. Tema: Java
1. Contenido
Definición
Java es un lenguaje de programación orientado a
objetos que se incorporó al ámbito de la informática en los años noventa. La
idea de Java es que pueda realizarse programas con la posibilidad de ejecutarse
en cualquier contexto, en cualquier ambiente, siendo así su potabilidad uno de
sus principales logros. Fue desarrollado por Sun Microsystems, posteriormente
adquirido por Oracle. En la actualidad puede utilizarse de modo gratuito,
pudiéndose conseguir sin problemas un paquete para desarrolladores que oriente
la actividad de programar en este lenguaje. Puede ser modificado por
cualquiera, circunstancia que lo convierte en lo que comúnmente se denomina
“código abierto”.
Cuando se programa con un lenguaje, se utiliza un tipo
de código que la máquina es incapaz de reconocer. Es por ello que se requiere
de un proceso de compilación, esto es, de “traducir” el lenguaje utilizado para
que la máquina sea capaz de reconocerlo y procesarlo. Cada vez que un código
requiere ser ejecutado en un ambiente distinto, deberá compilarse nuevamente.
Con el desarrollo de Java se intentó evitar este tipo de circunstancia,
haciendo que el código corriera en cualquier ambiente. El modo en que se logró
este objetivo es desarrollando una máquina virtual que ejecutase el código
compilado; esto significa que la “traducción” ya no se hace para que sea
comprendida por un determinado sistema operativo; se hace para que la
interprete la “máquina virtual”, que puede correr en cualquier sistema
operativo. De esta manera, solo es necesario realizar una compilación, que
podrá ser utilizada en cualquier entorno que tenga instalada la máquina virtual
java.
Características
- Lenguaje totalmente orientado a Objetos. Todos los conceptos en los que se apoya esta técnica, encarcelació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 completí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ñada 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. Java es considerado de alto rendimiento por ser tan veloz en el momento de correr los programas y por ahorrase muchas líneas de código.
- 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.
Tipos de Datos
Los primeros lenguajes de
programación no usaban objetos, solo variables. Una variable podríamos decir
que es un espacio de la memoria del ordenador a la que asignamos un
contenido que puede ser un valor numérico (sólo números, con su valor
de cálculo) o de tipo carácter o cadena de caracteres (valor alfanumérico que
constará sólo de texto o de texto mezclado con números).
Como ejemplo podemos
definir una variable a que contenga 32 y esto lo escribimos como a = 32.
Posteriormente podemos cambiar el valor de a y hacer a = 78. O hacer “a”
equivalente al valor de otra variable “b” así: a = b.
Dado que antes hemos dicho
que un objeto también ocupa un espacio de memoria: ¿en qué se parecen y
en qué se diferencia un objeto de una variable? Consideraremos que las
variables son entidades elementales: un número, un carácter, un valor verdadero
o falso… mientras que los objetos son entidades complejas que pueden estar
formadas por la agrupación de muchas variables y métodos. Pero ambas cosas
ocupan lo mismo: un espacio de memoria (que puede ser más o menos grande).
En los programas en Java
puede ser necesario tanto el uso de datos elementales como de datos complejos.
Por eso en Java se usa el término “Tipos de datos” para englobar a cualquier
cosa que ocupa un espacio de memoria y que puede ir tomando distintos valores o
características durante la ejecución del programa. Es decir, en vez de hablar
de tipos de variables o de tipos de objetos, hablaremos simplemente de tipos de
datos. Sin embargo, a veces “coloquialmente” no se utiliza la terminología de
forma estricta: puedes encontrarte textos o páginas web donde se habla de una
variable en alusión a un objeto.
En Java diferenciamos dos
tipos de datos: por un lado, los tipos primitivos, que se corresponden con los
tipos de variables en lenguajes como C y que son los datos elementales que
hemos citado. Por otro lado, los tipos objeto (que normalmente incluyen
métodos).
Veamos los tipos de datos
en Java sobre un esquema de síntesis:
Esquema de síntesis de
tipos de datos en Java
Este esquema no es
necesario aprendérselo de memoria en todos sus detalles, aunque sí lo iremos
memorizando poco a poco a medida que lo utilicemos, por lo menos hasta tener en
nuestra cabeza los nombres de todos los tipos primitivos y envoltorio y sus
características (si son objetos o no y su rango aproximado). A continuación
mostramos el mismo esquema en formato de tabla:
TIPOS DE DATOS EN JAVA
|
|
NOMBRE
|
TIPO
|
OCUPA
|
RANGO APROXIMADO
|
TIPOS
PRIMITIVOS
(sin
métodos; no son objetos; no necesitan una invocación para ser creados)
|
byte
|
Entero
|
1
byte
|
-128
a 127
|
|
short
|
Entero
|
2
bytes
|
-32768
a 32767
|
||
int
|
Entero
|
4
bytes
|
2*109
|
||
long
|
Entero
|
8
bytes
|
Muy
grande
|
||
float
|
Decimal
simple
|
4
bytes
|
Muy
grande
|
||
double
|
Decimal
doble
|
8
bytes
|
Muy
grande
|
||
char
|
Carácter
simple
|
2
bytes
|
---
|
||
boolean
|
Valor
true o false
|
1
byte
|
---
|
||
|
|
|
|
|
|
TIPOS
OBJETO
(con
métodos, necesitan una invocación para ser creados)
|
Tipos
de la biblioteca estándar de Java
|
String
(cadenas de texto)
Muchos
otros (p.ej. Scanner, TreeSet, ArrayList…)
|
|||
Tipos
definidos por el programador / usuario
|
Cualquiera
que se nos ocurra, por ejemplo Taxi, Autobus, Tranvia
|
||||
arrays
|
Serie
de elementos o formación tipo vector o matriz. Lo consideraremos un objeto
especial que carece de métodos.
|
||||
Tipos
envoltorio o wrapper (Equivalentes a los tipos primitivos pero como objetos.)
|
Byte
|
||||
Short
|
|||||
Integer
|
|||||
Long
|
|||||
Float
|
|||||
Double
|
|||||
Character
|
|||||
Boolean
|
Operadores
Los
operadores son muy similares a los de C++, ya lo advertimos en su
momento.
Operadores Aritméticos: Los habituales
·
Suma +.
·
Resta - .
·
Multiplicación *.
·
División /.
·
Resto de la División %.
Operadores de Asignación: El principal es '=' pero hay más
operadores de asignación con distintas funciones que explicamos brevemente
ahora.
·
'+=' : op1 += op2 à op1 = op1 +
op2
·
'-=' : op1 -= op2 à op1 = op1 - op2
·
'*=' : op1 *= op2 à op1 = op1 * op2
·
'/=' : op1 /= op2 à op1 = op1 / op2
·
'%=' : op1 %= op2 à op1 = op1 % op2
Operadores Unarios: El mas
(+) y el menos (-). Para cambiar el signo del operando.
Operador Instanceof: Nos permite saber si un objeto pertenece a una clase o no.
Operador Instanceof: Nos permite saber si un objeto pertenece a una clase o no.
·
NombreObjeto instanceof NombreClase
·
Operadores Incrementales: Son los
operadores que nos permiten incrementar las variables en una unidad. Se pueden
usar delante y detrás de la variable dependiendo de lo que queramos, es decir,
si queremos que incremente o viceversa antes de utilizar o lo contrario.
·
'++'
·
'--'
Operadores Relacionales: Permiten
comparar variables según relación de igualdad/desigualdad o relación
mayor/menor. Devuelven siempre un valor booleano.
·
'>': Mayor que
·
'<': Menor que
·
'==': Iguales
·
'¡=': Distintos
·
'>=': Mayor o igual que
·
'<=': Menor o igual que
Operadores Lógicos: Nos
permiten construir expresiones lógicas.
·
'&&' : devuelve true si ambos operando son true.
·
'||' : devuelve true si alguno de los operados son true.
·
'!' : Niega el operando que se le pasa.
·
'&' : devuelve true si ambos operados son true, evaluándolos
ambos.
·
'|' : devuelve true uno de los operando es true, evaluándolos
ambos.
Operador de concatenación con cadena de caracteres
'+':
·
Por Ejemplo: System.out.println("El total es"+ result
+"unidades");
Operadores que actúan a nivel de bits: Son mucho
menos utilizados por eso los explicamos más por encima.
·
'>>': desplazamiento a la derecha de los bits del operando.
·
'<<': desplazamiento a la izquierda de los bits de operando.
·
'&': operador and a nivel de bit.
·
'|': operador or a nivel de bit.
2. Resumen
Java es un lenguaje de programación de propósito
general, concurrente, orientado a objetos que fue diseñado específicamente para
tener tan pocas dependencias de implementación como fuera posible. Su intención
es permitir que los desarrolladores de aplicaciones escriban el programa una
vez y lo ejecuten en cualquier dispositivo (conocido en inglés como WORA, o
"write once, run anywhere"), lo que quiere decir que el código que es
ejecutado en una plataforma no tiene que ser recompilado para correr en otra.
Java es, a partir de 2012, uno de los lenguajes de programación más populares
en uso, particularmente para aplicaciones de cliente-servidor de web, con unos
10 millones de usuarios reportados.
El lenguaje de programación Java fue originalmente
desarrollado por James Gosling de Sun Microsystems (la cual fue adquirida por
la compañía Oracle) y publicado en 1995 como un componente fundamental de la
plataforma Java de Sun Microsystems. Su sintaxis deriva en gran medida de C y
C++, pero tiene menos utilidades de bajo nivel que cualquiera de ellos. Las
aplicaciones de Java son generalmente compiladas a bytecode (clase Java) que
puede ejecutarse en cualquier máquina virtual Java (JVM) sin importar la
arquitectura de la computadora subyacente.
La compañía Sun desarrolló la implementación de
referencia original para los compiladores de Java, máquinas virtuales, y
libreríasde clases en 1991 y las publicó por primera vez en 1995. A partir de
mayo de 2007, en cumplimiento con las especificaciones del Proceso de la
Comunidad Java, Sun volvió a licenciar la mayoría de sus tecnologías de Java
bajo la Licencia Pública General de GNU. Otros también han desarrollado
implementaciones alternas a estas tecnologías de Sun, tales como el Compilador
de Java de GNU y el GNU Classpath.
3. Summary
Java is a general-purpose, concurrent, object-oriented programming language that was specifically designed to have as few implementation dependencies as possible. It is intended to allow application developers to write the program once and run it on any device (known as WORA, or "write once, run anywhere"), which means that code that is run on a platform it does not have to be recompiled to run on another. Java is, as of 2012, one of the most popular programming languages in use, particularly for client-server web applications, with about 10 million users reported. The Java programming language was originally developed by James Gosling of Sun Microsystems (which was acquired by the company Oracle) and published in 1995 as a fundamental component of the Java platform of Sun Microsystems. Its syntax derives largely from C and C ++, but has fewer low-level utilities than any of them. Java applications are generally compiled to bytecode (Java class) that can run on any Java virtual machine (JVM) regardless of the architecture of the underlying computer. Sun developed the original reference implementation for Java compilers, virtual machines, and class libraries in 1991 and published them for the first time in 1995. As of May 2007, in compliance with the specifications of the Java Community Process , Sun re-licensed most of its Java technologies under the GNU General Public License. Others have also developed alternate implementations of these Sun technologies, such as the GNU Java Compiler and the GNU Classpath.
4. Recomendaciones
·
No introducir
bloques vacios de código o código que no se utiliza.
·
Asegurar que las
variables incrementadas dentro de los bucles son las correctas.
· Hacer uso de los
mecanismos de herencia: cuantos más métodos se hereden, menos código se tendrá
que escribir.
·
Evitar llamar a
Object.notify() o Object.notifyAll() sin que, obviamente, se mantenga un
bloqueo en el objeto.
·
Utilizar un
máximo de tres niveles de herencia favoreciendo así la compresión del código y
evitando excesiva complejidad en el mismo.
·
Evitar codigo
cíclico.
·
Evite
comparaciones que siempre devuelven el mismo resultado.
· Evitar método con
llamadas Thread.Sleep() con un bloqueo mantenido. Esto puede resultar en un
rendimiento muy pobre y escalabilidad, o un estancamiento, ya que otros
subprocesos pueden estar esperando para adquirir el bloqueo. Es una idea mucho
mejor llamar a wait () en la cerradura, que libera el bloqueo y permite que
otros hilos de ejecución.
·
Se recomienda el
uso de Map en lugar de utilizar Hashtable.
·
Se recomienda el
uso de java.util.Iterator en lugar de utiliar Enumeration.
· Una operación en
un objeto inmutable (String, BigDecimal o BigInteger) no va a cambiar el objeto
en sí. El resultado de la operación es un nuevo objeto. Por lo tanto, ignorar
el resultado de la operación es un error.
· Evitar la
búsqueda de null ante un instanceof. La palabra clave instanceof devuelve falso
cuando se le da un argumento nulo.
·
Controlar la
incializacion perezosa de los atributos.
·
Declarar public
final serialversionUID para todo lo que pueda ser persistente.
·
Estudie
reemplazar los vectores por el uso de ArrayList.
·
Evite crear
instancias de un objeto con sólo llamadas al método getClass().
·
No utilizar las
palabras "Enum" o "Assert" como identificadores.
·
Nunca realice
llamadas a System.runFinalizersOnExit o Runtime.runFinalizersOnExit.
5. Conclusiones
Es un resumen de algunas partes del famoso lenguaje
Java, muy utilizado para escribir los programas que trabajan en internet y no
sólo para eso; empezando por las bases hasta llegar a las interfaces gráficas
y, finalmente, al sonido. Éstos son todos aspectos más avanzados de la
programación.
Quiero disculparme con mis lectores menos expertos por
si han tenido problemas para entender algunas partes de la guía y, al mismo
tiempo, quiero hacerlo con los más expertos si han encontrado algo demasiado
aburrido o simple. Los que han asistido a todo el curso tendrían que ser
capaces de escribir unos apliques simples y unas aplicaciones por su cuenta. No
creo que hayáis conseguido todavía gestionar grandes aplicaciones complejas,
aunque, con un poco de práctica y con los simples conceptos del curso, os váis
a convertir en excelentes programadores.
Yo estaré siempre disponible a posibles preguntas
sobre el curso o a más explicaciones, pero os pido que no me escribáis para los
Javascript o para la configuración de los apliques bajados de la red.
Para los que quieran profundizar los temas tratados o
ver nuevos, os dejo la bibliografía completa en la que me he basado para
preparar este curso.
6. Glosario de Términos
Applet. Un applet es un componente de software (código de
programa) que el explorador descarga para proporcionar funciones en una página
web. Los applets de Java proporcionan funciones interactivas en un explorador
web mediante Java Virtual Machine (JVM).
Comprobar/Seleccionar. Método por el que los usuarios introducen información
en un cuadro de diálogo o página web, ya sea activando una casilla de control
con el cursor para crear una marca de verificación o colocando el cursor sobre
un botón de radio y haciendo clic para "pulsar" el botón.
Cuadro de diálogo. Ventana especial de una interfaz de usuario gráfica
que informa al usuario o le solicita información.
Activar/Desactivar. Configuración del software accesible para el usuario
que activa o desactiva ciertas funciones o capacidades. Resulta útil para
resolver problemas de la configuración de Java, ya que se le puede solicitar al
usuario que utilice un cuadro de diálogo para activar o desactivar una
configuración o función específicas.
Firewall. Los firewalls de Internet pueden ser software o
hardware que protegen su computadora de ataques externos de Internet que puedan
suponer una amenaza para la seguridad de Internet y para los archivos de su
computadora. La funcionalidad del firewall permite establecer reglas para
permitir o denegar el pasaje del tráfico de Internet.
Archivo Java (JAR). El archivo Java (.jar) es un formato de archivo que se utiliza para agrupar varios archivos dentro de un único archivo de almacenamiento. Normalmente un archivo JAR contiene los archivos de clase y recursos auxiliares asociados a applets y aplicaciones.
Java Plugin. La tecnología Java Plugin forma parte de Java Runtime Environment y establece la conexión entre los exploradores más conocidos y la plataforma Java. Esta conexión permite que los applets de sitios Web se ejecuten en el explorador en el escritorio.
Archivo Java (JAR). El archivo Java (.jar) es un formato de archivo que se utiliza para agrupar varios archivos dentro de un único archivo de almacenamiento. Normalmente un archivo JAR contiene los archivos de clase y recursos auxiliares asociados a applets y aplicaciones.
Java Plugin. La tecnología Java Plugin forma parte de Java Runtime Environment y establece la conexión entre los exploradores más conocidos y la plataforma Java. Esta conexión permite que los applets de sitios Web se ejecuten en el explorador en el escritorio.
Caché de Java Runtime Environment (JRE). Área de
almacenamiento de la consola de Java que, en ocasiones, se debe borrar de forma
manual para permitir la carga e instalación de la última versión de Java.
Java Virtual
Machine (JVM). En Java, un conjunto de programas de software
que permiten la ejecución de instrucciones y que normalmente están escritos en
código byte de Java. Las máquinas virtuales de Java están disponibles para las
plataformas de hardware y software de uso más frecuente.
javaw.exe. El proceso javaw.exe es un programa propiedad de Oracle, Inc., que funciona junto con el explorador Internet Explorer como un plugin de Java. Este programa es similar al programa java.exe. La única diferencia radica en que el proceso javaw.exe no tiene ninguna ventana de consola al ejecutarse. Si no desea ver una ventana de símbolo del sistema, podría utilizar mejor el proceso javaw.exe. El archivo javaw.exe es un programa de ejecución que mostrará un cuadro de diálogo durante los momentos en los que se produzca un fallo al iniciar un programa.
Jucheck.exe. El proceso jucheck.exe forma parte de la instalación
de Java en Windows y comprueba si hay nuevas versiones de Java. El proceso no
instala Java y le notifica que una versión más reciente esté lista para su
descarga. » Más información.
7. Bibliografía o Linkografía
- · Documentación oficial de la Sun Microsystems de Java Development Kit Versioni 1.3, 1.3 Relase Candidate 1, 1.3 Relase Candidate 2, 1.3 Relase Candidate 3, 1.3 Beta, 1.2.2 , 1.2.1.
- · Disponible en la red en el sito oficial de Java: http://java.sun.com
- · Java Didáctica y Programación, K.Arnold e J. Gosling, Addison-Wesley Primera edición, (en italiano) Marzo de 1997
- · Manual QUE - Special Edition Using Java, 2nd Edition, versión encontrada en internet (en inglés).
- · Java2 Todo&Más, J. Jaworski, SAMS Publishing - APOGEO (en inglés)
- · Javatm 2D Graphics, J. Knudsen, O'REILLY (en inglés)
- · Ambiente para explorar los micromundos en competición, Pietro Castellucci, Tesina en Informática. (en italiano).
- · duibokarinaup.blogspot.com/2014/10/conclusion.html
- · www.htmlpoint.com/guidajava/java_39.html
- · puntocomnoesunlenguaje.blogspot.com/2012/04/operadores.html
No hay comentarios:
Publicar un comentario