Você está na página 1de 0

Introduccin a la

Programacin con Java


Daniel D. Arreola
@daniel_entropy
ibmdebian43@gmail.com

Gracias al apoyo de la iniciativa
TELMEXhub
@telmehub

Herramientas windows:
http://min.us/mQBVnDdbP
http://minus.com/ddahink
IDE Eclipse versin portatil
!rchivo PD" del taller:

Lenguaje Java
1. Introduccin


#ava es un len$ua%e multiparadi$ma& pero en su
ma'or(a )rientado a )b%etos.
*u sinta+is es parecida a ,--.
El cdi$o .uente se compila en b'tecode ' se
$uarda en un /.class.
El b'tecode es interpretado por la 0a1uina
Virtual2V03
4ibera memoria de modo automati5ado usando el
6arba$e ,ollector 2,olector de Basura3

)b%eto&,lase e Instancia
Objeto:
Un objeto e algo !ue
e"ite# en el mundo
real y !ue tiene
caracter$tica y
comportamiento.
%lae:
Una clae e el molde de un objeto# !ue
abtrae la caracter$tica y lo
comportamiento del objeto# de modo
!ue ea ma &'cil reol(er un
problema.
Intancia:
Una intancia e el nombre !ue e
le tiene !ue dar a una clae
ante de empe)ar a trabajar con
ella. * un ejemplo epeci&ico del
objeto

