2. AprendiendoJava y Programación
Orientada a Objetos
La máquina virtual de Java se denominaal procesadoro entornovirtual que se utilizapara
interpretar losbytecodesde losbinarios de Java, ya que como sabemosJava se hizo para correr
en cualquierplataforma sin recompilarlos binarios.De esta manera este entorno virtual se
puede obtenerpara nuestraarquitectura y sistemaoperativo sinmodificacionesa nuestro
programa original (estono es cierto si utilizamosuna mala dinámica de programación).
Podemosentoncesgenerarun binario y este podrá Correr enLinux, MAC OSX, FreeBSD,Solaris,
o Windows,y para las arquitecturas disponiblesenlasque podamos obtenerla JVM,como ser
AMD64, SPARC, PIV,etc. etc. La máquina virtual de Java ha tenidola característica de ser un
entorno de ejecuciónpesadoentérminos de recursos del procesador y memoria, que por medio
de una administraciónrigurosa del sistemaoperativoestos podrían llegara serinsuficientesy
las aplicacionesejecutarse de manera muy lenta. Esto no es ciertoen la actualidad, existen
alternativas a la JVM provista por Sun Microsystemsque permitenuna velocidadcomparable a
una aplicación compilada enC++ nativa en la arquitectura, un ejemplode estoes Kaffe,Kaffe
(www.kaffe.org) esuna máquina de Java OpenSource que puede compilarse sin mayores
modificacionesennuestraarquitectura necesariay correrá increíblementemásrápida que la
distribuciónestándar de JVM de Sun Microsystemsy consumirá muchos menosrecursos.
COMANDO DESCRIPCION
JAVA Inicia el entorno de ejecuciónrecibiendocomoargumento el nombre del binario
ejecutable enformato ByteCodessinla extensiónde archivo .class que identifica
de manera visual un binario java. Este comando es parte de JDK y JRE
JAVAC Inicia el compilador Java recibiendocomo argumentotodos los archivos de código
fuente cuya terminaciónes .java incluidadicha extensión.Este comando no es
parte de JRE.
JAIR Por mediode este comando iniciamosel empaquetador de clases y archivos de
Java que nos permitenfabricar un único archivo contenedorde nuestras
aplicaciones,multimediaygráficos. Este comando es parte sólode JDK.
3. Salida por pantalla de los comandos del JDK, JRE
Si abrimos una consola de comandos, y ejecutamosestoscomandos podremosdetectar la
versióndel entorno de ejecución y las órdenesde entrada que estossoportan.
En Linux, podemosabrir una XTerm, buscandoel menúejecutar y escribiendoxterm.En
Windows,podemoshacerloabriendoel diálogoejecutary escribiendocommando cmd
dependiendosi el sistemaesbasado en NT o 9X.
gus@gusgus ~ $ java
Usage:java [-options]class[args...]
(to execute a class)
or java [-options]-jar jarfile [args...]
(to execute a jar file)
where options include:
-clientto selectthe "client" VM
-serverto selectthe "server" VM
-hotspot isa synonym for the "client" VM[deprecated]
The defaultVM is client.
-cp <class search path of directoriesand zip/jar files>
-classpath <class search path of directoriesandzip/jar files>
A : separatedlist of directories,JARarchives,
and ZIP archivesto search for class files.
-D<name>=<value>
set a systemproperty
-verbose[:class|gc|jni]
enable verbose output
-versionprint product versionand exit
5. Nota: Javaprovee una documentación completaen inglésde toda labibliotecaincluidaenla
versiónde JRE o JDK, unabuena prácticaes no utilizarlasmás avanzadasycomplejas
funcionesde laAPI (ApplicationProgramingInterface) yaque al querer iniciarnuestro
programaen una versiónanterior que no tenga unabibliotecaactualizada,sepueden producir
problemasde métodos faltantes.
COMANDOSDE JAVA
1. Xdebug
Permite que el jdb(depuradorde códigoJava -Javadebugger-) se
conecte a si mismoa la sesiónde java.Cuandose utilizaestaopción,
java muestraunacontraseña,lacual ha de ser introducidacuando
comienzalasesiónde depuración.
classpathpath
Especificael caminoque javausapara buscarlas clases.Sobreescribe
el establecidopordefectoolavariable de entornoCLASSPATHsi ésta
ha sidoestablecidaanteriormente.Losdirectoriosenlavariable
CLASSPATHdebenestarseparadosconpuntoy coma (;).El formato
general parael path es: .;<tu_camino>
Por ejemplo:
.;C:usersafqclasses;C:jdkclasses
-help Imprime unmensaje indicandolaformade lallamada.
-jarfichero_jarEjecutaun programaJava encapsuladoenunfichero
JAR.En lugar de referenciarloenlalíneade comandos,javacoge la
clase inicial que el ficherojarindicaenlacabeceraMain-Class.Por
ejemplo,si el puntode entradaal programaes
COM.MiEmpresa.MiPaquete.MiClase.main(),loque apareceríaen
estaentradasería: Main-Class:COM.MiEmpresa.MiPaquete.MiClase
Xmx x Establece el tamañomáximode lamemoriadel recolectorde basura
(garbage collector) ax.El valorpor defectoes16 megabytesde
memoria.x debe sermayoro igual a 1000 bytes.Pordefecto,x se
toma enbytes,perose puede especificarenkilobytesomegabytes
poniendodespuésde x laletra"k"para kilobytesy"m"para
6. megabytes.
Xmsx Establece el tamañode iniciode lamemoriadel recolectorde basura
(garbage collector) ax.El valorpor defectoes1 megabyte.x debe ser
mayor que 1000 bytes.Pordefecto,x se tomaenbytes,perose puede
especificarenkilobytesomegabytesponiendodespuésde x laletra
"k" para kilobytesy"m"para megabytes.
Xnoasyncgc Desactivael recolectorasíncronode basura.Cuandoel recolectorestá
activadono actúa a menosque éste seaexplícitamente llamadooel
programa corra fuerade memoria.Normalmenteel colectorde
basura (garbage collector) se ejecutacomounatarea asíncrona en
paraleloconotras tareas.
Xnoclassgc Desactivael recolectorde basurade clasesJava.Por defecto,el
intérprete JavareclamaespacioparaclasesJava,aunque nose usen,
durante la recolecciónde basura.
. Xprof Arranca Java con el profileractivado.Pordefecto,losresultadosde la
comprobaciónde laejecucióndel programaJavase guardan en
./java.prof.Estaopciónsolamentefuncionaconjava_g.
Xprof:fichero
Arranca Java con el profileractivado.Estaformapermite que se
especifique unficheroparaguardar losresultadosdel estudiode la
ejecucióndel programaJava,diferente al utilizadopordefecto.Esta
opciónsolamente funcionaconjava_g.
. Xssx Cada hilode ejecuciónJavatiene dospilas:unapara el códigoJavay
otra para el códigoC. Esta opciónestablece el tamañomáximode la
pilamediante el valorx que puede serusadaporel códigoC enun
hilo.Todosloshilosque resultande laejecucióndelprogramapasado
a java tienenunapilaCde tamañox.La unidadpordefectoparax son
bytes.x debe sermayoro igual a 1000 bytes.Se puede modificarel
significadode x añadiendolaletra"k"para kilobytesolaletra"m"
para megabytes.El tamañopor defectode lapilaes128 kilobytes("-
ss 128k").
7. Xossx Cada hilode ejecuciónJavatiene dospilas:unapara el códigoJavay
otra para el códigoC. Esta opciónestablece el tamañomáximode la
pilamediante el valorx que puede serusadaporel códigoJava enun
hilode ejecución.Todosloshilosque resultan de laejecucióndel
programa pasadoa java tienenunapilaJavade tamañox. La unidad
por defectoparax sonbytes.x debe sermayor o igual 1000 bytes.Se
puede modificarel significadode x añadiendolaletra"k"para
kilobytesolaletra"m"para megabytes.El tamañopordefectode la
pilaes400 kilobytes("-oss400k").
x Imprime ayudasobre lasopcionesnoestándar
. v, -verbose Hace que java imprimaunmensaje enlasalidaestándarcadavezque
se carga el archivode una clase.
Xverify Ejecutael verificadorde todoel código
Xverifyremote Ejecutael verificadorde todoel códigoque escargado enel sistemaa
travésde un cargador de clases.verifyremote esel valorpordefectopara
el intérprete.
verbosejni Imprime mensajesrelacionadosconJNI,incluyendoinformaciónsobre los
métodosnativosque hansidolinkadosyavisossobre creaciónde excesivas
referenciaslocales.
. verbosegc Hace que el recolectorde basuraimprimamensajescadavezque
liberamemoria
version Imprime informaciónsobre laversión.
. Dpropiedad=valor Redefineel valorde unapropiedad.propiedadesel nombre de la
propiedadcuyovalorse quiere cambiaryvalores valora ser
asignado.Porejemplo,lalíneasiguiente
%java-
Dawt.button.color=green
...
Establece el valorde lapropiedadawt.button.colora"green"
(verde).javaaceptacualquiernúmerode opciones -Denlalíneade
comandos.
BACK Retornara lapantallalógicaanterior
8. CANCEL Respuestanegativaalapantalla actual
EXIT Salirde la aplicación
HELP Requisitode ayuda
ITEM El comandoesespecíficoalos elementosde unChoice ode una
pantalla
OK Respuestapositivaala pantallaactual.
SCREEN Comandoespecíficode lapantallaactual,definidoporla
aplicación.
STOP Detiene unprocesoencurso
CharAt Permite acceder a los caracteres individuales de una
cadena.
toUpperCase() Función de la clase útil que convierte las letras de una
cadena en mayúsculas.
replaceAll() Método que sirve para remplazar todas las subcadenas
de una cadena por una cadena de remplazo dada.
Nota 1: si lo ponemos así como está, en aquellos casos
donde yo quiera remplazar palabras como “ej” por
“ejemplo”, si encuentra una cadena como “ejercicio” la
va a remplazar por “ejemploercicio” entonces para
simbolizar que es sólo la subcadena “ej” lo que
hacemos es delimitarla con b.
SimpleDateFormat Clase del paquete java.text que convierte fechas a
formatos más simples
9. equals() Devuelve true si dos objetos String tienen la misma
secuencia exacta de caracteres.
Formatter Clase de formateo de propósito general
This Apunta al objeto en cuestión. Si yo llamo un método con
un objeto f1 y quiero invocar otro método de f1 desde
allí, lo que hago es usar this.métodoF1()
Scanner Para poder ingresar datos por teclado a través de la
consola
Try-catch Bloque para manejar excepciones.
Nota 1: todo lo que yo ponga en try se va a ejecutar en el
curso normal del programa, sólo va a ejecutarse catch
cuando try genere un error.
HERENCIA En el ejemplo, la clase “Gato” es una subclase de
“Mascota”
- ver libro capítulo 13 -
(int) X
(char) 88
Permite visualizar el valor ASCII de X.