Sie sind auf Seite 1von 6

Principales Caractersticas de JAVA.

Java es un lenguaje de programacin de propsito general orientado a


objetos desarrollado por Sun Microsystems. Tambin se puede decir !ue
Java es una tecnologa !ue no slo se reduce al lenguaje sino !ue adem"s
provee de una m"!uina virtual Java !ue permite ejecutar cdigo compilado
Java# sea cual sea la plata$orma !ue e%ista por debajo& plata$orma tanto
'ard(are# como so$t(are )el sistema operativo !ue soporte ese 'ard(are*.
+l apoyo a esta tecnologa viene dado por la gran cantidad de $abricantes
!ue apoyan esta especi,cacin de m"!uina virtual.
+l lenguaje se inspira en otros lenguajes-
sentencias comunes de C y C.. )sinta%is parecida a dic'os lenguajes*
concurrencia parecida a la de Mesa )un lenguaje de investigacin de /ero%*
interrupciones parecidas a las de Modula01
tratamiento de enlace din"mico de cdigo nuevo parecido al de 2isp
de,niciones de inter$aces parecidas a las de 3bjective C
gestin de almacenamiento autom"tico parecida a la de 2isp
Caractersticas.
Sun describe al lenguaje Java de la siguiente manera-
Simple
3rientado a 3bjetos
Tipado est"ticamente
4istribuido
5nterpretado
6obusto
Seguro
de Ar!uitectura 7eutral
Multi'ilo
con 6ecolector de basura )8arbage Collector*
Portable
de Alto 6endimiento- sobre todo con la aparicin de 'ard(are especiali9ado
y mejor so$t(are
4in"mico
Sun admite !ue lo dic'o anteriormente son un montn de 'alagos por su
parte# pero el 'ec'o es !ue todas esas caratersticas pueden servir para
describir el lenguaje. Todas ellas son importantes# sin embargo cabe
destacar tres# !ue son las !ue 'an propocionado tanto inters por el
lenguaje- la portabilidad# el 'ec'o de !ue sea de ar!uitectura neutral y su
simplicidad. Java o$rece toda la $uncionalidad de los lenguajes potentes#
pero sin las caractersticas menos usadas y m"s con$usas de stos.
Java elimina muc'as de las caractersticas de otros lenguajes como C..#
para mantener reducidas especi,caciones del lenguaje y a:adir
caractersticas muy ;tiles como el recolector de basura. 7o es necesario
preocuparse de liberar memoria# el recolector se encarga de eliminar la
memoria asignada. 8racias al recolector# slo te tienes !ue preocupar de
crear los objetos relevantes de tu sistema ya !ue l se encarga de
destruirlos en caso de no ser reutili9ados.
Java reduce en un <=> los errores m"s comunes de programacin con
lenguajes como C y C... +ntre las caractersticas m"s ?indeseables? de C.
. !ue se 'an evitado en el dise:o de Java destacan- ,c'eros de cabecera#
aritmtica de punteros# sobrecarga de operadores# estructuras# uniones#
conversin implcita de tipos# clases base virtuales# pre0procesador# etc.
algunas de las caractersticas m"s interesantes-
Java es interpretado.
+strictamente 'ablando# Java es interpretado# aun!ue en realidad Java es
tanto interpretado como compilado. 4e 'ec'o# slo cerca del @=> del
cdigo Java es interpretado por la JVM )Java Virtual Mac'ine*# pero es un
@=> muy importante. Tanto la seguridad de Java como su 'abilidad para ser
ejecutado en m;ltiples plata$ormas se deben a !ue los pasos ,nales de la
compilacin se manejan localmente.
+%isten ciertos entornos !ue para mejorar el rendimiento usan un pe!ue:o
compilador para la ;ltima $ase de compilacin# de $orma !ue una ve9 !ue se
tenga el bytecode# en ve9 de interpretarlo se compila generando cdigo
nativo para esa plata$orma y se ejecuta# pero esta compilacin se reali9a
cada ve9 !ue se !uiera ejecutar el programa. +l ;nico cdigo realmente
independiente es el bytecode. +ste tipo de compiladores se conocen como
AJust 5n TimeA o J5T. Sin embargo# el bytecode no se completa 'asta !ue se
junta con un entorno de ejecucin# !ue en este caso ser" la m"!uina virtual
Java de la plata$orma en la !ue estemos. Bn bro(ser puede proveer dic'a
plata$orma desde el punto de vista del sistema operativo.
Inconvenientes.
+l bro(ser tiene !ue interpretar los ,c'eros de clases antes de !ue se
ejecuten. Btili9ando un lenguaje de programacin tradicional como puede
ser el C..# el ordenador puede ejecutar directamente el cdigo generado.
Sin embargo# debido a la interpretacin !ue el bro(ser tiene !ue 'acer de
los ,c'eros# los programas escritos en Java tienden a ejecutarse bastante
m"s lentos !ue con otros lenguajes de programacin )p.e. C..*.
CPor !u se considera un rasgo positivo el 'ec'o de combinar la compilacin
y la interpretacinD
Eacilita la seguridad y la estabilidad.
6educe los problemas de versiones.
+l 'ec'o de !ue la ;ltima $ase de la compilacin se lleve a cabo por un
dispositivo de una determinada plata$orma# releva al programador de la
responsabilidad del mantenimiento de varios $uentes en varias plata$ormas.
2a interpretacin tambin admite !ue los datos se incorporen en tiempo de
ejecucin# de a' el comportamiento din"mico !ue tambin caracteri9a a
Java.
La mquina virtual Java.
Para establecer Java como parte integral de la red# el compilador Java
compila su cdigo a un ,c'ero objeto de $ormato independiente de la
ar!uitectura de la m"!uina en !ue se ejecutar". Cual!uier m"!uina !ue
tenga el sistema de ejecucin )runtime* puede ejecutar ese cdigo objeto#
sin importar en modo alguno la m"!uina en !ue 'a sido generado.
+l cdigo $uente Java se ?compila? a un cdigo de bytes de alto nivel
independiente de la m"!uina. +ste cdigo )bytecode* est" dise:ado para
ejecutarse en una m"!uina 'ipottica !ue es implementada por un sistema
runtime# !ue s es dependiente de la m"!uina. Por lo tanto# lo !ue
verdaderamente es dependiente del sistema es la M"!uina Virtual Java
)JVM* y las libreras $undamentales# !ue tambin nos permitiran acceder
directamente al 'ard(are de la m"!uina. +l compilador Java genera
bytecode !ue ser"n ejecutables donde!uiera !ue e%ista una JVM.
Orientacin a objetos.
Java implementa la tecnologa b"sica de C.. con algunas mejoras y elimina
algunas cosas para mantener el objetivo de la simplicidad del lenguaje. Java
trabaja con sus datos como objetos y con inter$aces a esos objetos. Soporta
las tres caractersticas propias del paradigma de la orientacin a objetos-
encapsulacin# enlace din"mico y polimor,smo. 2os modelos de objetos son
llamados# como en C..# clases y sus copias# instancias. +stas instancias#
como en C..# necesitan ser construidas y destruidas en espacios de
memoria.
Java incorpora $uncionalidades ine%istentes en C.. como por ejemplo# la
resolucin din"mica de mtodos. +sta caracterstica deriva del lenguaje
3bjectiveC. +n C.. se suele trabajar con libreras din"micas )422s* !ue
obligan a recompilar la aplicacin cuando se retocan las $unciones !ue se
encuentran en su interior. Java resuelve este inconveniente mediante una
inter$a9 espec,ca llamada 6TT5 )6un Time Type 5denti,cation* !ue de,ne la
interaccin entre objetos e%cluyendo variables de instancias o
implementacin de mtodos. 2as clases en Java tienen una representacin
en el runtime !ue permite a los programadores interrogar por el tipo de
clase y enla9ar din"micamente la clase con el resultado de la b;s!ueda.
+n Java casi todo son objetos. 2a mayora de los lenguajes orientados a
objetos permiten la 'erencia m;ltiple# lo !ue puede llevar a con$usiones yFo
complicaciones innecesarias. Java no permite 'erencia m;ltiple# slo
soporta ?Gerencia simple? en una estructura csmica )todas las clases Java
derivan jer"r!uicamente de la clase ?3bject?*. 2a 'erencia simple signi,ca
!ue en cada momento cada clase slo 'ereda de otra clase. +ste tipo de
'erencia evita problemas del tipo de 'erencias m;ltiples contradictorias o
e%clusivas entre s.
Java tambin permite la creacin de clases totalmente abstractas# a las !ue
llama inter$aces con caractersticas similares a los inter$aces 542 de C36HA.
2as inter$aces permiten de,nir mtodos !ue pueden compartir con varias
clases# sin tener en cuenta cmo las otras manejan los mtodos.
Seguridad en JAA.
+l cdigo Java pasa muc'os tests antes de ejecutarse en una m"!uina. +l
cdigo se pasa a travs de un veri,cador de bytecodes !ue comprueba el
$ormato de los $ragmentos de cdigo y aplica un probador de teoremas para
detectar $ragmentos de cdigo ilegal 0cdigo !ue $alsea punteros# viola
derec'os de acceso sobre objetos o intenta cambiar el tipo o clase de un
objeto0.
Si los bytecode pasan la veri,cacin sin generar ning;n mensaje de error#
entonces sabemos !ue-
+l cdigo no produce desbordamiento de operandos en la pila
+l tipo de los par"metres de todos los cdigos de operacin son conocidos y
correctos
7o 'a ocurrido ninguna conversin ilegal de datos# tal como convertir
enteros en puntero
+l acceso a los campos de un objeto se sabe !ue es legal- public# private#
protected
7o 'ay nung;n intento de violar las reglas de acceso y seguridad
establecidas
+vitamos saltos a mitad de una instruccin# o direccionamientos de
memoria de un objeto $uera de los lmites del mismo.
+l cargador de clases tambin ayuda a Java a mantener su seguridad#
separando el espacio de nombres del sistema de ,c'eros local# del de los
recursos procedentes de la red. +sto limita cual!uier aplicacin del tipo
Caballo de Troya# ya !ue las clases se buscan primero entre las locales y
luego entre las procedentes del e%terior.
!e"nicin de A#I.
AP5 son las iniciales de Application Programmer 5nter$ace. Pensemoslo
siguiente. Por muy completo !ue sea un lenguaje en cuanto a estructuras#
tipos de datos y operadores# para !ue sea $uncional necesita 'acer +FS
)procesar ,c'eros# pedir datos por teclado# leer el ratn o visuali9ar
ventanas*. 2a +FS es dependiente del Sistema 3perativo. 2a AP5 es una capa
de abstraccin !ue se pone encima del S.3. para permitir 'acer entradas y
salidas de una manera estandari9ada. Se trata de una especi,cacin de una
librera so$t(are# detallando las llamadas a $unciones# los argumentos# y los
resultados !ue obtienes al utili9arlas. Bna AP5 slo e%iste en papel y no es
m"s !ue dise:o. 4e 'ec'o# para usar una AP5 necesitas una librera !ue
e%ista y !ue implemente esa AP5.
Clasi"cacin de las A#Is
2as AP5s est"n clasi,cadas como AP5 Core )7;cleo* o como Standard
+%tension )+%tensiones est"ndar*. Bna AP5 Core es a!ulla !ue viene
incluida en el sistema J4I# es parte de la implementacin est"ndar de Sun y
cual!uier sistema Java tiene !ue ser capa9 de soportarlas. Bna e%tensin
est"ndar es una librera !ue los sistemas Java no tienen por !u soportar#
pero de 'acerlo# lo tiene !ue 'acer siguiendo e%actamente la $orma
est"ndar.
$uente%
&ttp%''personales.upv.es'rmartin'cursoJava'Java'Introduccion'#rincip
alesCaracteristicas.&tm

Das könnte Ihnen auch gefallen