+. ,itoria de -a(a
Java es un lenguaje de programacin orientado a objetos, desarrollado por Sun
Microsystems a principios de los aos 90. El lenguaje en s mismo toma muca
de su sinta!is de " y "##, pero tiene un modelo de objetos m$s simple y elimina
erramientas de bajo nivel, %ue suelen inducir a mucos errores, como la
manipulacin directa de punteros o memoria.
&a implementacin original y de re'erencia del compilador, la m$%uina virtual y
las bibliotecas de clases de Java 'ueron desarrollados por Sun Microsystems en
(99). *esde entonces, Sun a controlado las especi'icaciones, el desarrollo y
evolucin del lenguaje a trav+s del Java "ommunity ,rocess, si bien otros an
desarrollado tambi+n implementaciones alternativas de estas tecnologas de Sun,
algunas incluso bajo licencias de so't-are libre.
Entre diciembre de .00/ y mayo de .000, Sun Microsystems liber la mayor
parte de sus tecnologas Java bajo la licencia 123 1,&, de acuerdo con las
especi'icaciones del Java "ommunity ,rocess, de tal 'orma %ue pr$cticamente
todo el Java de Sun es aora so't-are libre 4aun%ue la biblioteca de clases de
Sun %ue se re%uiere para ejecutar los programas Java a5n no lo es6.

"iloso.(a
*l lenguaje -a(a e cre con cinco objeti(o principale:
Uar la metodolog$a de la programacin orientada a
objeto.
.a ejecucin de un mimo programa en m/ltiple
itema operati(o.
Incluir por de&ecto oporte para trabajo en red.
Die0are para ejecutar cdigo en itema remoto de
&orma egura.
Deber$a er &'cil de uar y tomar lo mejor de otro
lenguaje orientado a objeto# como %11.

3. Ar!uitectura de una %omputadora u Ordenador
*e$7n la 8!E 28eal !cademia de la len$ua espa9ola3& una
computadora es una m:1uina electrnica& anal$ica o
di$ital& dotada de una memoria de $ran capacidad ' de
m;todos de tratamiento de la in.ormacin& capa5 de
resolver problemas
matem:ticos ' l$icos mediante la utili5acin autom:tica
de pro$ramas.

Est: dividida en dos
partes importantes:
Hardware: *e trata de
todos los componentes
.(sicos 1ue .orman parte
de una computadora:
procesador& 8!0&
impresora& teclado&
ratn&...
*o.tware: *e trata de la
parte conceptual del
ordenador. Es decir los
datos ' aplicaciones 1ue
mane%a ' 1ue permiten
un $rado de abstraccin
ma'or. ,ual1uier cosa
1ue se pueda almacenar
en una unidad de
almacenamiento es
so.tware

!nidad "entral de Proceso #"P!$
0icropocesador
!thlon <= >? E< @ABB-

%ispositivos
Entrada
&alida
'lmacenamien
to
"omunicacin
"mputo

Tipos de memoria
('M (Random Access Memory): Memoria de
escritura y lectura. El contenido solo se mantiene
mientras el computador est encendido.
()M (Read Only Memory): Memoria de solo
lectura es permanente y no se a!ecta por el
encendido o apagado del computador.
"ach*+ Memoria de acceso muy rpido usada
como puente entre la "#$ y la memoria RAM para
evitar las demoras en la consulta de la memoria
RAM.

Estructura de la memoria
Parte de esta potencia de #ava viene de 1ue permite acceder con mucha
libertad a la memoria de la m:1uina. Para entender un poco cmo es
posible& debemos entender cmo se $uardan los datos en la memoria.
Ima$inemos 1ue la memoria tiene un montn de casillas& una enorme .ila
de casillas& cada una de las cuales contiene un d($ito binario 2bit3:
BCBCBBCBCBCBBBBCBCBCBCBBCBCBBBBCBBCCCBCBCCBBCBBCBCBCBBCBCCBCBCCBB
BCCBCBCBCCBCBCBCBCCBCCC...
Es e+actamente as(& pero es m:s cmodo recordar 1ue esos bits se
encuentran a$rupados de ocho en ocho& .ormando octetos 2b'tes3:
BCBCBBCBDCBCBBBBCDBCBCBCBBDCBCBBBBCDBBCCCBCBDCCBBCBBCDBCBCBBCD
BCCBCBCCDBBBCCBCBDCBCCBCBCDBCBCCBCC
,ada octeto puede contener ?
,
E ?F< combinaciones distintas de ceros '
unos& es decir& cual1uier n7mero entre B ' ?FF:
A?DC<CDA=DC<CDFAD?BCDA?D?C=DCACDCB<DCA@

2ambi3n podemo repreentar eto n/mero en bae
4e"adecimal:
5"6+ 5"A1 5"64 5"A1 5"3A 5"%7 5"6+ 5"D8
5"36 5"8A 5"9:
O coniderarlo caractere:
; < 2 < : = ; > 6 j ?
*te e el tipo de dato m' elemental !ue no podemo encontrar
en %: el caracter. Un caracter ocupa e"actamente un byte @A bitB de
memoria# y puede contener un n/mero entre 5 y +66# o entre C1+A y
1+:# dependiendo i !ueremo coniderarlo como in igno o con
3l.

Utiliza solo dos dgitos, 0 y 1. Un nmero en binario
representa una suma de potencias de 2. Ejemplo:
110100
2
= 12
!
" 12
#
" 02
$
" 12
2
" 02
1
" 02
0
= $2 " 1% " 0 " # " 0 " 0 = !2
10
&ara con'ertir de decimal a binario se sigue el siguiente
es(uema:
10! !2 2% 1$ % $ 1 0
2 210 10! !2 2% 1$ % $ 1
0 1 0 0 1 0 1 1
El binario se obtiene de la secuencia in'ersa de los
residuos
El nmero binario e(ui'alente es: 11010010

)peraciones l$icas
*e trata de operaciones 1ue manipulan BIG* de .orma
l$ica& son mu' utili5adas en la computacin. *e basan
en una interpretacin mu' utili5ada con los n7meros
binarios en la cual el d($ito C se interpreta como
verdadero ' el d($ito B se interpreta como .also.
)peracin !HD
4a operacin !HD 2en espa9ol I3& sirve para unir
e+presiones l$icas& se entiende 1ue el resultado de la
operacin es verdadero si al$una de las dos
e+presiones es verdadero
En el caso de los d($itos binarios& la operacin !HD
opera con dos BIG* de modo 1ue el resultado ser: uno
si ambos bits valen uno.

4a tabla superior se llama tabla de la verdad '
sirve para mostrar resultados de operaciones
l$icas& el resultado est: en la parte blanca& en la
otra parte se representan los operadores . El
resultado ser: C si ambos operadores valen C

)peracin )8
)8 2) en espa9ol3 devuelve verdadero si
cual1uiera de los operandos es verdadero
2es decir& si valen C3.
)peracin H)G
Esta operacin act7a sobre un solo BIG ' lo
1ue hace es invertirleJ es decir& si vale uno
valdr: cero& ' si vale cero valdr: uno.

*istema he+adecimal
Es un sistema 1ue se utili5a mucho para representar
n7meros binarios. El sistema he+adecimal es la .orma
de representar n7meros en base C<. De modo 1ue en
los d($itos del B al K se utili5an los mismos s(mbolos
1ue en el sistema decimal ' a partir del CB se utili5a la
letra ! ' as( hasta la letra " 1ue simboli5a el CF.
!s( el n7mero he+adecimal ,!@ ser(a:
,LC<
?
- !LC<
C
- @LC<
B
E C?L?F< - CBLC< - @ E @?@F
4a ra5n del uso de este sistema es por1ue tiene una
e1uivalencia directa con el sistema binario. De hecho en
una ci.ra he+adecimal caben e+actamente = bits. Por ello la
traduccin de he+adecimal a binario se basa en esta tabla:

He+adecimal Binario
B BBBB
C BBBC
? BBCB
@ BBCC
= BCBB
F BCBC
< BCCB
M BCCC
A CBBB
K CBBC
! CBCB
B CBCC
, CCBB
D CCBC
E CCCB
" CCCC
!s( el n7mero
he+adecimal ,@D=
ser(a el binario
CCBB BBCC CCBC BCBB.
I el binario
BCCC CBCC CCBB BBCC
ser(a el he+adecimal
MB,@
http://www.ascii.cl/es/conversion.htm
http://es.wikipedia.or$/wiki/*istemaNbina
rio

!l$oritmos
*e$7n la 8!E: con%unto ordenado ' .inito de
operaciones 1ue permite hallar la solucin de
un problema.
4os al$oritmos& como indica su de.inicin o.icial&
son una serie de pasos 1ue permiten obtener la
solucin a un problema.
El len$ua%e al$or(tmico es a1uel 1ue implementa
una solucin terica a un problema
indicando las operaciones a reali5ar ' el orden en
el 1ue se deben e.ectuarse.

&or ejemplo en el caso de (ue nos encontremos en
casa con un )oco )undido en una l*mpara, un posible
algoritmo sera:
+1, -omprobar si .ay )ocos de repuesto
+2, En el caso de (ue las .aya, sustituir el )oco
anterior por el nue'o
+$, /i no .ay )ocos de repuesto, bajar a comprar un
nue'o a la tienda y sustituir el 'iejo por el nue'o
0os algoritmos son la base de la programaci1n, ya
(ue los programas de computadora se pueden
entender (ue son algoritmos escritos en un c1digo
especial entendible por una computadora.

-aractersticas de los algoritmos
,aracter(sticas 1ue deben de cumplir los
al$oritmos obli$atoriamente:
OPn al$oritmo debe resolver el problema
para el 1ue .ue .ormulado. 4$icamente
no sirve un al$oritmo 1ue no resuelve ese
problema. En el caso de los
pro$ramadores& a veces crean al$oritmos
1ue resuelven problemas di.erentes al
planteado.
O4os al$oritmos son independientes de la
computadora. 4os al$oritmos se escriben
para poder ser utili5ados en cual1uier
m:1uina.

20os algoritmos deben de ser precisos.
0os resultados de los c*lculos deben de ser
eactos, de manera rigurosa. 3o es '*lido un
algoritmo (ue s1lo aproime la soluci1n.
20os algoritmos deben de ser )initos. 4eben de
)inalizar en algn momento.
3o es un algoritmo '*lido a(uel (ue produce
situaciones en las (ue el algoritmo no termina.
20os algoritmos deben de poder repetirse. 4eben
de permitir su ejecuci1n las 'eces (ue .aga )alta.
3o son '*lidos los (ue tras ejecutarse una 'ez ya
no pueden 'ol'er a .acerlo por la raz1n (ue sea.

-aractersticas aconsejables para los algoritmos
5alidez. Un algoritmo es '*lido si carece de errores. Un
algoritmo puede resol'er el problema para el (ue se
plante1 y sin embargo no ser '*lido debido a (ue posee
errores
E)iciencia. Un algoritmo es e)iciente si obtiene la soluci1n
al problema en poco tiempo. 3o lo es si es lento en obtener
el resultado.
6ptimo. Un algoritmo es 1ptimo si es el m*s e)iciente
posible y no contiene errores. 0a bs(ueda de este
algoritmo es el objeti'o prioritario del programador.
3o siempre podemos garantizar (ue el algoritmo .allado
es el 1ptimo, a 'eces s.

Elementos (ue con)orman un algoritmo
2Entrada. 0os datos iniciales (ue posee el algoritmo antes
de ejecutarse.
2&roceso. 7cciones (ue lle'a a cabo el algoritmo.
2/alida. 4atos (ue obtiene )inalmente el algoritmo.
8ases en la creaci1n de algoritmos
+1, 7n*lisis. En esta etapa se determina cu*l es eactamente el
problema a resol'er. 9u: datos )orman la entrada del
algoritmo y cu*les deber*n obtenerse como salida.
+2, 4ise;o. Elaboraci1n del algoritmo.
+$, &rueba. -omprobaci1n del resultado. /e obser'a si el
algoritmo obtiene la salida esperada para todas las entradas.

Errores
2Error del usuario. Errores (ue se producen cuando el
usuario realiza algo inesperado y el programa no
reacciona apropiadamente.
2Error del programador. /on errores (ue .a cometido
el programador al generar el c1digo. 0a mayora de
errores son de este tipo.
2Errores de documentaci1n. <curren cuando la
documentaci1n del programa no es correcta y pro'oca
)allos en el manejo

2Error de entrada = salida o de comunicaciones. <curre
cuando )alla la comunicaci1n entre el programa y un
dispositi'o >se desea imprimir y no .ay papel, )alla el
teclado,...?
2Error )atal. <curre cuando el .ard@are produce una
situaci1n inesperado (ue el so)t@are no puede controlar >el
ordenador se cuelga, errores en la grabaci1n de datos,...?
2Error de ejecuci1n. <curren cuando la ejecuci1n del
programa es m*s lenta de lo pre'isto.
0a labor del programador es predecir, encontrar y
subsanar >si es posible? o al menos controlar los errores.
Una mala gesti1n de errores causa eperiencias poco gratas
al usuario de la aplicaci1n.

Pro$ramacin
4a pro$ramacin consiste en pasar
al$oritmos a al$7n len$ua%e de computadora
a .in de 1ue puedan ser entendidos Dlos
al$oritmosD por la computadora.
4a pro$ramacin se puede reali5ar
empleando diversas t;cnicas o m;todos.
Esas t;cnicas de.inen los distintos tipos de
pro$ramaciones.

&rogramaci1n estructurada A757
En esta programaci1n se utiliza una t:cnica (ue genera
programas (ue s1lo permiten utilizar tres estructuras de
control:
/ecuencias. /e con)orman de instrucciones (ue se
ejecutan en orden normal. El )lujo del programa ejecuta
la instrucci1n y pasa a ejecutar la siguiente.
7lternati'as o -ondicionales. Bnstrucciones en las (ue se
e'ala una condici1n y dependiendo si el resultado es
'erdadero o no, el )lujo del programa se dirigir* a una
instrucci1n o a otra.
Bterati'as. Bnstrucciones (ue se repiten continuamente
.asta (ue se cumple una determinada condici1n.

0a 'entaja de esta programaci1n est* en (ue es m*s
legible.
0as bases de la programaci1n estructurada )ueron
enunciadas por 3iClaus Dirdt.. /egn este cient)ico
cual(uier problema algortmico poda resol'erse con el
uso de estos tres tipos de instrucciones.
El tiempo le .a dado la raz1n y .a generado una
programaci1n (ue insta a todo programador a utilizar
s1lo instrucciones de esos tres tipos. Es lo (ue se conoce
como programaci1n estructurada.

&rogramaci1n modular
-ompleta la programaci1n anterior permitiendo la
de)inici1n de m1dulos independientes cada uno de los cuales
se encargar* de una tarea del programa. 4e este )orma el
programador se concentra en la codi)icaci1n de cada m1dulo
.aciendo m*s sencilla esta tarea. 7l )inal se deben integrar
los m1dulos para dar lugar a la aplicaci1n )inal.
El c1digo de los m1dulos puede ser in'ocado en cual(uier
parte del c1digo.Eealmente cada m1dulo se comporta como
un subprograma (ue, partir de unasdeterminadas entradas
obtienen unas salidas concretas. /u )uncionamiento no
depende del resto del programa por lo (ue es m*s )*cil
encontrar los errores y realizar elmantenimiento.

0enguajes de programaci1n
0os lenguajes de programaci1n permiten codi)icar
algoritmos en la computadora. /on una serie de
smbolos e instrucciones de acuerdo con una sintais
(ue )acilita su posterior traducci1n a c1digo entendible
para la computadora.
A757 es un lenguaje de alto ni'el por(ue su sintais se
aproima al lenguaje .umano. Face )alta so)t@are (ue
trans)orme el c1digo en el lenguaje de alto ni'el en
c1digo entendible para la computadora en un proceso
conocido como interpretaci1n o compilaci1n
>dependiendo del lenguaje?.

E%emplo de al$oritmos:
"n estudiante se encuentra en su casa
(durmiendo) y de%e ir a la universidad (a tomar
la clase de programaci&n'')
()ue de%e *acer el estudiante+
-. %ormir hasta /ue suene el despertador.
0. Mirar la hora.
1. 2ay tiempo su3iciente4
1.-. &i5 entonces
1.-.-. 6a7arse.
1.-.0. 8estirse.
1.-.1. %esayunar.
1.0. 9o5 entonces
1.0.-. 8estirse.

:. Lavarse la boca.
;. %espedirse de la mam< y el pap<.
=. 2ay tiempo su3iciente4
=.-. &i5 entonces
=.-.-. "aminar a la parada.
=.0. 9o5 entonces
=.0.-. "orrer a a parada.
>. 2asta /ue pase un micro para la
universidad hacer+
>.-. Esperar el microbus
>.0. 8er a las dem<s personas /ue esperan el
microbus.
,.Tomar el bus.

?. Mientras /ue no llegue a la universidad
hacer+
?.-. &eguir en el microbus.
?.0. Pelear mentalmente con el conductor.
-@. Timbrar.
--. 6aAarse.
-0. Entrar a la universidad.
-1. "aminar hasta llegar al saln donde se
dicta su curso de programacin.
-:. Ingresar al saln.

Pseudo "digo
leer '5 65 "
si 'B6
si 'B"
Mayor '
sino
Mayor "
3inCsi
sino
si 6B"
Mayor 6
sino
Mayor "
3inCsi
3inCsi
escribir Mayor

Proceso de escritura de pro$ramas
*cribir programa
en
el editor de te"to
%ompilar el
programa
&uente
,ay
erroreD
*jecutar
el programa
si
no

Vamos a
pro$ramarQQQ


H)4! EH R#!V!S

En nuestra consola de linu+& escribimos:

Ee'izando a )ondo nuestro primer programa
Este e%emplo necesita una pe1ue9a e+plicacin.
Godo en #ava est: dentro de una clase& inclu'endo
pro$ramas autnomos.
El cdi$o .uente se $uarda en archivos con el mismo
nombre 1ue la clase 1ue contienen ' con e+tensin
R.%avaS. Pna clase 2class3 declarada p7blica 2public3 debe
se$uir este convenio. En el e%emplo anterior& la clase es
Hola& por lo 1ue el cdi$o .uente debe $uardarse en el
.ichero RHola.%avaS
El compilador $enera un archivo de clase 2con e+tensin
R.classS3 por cada una de las clases de.inidas en el
archivo .uente. 4os pro$ramas 1ue se e%ecutan de .orma
independiente ' autnoma& deben contener el m;todo
Smain23S.

4a palabra reservada SvoidS indica 1ue el m;todo main no
devuelve nada.
El m;todo main debe aceptar un arra' de ob%etos tipo
*trin$. Por acuerdo se re.erencia como Sar$sS& aun1ue
puede emplearse cual1uier otro identi.icador.
4a palabra reservada SstaticS indica 1ue el m;todo es un
m;todo de clase& asociado a la clase en ve5 de una
instancias de la misma. El m;todo main debe ser est:tico o
TTde claseTT.
4a palabra reservada public si$ni.ica 1ue un m;todo puede
ser llamado desde otras clases& o 1ue la clase puede ser
usada por clases .uera de la %erar1u(a de la propia clase.
)tros tipos de acceso son SprivateS o SprotectedS.

.a utilidad de imprein @en pantalla por ejemploB &orma
parte de la biblioteca et'ndar de -a(a: la clae
EFFGytemFFF de&ine un campo p/blico et'tico llamado
EFFoutFFF. *l objeto out e una intancia de EFFHrintGtreamFFF#
!ue o&rece el m3todo EFFprintln @GtringBFFF para (olcar dato
en la pantalla @la alida et'ndarB.
*'stem is one o. #avaUs standard classes. )ne o. the
static member variables in this class is named out. *ince
this variable is contained in the class *'stem& its .ull
name DD which 'ou have to use to re.er to it in 'our
pro$rams DD is *'stem.out. Ghe variable *'stem.out
re.ers to an ob%ect& and that ob%ect in turn contains a
subroutine named print. Ghe compound identi.ier
*'stem.out.print re.ers to the subroutine print in the
ob%ect out in the class *'stem.

*'stem.out is an ob%ect o. the class Print*tream.
Print*tream is another class that is a standard part o.
#ava. !n' ob%ect o. t'pe Print*tream is a destination to
which in.ormation can be printedJ an' ob%ect o. t'pe
Print*tream has a print subroutine that can be used to
send in.ormation to that destination. Ghe ob%ect
*'stem.out is %ust one possible destination& and
*'stem.out.print is the subroutine that sends
in.ormation to that particular destination. )ther ob%ects
o. t'pe Print*tream mi$ht send in.ormation to other
destinations such as .iles or across a network to other
computers. Ghis is ob%ectDoriented pro$rammin$: 0an'
di..erent thin$s which have somethin$ in common DD the'
can all be used as destinations .or in.ormation DD can all
be used in the same wa' DD throu$h a print subroutine.
Introduction to Pro$rammin$ Psin$ #ava& *i+th Edition
David #. Eck

E%emplo ?
,aremo una lectura del teclado.
Importaremo la clae Gcanner# e una
clae muy util# pue no permite leer
dede el teclado o dede un arc4i(o.
.a linea para importarla al proyecto e :
import %ava.util.*cannerJ
Dentro de el m;todo main de nuestra clase.
,reamos la instancia de *canner con la
si$uiente linea:
*canner tecladoEnew *canner2*'stem.in3J


Gcanner cuenta con metodo !ue reultaran utile# entre
ello etan:
teclado.ne"t@B
II lee la iguiente linea# y lo almacena como cadena de
caractere
teclado.ne"tInt@BJ IIlee el iguiente numero# lo almacena
como int en cao de !ue no e a int# mandara un menaje
de error:
teclado.ne"tDouble@BJ II .ee el iguiente numero y lo
almacena en un Double# i el dato !ue e almacena no e
Double# manda menaje de error

5ariables
*on combinaciones de letras ' n7meros 1ue
permiten almacenar cual1uier valor en la
memoria del ordenador.
Estos valores los podremos utili5ar en el
pro$rama haciendo re.erencia al nombre de
la variable.
!l .inali5ar la e%ecucin del pro$rama las
variables se borran de los espacios
reservados en la memoria.

Para 1ue sirve ' 1ue podemos hacer con #ava
#ava esta dividido en cuatro principales ramas:
#8E 2Entorno de e%ecucion3
#DV 2Entorno de desarrollo ' testeo3
#EE 2Entorno para crear aplicaciones
empresariales 1ue se usen tecnolo$ia de
servidores3
#0E 2Entorno de desarrollo para moviles3

!plicaciones autnomas:
Godo en #ava est: dentro de una clase& inclu'endo
pro$ramas autnomos.
!pplets:
4as applets de #ava son pro$ramas incrustados en otras
aplicaciones& normalmente una p:$ina Web 1ue se muestra
en un nave$ador.
*ervlets:
4os servlets son componentes de la parte del servidor de
#ava EE& encar$ados de $enerar respuestas a las peticiones
recibidas de los clientes.

Aplicacione con (entana:
GKing e la librer$a para la inter&a) gr'&ica de uuario a(an)ada
de la plata&orma -a(a G*.
-GH @-a(a Ger(er HageB:
p'gina !ue e compilan din'micamente @o e preCcompilan
pre(iamente a u ditribucinB de modo !ue el cdigo !ue e
conigue una (entaja en rendimiento ubtancial &rente a
muc4o lenguaje interpretado.
*n eto principale uo# tambien e uan AHIF de -a(a o
e"tenione# la cuale dotan# aumentan o mejoran alguna
&uncionalidade.*ta e"tenione de -a(a et'n en pa!uete
!ue cuelgan de la ra$) ja(a": ja(a".L. Mo e incluyen en la -DN o
el -;*. Alguna de la e"tenione y ar!uitectura ligada
etrec4amente al lenguaje -a(a como on:

#DB, 2#ava Database ,onnectivit'3 para conectarse
con bases de datos como )8!,4E
#*" 2#ava*erver "aces3
#ava @D 2Pna !PI de alto nivel para pro$ramacin
$r:.ica en @D3
#HI 2#ava Hative Inter.ace3
#*P 2#ava*erver Pa$es3
#0" 2#ava 0edia "ramework3
Beans
E#B 2Enterprise #ava Beans3


4a 0:1uina Virtual #ava
El len$ua%e #ava es a la ve5 compilado e interpretado.
,on el compilador se convierte el cdi$o .uente 1ue
reside en archivos cu'a e+tensin es .%ava& a un
con%unto de instrucciones 1ue recibe el nombre de
b'tecodes 1ue se $uardan en un archivo cu'a e+tensin
es .class. Estas instrucciones son independientes del
tipo de computadora. El int;rprete e%ecuta cada una de
estas instrucciones en una computadora espec(.ica
2Windows& 0acintosh& etc3. *olamente es necesario& por
tanto& compilar una ve5 el pro$rama& pero se interpreta
cada ve5 1ue se e%ecuta.

-a(a e un lenguaje de programacin baado en (irtuali)acin. .o anterior
igni&ica !ue el cdigo !ue e ecribe en -a(a puede er ejecutado in
importar el 4ardKare donde e encuentre @-a(a e ejecuta e"actamente
igual en un celular o en un er(idor... el cdigo no cambiaB.
-OP igni&ica Q-a(a Oirtual Pac4ine C P'!uina Oirtual de -a(aQ. *te
programa $ e ditinto en cada 4ardKare @a4ora $: la -OP de un celular
e muy ditinta a la -OP en un er(idorB y (ar$a eg/n el 4ardKare#
itema operati(o# etc3tera. Hero u miin e la mima: ejecutar cdigo
ja(a.
De eta &orma# cuando uno ecribe un programa en -a(a# el QcompiladorQ
con(ierte dic4o cdigo en cdigo binario @QbytecodeQ lo llaman. Un arc4i(o
Q.claQ generado por un compilador -a(a e un arc4i(o QbytecodeQB m'
dic4o cdigo no e cdigo m'!uina directamente @no puede er ejecutado
por un computador directamenteB ino e cdigo Qlito para ejecutarQ.
-I2 @-utCinC2imeB e el compilador !ue toma QbytecodeQ y lo con(ierte en
cdigo m'!uina# para ejecutarlo. *to lo 4ace en Qtiempo realQ. Hor
upueto# cada -I2 e ditinto en cada computador# y 3to 4ace parte de la
-OP# a$ !ue en realidad el programador nunca conoce -I2...

%ada int3rprete -a(a e una implementacin de la P'!uina Oirtual
-a(a @-OPB. .o bytecode poibilitan el objeti(o de QKrite once#
run anyK4ereQ# de ecribir el programa una (e) y !ue e pueda
correr en cual!uier plata&orma !ue diponga de una
implementacin de la -OP. Hor ejemplo# el mimo programa -a(a
puede correr en RindoK# Golari# Pac OG S# .inu".

-a(a e# por tanto# algo m' !ue un lenguaje# ya !ue la
palabra -a(a e re&iere a do coa ineparable: el lenguaje
!ue no ir(e para crear programa y la P'!uina Oirtual
-a(a !ue ir(e para ejecutarlo. %omo (emo en la &igura# el
AHI de -a(a y la P'!uina Oirtual -a(a &orman una capa
intermedia @-a(a plat&ormB !ue a$la el programa -a(a de la
epeci&icidade del 4ardKare @4ardKareCbaed plat&ormB.

.a P'!uina Oirtual -a(a @-OPB e el entorno en el !ue e ejecutan
lo programa -a(a# u miin principal e la de garanti)ar la
portabilidad de la aplicacione -a(a. De&ine eencialmente un
ordenador abtracto y epeci&ica la intruccione @bytecodeB !ue
ete ordenador puede ejecutar. *l int3rprete -a(a epec$&ico
ejecuta la intruccione !ue e guardan en lo arc4i(o cuya
e"tenin e .cla. .a tarea principale de la -OP on la
iguiente:
;eer(ar epacio en memoria para lo objeto creado
.iberar la memoria no uada @garbage collectionB.
Aignar (ariable a regitro y pila
.lamar al itema 4u3ped para cierta &uncione# como lo
acceo a lo dipoiti(o. Oigilar el cumplimiento de la norma
de eguridad de la aplicacione -a(a

*ta /ltima tarea# e una de la m' importante !ue reali)a la -OP.
Adem'# la propia epeci&icacione del lenguaje -a(a contribuyen
e"traordinariamente a ete objeti(o:
.a re&erencia a array on (eri&icada en el momento de la
ejecucin del programa
Mo 4ay manera de manipular de &orma directa lo puntero
.a -OP getiona autom'ticamente el uo de la memoria# de modo
!ue no !ueden 4ueco.
Mo e permiten reali)ar cierta con(erione @catingB entre ditinto
tipo de dato.

-a(a e un lenguaje de programacin orientado a objeto puro#
en el entido de !ue no 4ay ninguna (ariable# &uncin o
contante !ue no et3 dentro de una clae. Ge accede a lo
miembro dato y la &uncione miembro a tra(3 de lo objeto y
de la clae. Hor ra)one de e&iciencia# e 4an coner(ado lo
tipo b'ico de dato# int# &loat# double# c4ar# etc# imilare a
lo del lenguaje %I%11.
.o tipo de programa m' comune !ue e pueden 4acer con
-a(a on lo applet @e ejecutan en el na(egador de la
m'!uina clienteB y la aplicacione @programa !ue e ejecutan
directamente en la -OPB. Otro tipo epecial de programa e
denomina er(let !ue e imilar a lo applet pero e ejecutan
en lo er(idore -a(a.
.a AHI de -a(a e muy rica# et' &ormada un conjunto de
pa!uete de clae !ue le proporcionan una gran &uncionalidad.

El n7cleo de la !PI viene con cada una de las implementaciones de la
#V0:
4o esencial: tipos de datos& clases ' ob%etos& arra's& cadenas de
caracteres 2strin$s3& subprocesos 2threads3& entrada/salida& propiedades
del sistema& etc.
!pplets
0ane%o de la red 2networkin$3
Internacionali5acin
*e$uridad
,omponentes 2#avaBeans3
Persistencia 2)b%ect seriali5ation3
,one+in a bases de datos 2#DB,3
#ava proporciona tambi;n e+tensiones& por e%emplo de.ine un !PI para
@D& para los servidores& tele.on(a& reconocimiento de vo5& etc.

Gipos primitivos de #ava
4lamamos tipos primitivos de un len$ua%e cuando hablamos de tipos de
datos 'a de.inidos en el len$ua%e ' de los 1ue se puede partir para la
construccin de e+presiones o tipos de compuestos.

*ecuencias de escape
Tn neKline. Galto de l$nea
Tt tab
Tb bacUpace# borra a la i)!uierda
Tr return# repreenta el car'cter epecial
*MOIO
T& &orm &eed
TT e el car'cter bacUla4
TV comilla
TQ comilla

Ejemplo 4eclaraci1n de 5ariables
4eclaraci1n de una 'ariable como un entero
int 'ariable1G
int 'ariable2G
int 'ariable$G
4eclaraci1n de 'ariables y asignaci1n de 'alores en una lnea
int 'ariable1 = 1000, 'ariable2 = 2, 'ariable$G
4eclaraci1n de 'ariables tipo teto
c.ar 'ariable G
-on tama;o )ijo de caracteres:
c.ar 'ariable+1!,G
-on asignaci1n de 'alor
c.ar 'ariable = HaH G

Você também pode gostar