librerías de java

135
Librerías de Java LSCA Alma Delia Otero Escobar

Upload: universidad-veracruzana

Post on 15-Dec-2014

113.509 views

Category:

Technology


3 download

DESCRIPTION

Esta presentación habla acerca de las librerías de Java

TRANSCRIPT

Page 1: LibreríAs De Java

Librerías de Java

LSCA Alma Delia Otero Escobar

Page 2: LibreríAs De Java

Existen diferentes librerías en Java, entre las cuales se encuentran:

java.lang

Colección de tipos básicos siempre importados a cualquier unidad decompilación. Aquí están las declaraciones de objetos, clases, threads,excepciones, wrappers de los tipos de datos primitivos y otras clasesfundamentales.

java.io

Archivos de stream y acceso aleatorio. Librería estándar de entrada ysalida.

Page 3: LibreríAs De Java

java.netLibrería que apoya interfaces con telnet y URLs.

java.utilClases como diccionarios, tabla de hash, stack, técnicas de codificación y decodificación, hora, fecha, etcétera.

java.awtAbstract Windowing Toolkit que proporciona una capa abstracta que permite llevar una aplicación en Java de un sistema de ventanas a otro. Contiene clases para componentes básicos de la interfaz, tales como eventos, colores, tipos de letra, botones, campos de texto, etc.

Page 4: LibreríAs De Java

Identificadores

Page 5: LibreríAs De Java

Los identificadores nombran variables, funciones, clases y objetos; cualquier cosa que el programador necesite identificar o usar.

En Java, un identificador comienza con una letra, un subrayado (_) o un símbolo de dólar ($).

Page 6: LibreríAs De Java

Serían identificadores válidos: y su uso sería, por ejemplo:

identificadornombre_usuarioNombre_Usuario

_variable_del_sistema$transaccion

int contador_principal;char _lista_de_ficheros;

float  $cantidad_en_Ptas;

Los siguientes caracteres pueden ser letras o dígitos. Se distinguen las mayúsculas de las minúsculas y no hay longitud máxima.

Page 7: LibreríAs De Java

Literales

Page 8: LibreríAs De Java

Un valor constante en Java se crea utilizando una representación literal de él.

Ejemplo:10098.6 ‘X’<<Esto es una prueba>>

Page 9: LibreríAs De Java

Comentarios

Page 10: LibreríAs De Java

En java existen tres tipos de comentarios:De múltiples líneas /* */De una línea //De documentación /** */

Page 11: LibreríAs De Java

Separadores

Page 12: LibreríAs De Java

( ) Lista de parámetros, precedencia { } Inicialización de matrices, bloques [ ] Tipos de matrices y referencias ; Separa sentencias , separa o bien encadena sentencias . Separa nombres de paquetes y

subpaquetes, variables y métodos

Page 13: LibreríAs De Java

Palabras clave

Page 14: LibreríAs De Java

Las siguientes son las palabras clave que están definidas en Java y que no se pueden utilizar como identificadores:

Page 15: LibreríAs De Java

abstract  continue  for  new  switch

 boolean  default  goto  null synchronized

 break  do  if  package  this

 byte  double  implements  private  threadsafe

 byvalue  else  import  protected  throw

 case  extends  instanceof  public  transient

 catch  false  int  return  true

 char  final  interface  short  try

 class  finally  long  static  void

 const  float  native  super  while                                  

Page 16: LibreríAs De Java

Palabras Reservadas

Page 17: LibreríAs De Java

Además, el lenguaje se reserva unas cuantas palabras más, pero que hasta ahora no tienen un cometido específico. Son:

Page 18: LibreríAs De Java

cast  future  generic  inner

 operator  outer  rest  var

Page 19: LibreríAs De Java

Literales

Page 20: LibreríAs De Java

Un valor constante en Java se crea utilizando una representación literal de él. Java utiliza cinco tipos de elementos: enteros, reales en coma flotante, booleanos, caracteres y cadenas, que se pueden poner en cualquier lugar del código fuente de Java.

Page 21: LibreríAs De Java

Cada uno de estos literales tiene un tipo correspondiente asociado con él.

Page 22: LibreríAs De Java

Enteros Tipo    Por ejemplo

 byte 8 bits complemento a dos

 21 077 0xDC00

 short 16 bits complemento a dos

 int 32 bits complemento a dos

 long 64 bits complemento a dos

Page 23: LibreríAs De Java

Reales en coma flotante:

 Tipo    Por ejemplo

 float 32 bits IEEE

754   3.18 2e12    3.1E12

 double 64 bits IEEE

754

Page 24: LibreríAs De Java

Booleanos:

truefalse

Page 25: LibreríAs De Java

Caracteres:

Por ejemplo:

a \t \u???? [????] es un número unicode

Page 26: LibreríAs De Java

Cadenas:

Por ejemplo:

"Esto es una cadena"

Page 27: LibreríAs De Java

Tipos de datos, variables y matrices

Page 28: LibreríAs De Java

Sintaxis

Declaración de una variable:

tipo nombre_variable;

byte b,c;

Page 29: LibreríAs De Java

Ejemplos:

int a, b, c; int d = 3, e, f = 5; byte z = 22; double pi = 3.14159; char X = ‘x’;

Page 30: LibreríAs De Java

Inicialización dinámica

Se hace utilizando expresiones validas en el instante en el que la variable es declarada.

Page 31: LibreríAs De Java

Tipos simples

Enteros byte, short, int y long

Números en coma flotante float double

Caracteres Char

Booleano boolean

Page 32: LibreríAs De Java

Enteros:

Byte Tamaño 8-bits. Valores entre -128 y 127.

Page 33: LibreríAs De Java

Enteros:

short Tamaño 16-bits. Entre -32,768 y 32,767.

Page 34: LibreríAs De Java

Enteros:

int Tamaño 32-bits. Entre -2,147,483,648 y 2,147,483,647.

Page 35: LibreríAs De Java

Enteros:

long Tamaño 64-bits. Entre -9,223,372,036,854,775,808 y

9,223,372,036,854,775,807.

Page 36: LibreríAs De Java

Ejercicio

//calcula la distancia que recorre la luz. utiliza variables long

Page 37: LibreríAs De Java

class Luz{public static void main(String args[]){

int velocidadluz;long dias;long segundos;long distancia;

//velocidad aproximada de la luz en kilometros por segundo = 30000;

velocidadluz = 300000;

dias = 1000; //especifica el número de diassegundos = dias * 24 * 60 * 60; //convierte a segundosdistancia = velocidadluz * segundos; // calcula la distancia

System.out.print("En " + dias);System.out.print("dias la luz recorrera cerca de");System.out.println(distancia + "kilometros");

}}

Page 38: LibreríAs De Java

Números en coma flotante:

float Tamaño 32-bits Con un rango de 3.4e-038 a 3.4e+038

Page 39: LibreríAs De Java

Números en coma flotante:

double Tamaño 64-bits. Con un rango de 1.7e-308 a 1.7e+308

Page 40: LibreríAs De Java

Ejercicio

//Calcula el área de un circulo

Page 41: LibreríAs De Java

class Area{public static void main(String args[]){

double pi, r, a;

r = 10.8; //radio del circulopi = 3.1416; //pi, aproximadamentea = pi * r * r; //calcula el area

System.out.println("El area del circulo es " + a);}

}

Page 42: LibreríAs De Java

Caracteres:

char Tamaño 16-bits. Unicode. Desde '\u0000' a '\uffff' inclusive.

Esto es desde 0 a 65535

Page 43: LibreríAs De Java

Ejercicio

//Muestra la utilización de variables de tipo char

Page 44: LibreríAs De Java

class CharDemo{public static void main(String args[]){

char ch1, ch2;

ch1 = 88; //codigo de Xch2 = 'Y';

System.out.print("ch1 y ch2: ");System.out.println(ch1 + " " + ch2);

}}

Page 45: LibreríAs De Java

Ejercicio

//las variables char se comportan como enteros

Page 46: LibreríAs De Java

class CharDemo2{public static void main(String args[]){

char ch1;

ch1 = 'X';System.out.println("ch1 contiene " + ch1);

ch1++; //incrementa ch1System.out.println("ch1 es ahora " + ch1);

}}

Page 47: LibreríAs De Java

Booleano:

Boolean Puede contener los valores true o false.

Page 48: LibreríAs De Java

Ejercicio

Usa ya operadores de comparación Expresiones condicionales como:

IfFor

//Muestra la utilización de variables booleanas

Page 49: LibreríAs De Java

class BoolTest{public static void main(String args[]){

boolean b;

b = false;System.out.println("b es " +b);b = true;System.out.println("b es " +b);

//un valor boleano puede controlar la sentencia if

if(b)System.out.println("Esta sentencia si se ejecuta.");

b = false;if(b)

System.out.println("Esta sentencia no se ejecuta.");

//el resultado de un operador relacional es un valor boleanoSystem.out.println("10 > 9 es " + (10>9));

}}

Page 50: LibreríAs De Java

Inicialización dinámica

Java permite que las variables sean inicializadas dinámicamente utilizando expresiones válidas en el instante en el que la variable es requerida.

Page 51: LibreríAs De Java

Ejercicio

//Ejemplo de inicialización dinámica

Page 52: LibreríAs De Java

class DynInit{public static void main(String args[]){

double a = 3.0, b = 4.0;

//inicializa dinámicamente la variable cdouble c = Math.sqrt(a * a + b * b);

System.out.println("La hipotenusa es " + c);}

}

Page 53: LibreríAs De Java

Ámbito y tiempo de vida de las variables main() métodos públicas privadas

Page 54: LibreríAs De Java

Ejercicio

//Ejemplo del ámbito de un bloque

Page 55: LibreríAs De Java

class Scope{public static void main(String args[]){

int x; //visible por todo el código main

x = 10;if(x==10){//comienza un nuevo ámbito

int y = 20; //visible sólo en este bloque

//x e y son visibles aquiSystem.out.println("x e y: " + x + " " + y );x = y * 2;}//y = 100; //Error! y no es visible aquí

//x todavía es visible aquíSystem.out.println("x es " + x);

}}

Page 56: LibreríAs De Java

Las variables se crean cuando se entra en su ámbito y se destruyen cuando se sale de su ámbito

Page 57: LibreríAs De Java

Conversiones de tipos

Java convierte automáticamente: Compatibles:

int, long byte, short, long

Java realiza un cast o conversión explicita entre tipos no compatibles: No compatibles:

double, byte char, boolean

Page 58: LibreríAs De Java

Conversiones automáticas de Java

Condiciones:

Los dos tipos son compatiblesEl tipo destino es más grande que el tipo

origen

Page 59: LibreríAs De Java

¿Qué ocurre?Un ensanchamiento o promoción.Ejemplo:

El tipo int es suficientemente grande como para almacenar un valor byte

Page 60: LibreríAs De Java

Conversión de tipos incompatibles

Por ejemplo si quiero convertir: int a bytebyte es más pequeño que intSe le llama a este tipo de conversión

estrechamiento

Page 61: LibreríAs De Java

Se usa un cast Es una conversión de tipo explicita y tiene la

siguiente forma:

(tipo) valor

Donde:tipo indica el tipo al que se ha de convertir el valor especificado

Page 62: LibreríAs De Java

Ejemplo: Convierte de int a byte

int a;

byte b;

b = (byte) a;

Page 63: LibreríAs De Java

Ejercicio

//Ejemplo de conversión de tipo explícita

Page 64: LibreríAs De Java

class Conversion{public static void main(String args[]){

byte b;int i = 257;double d = 323.142;

System.out.println("\nConversion de int a byte.");b = (byte) i;System.out.println("i y b: " +i + " " + b);

System.out.println("\nConversion de double a int.");i = (int) d; System.out.println("d e i: " +d + " " + i);

System.out.println("\nConversion de double a byte.");b = (byte) d;System.out.println("d y b: " +d + " " + b);

}}

Page 65: LibreríAs De Java

Promoción de tipo automática en expresiones Se da cuando se supera el rango

permitido por el tipo de dato. Ejemplo:

byte a = 40;byte b = 50;byte c = 100; Int d = a + b

Page 66: LibreríAs De Java

El resultado de a * b podría superar el rango de cualquiera de sus operandos de tipo byte

Java promociona automáticamente los operandos de tipo byte o short a int cuando calcula la expresión

Page 67: LibreríAs De Java

Reglas de promoción de tipos

byte, shor a int long a long float a float double a double

Page 68: LibreríAs De Java

Ejercicio

//Revisión de las reglas de promoción

Page 69: LibreríAs De Java

class Promote{public static void main(String args[]){

byte b = 42;char c = 'a';short s = 1024;int i = 50000;float f = 5.67f;double d = .1234;double result = (f * b) + (i / c) - (d * s);System.out.println((f * b) + " + " + (i / c) + " - " + (d

* s));System.out.println("resultado = " + result);

}}

Page 70: LibreríAs De Java

Arreglos

Page 71: LibreríAs De Java

Una matriz o arreglo es un grupo de variables del mismo tipo a las que se hace referencia con el mismo nombre.

Se pueden crear matrices de cualquier tipo y pueden tener una o mas dimensiones

Page 72: LibreríAs De Java

Se pueden declarar en Java arrays de cualquier tipo: char s[ ];

int Array[ ];

Incluso se pueden construir arrays de arrays: int tabla[ ][ ] = new int[4][5];

Los límites de los arrays se comprueban en tiempo de ejecución para evitar desbordamientos y la corrupción de memoria.

Page 73: LibreríAs De Java

Matriz unidimensional

1. tipo nombre_matriz [ ];

int dias[ ]; //declaración

2. nombre_matriz = new tipo [tamaño]//new reserva memoria

dias = new int [12];

Page 74: LibreríAs De Java

Java reserva memoria dinámicamente

Page 75: LibreríAs De Java

Ejercicio

/Ejemplo de una matriz unidimensional

Page 76: LibreríAs De Java

class Array{public static void main(String args[]){

int dias[ ]; // p bien int dias[ ] = new int[12];dias = new int[12]; dias[0] = 31;dias[1] = 28;dias[2] = 31;dias[3] = 30;dias[4] = 31;dias[5] = 30;dias[6] = 31;dias[7] = 31;dias[8] = 30;dias[9] = 31;dias[10] = 30;dias[11] = 31;System.out.println("Abril tiene " + dias[3] + "dias.");

}}

Page 77: LibreríAs De Java

Inicialización de matrices al declararse Es una listas de expresiones separadas

por comas y entre llaves { } Los valores se separan con las comas

Page 78: LibreríAs De Java

Ejercicio

//Versión mejorada del programa anterior

Page 79: LibreríAs De Java

class AutoArray{public static void main(String args[]){

int dias[] = {31,28,31,30,31,30,31,31,30,31,30,31};

System.out.println("Abril tiene " + dias[3] + "dias");}

}

Page 80: LibreríAs De Java

Ejercicio

//Calcula la media de los valores de una matriz

Page 81: LibreríAs De Java

class Media{public static void main(String args[]){

double nums[] = {10.1, 11.2, 12.3, 13.4, 14.5};double result = 0;int i;

for(i=0; i<5; i++)result = result + nums[i];

System.out.println("La media es " + result/5);}

}

Page 82: LibreríAs De Java

En Java un array es realmente un objeto, porque tiene redefinido el operador [ ].

Tiene una función miembro: length. Se puede utilizar este método para conocer la longitud de cualquier array.

Page 83: LibreríAs De Java

int a[][] = new int[10][3];

a.length; /* 10 */

a[0].length; /* 3 */

Page 84: LibreríAs De Java

Para crear un array en Java hay dos métodos básicos.

Crear un array vacío:

int lista[] = new int[50];

Page 85: LibreríAs De Java

o se puede crear ya el array con sus valores iniciales:

String nombres[] = {"Juan","Pepe","Pedro","Maria“ };

Page 86: LibreríAs De Java

Esto que es equivalente a:

String nombres[];nombres = new String[4];nombres[0] = new String( "Juan" );nombres[1] = new String( "Pepe" );nombres[2] = new String( "Pedro" );nombres[3] = new String( "Maria" );

Page 87: LibreríAs De Java

No se pueden crear arrays estáticos en tiempo de compilación:

int lista[50]; // generará un error en tiempo de compilación

Page 88: LibreríAs De Java

Tampoco se puede rellenar un array sin declarar el tamaño con el operador new:

int lista[];for(int i=0; i < 10; i++ )lista[i] = i;

Page 89: LibreríAs De Java

Es decir, todos los arrays en Java son estáticos. Para convertir un array en el equivalente a un array dinámico en C/C++, se usa la clase vector, que permite operaciones de inserción, borrado, etc. en el array.

Page 90: LibreríAs De Java

Matriz multidimensionales

Son matrices de matrices

Page 91: LibreríAs De Java

Declaración

Bidimensional Int dosD[][] = new int [4][5];

Page 92: LibreríAs De Java

Ejercicio

//Ejemplo de una matriz bidimensional

Page 93: LibreríAs De Java

class DosDArray{public static void main(String args[]){

int dosD[][] = new int[4][5];int i, j, k = 0;

for(i=0; i<4; i++)for(j=0; j<5; j++){

dosD[i][j] = k;k++;

}for(i=0; i<4; i++){

for(j=0; j<5; j++)System.out.println(dosD[i][j] + " ");

System.out.println("&&");}

}}

Page 94: LibreríAs De Java

Cuando se reserva memoria para una matriz multidimensional, solo es necesario especificar la memoria que necesita la primera dimensión, después se reservara para las otras dimensiones

Page 95: LibreríAs De Java

Ejemplo:

int dosD[][] = new int [4][];dosD[0] = new int[5];dosD[1] = new int[5];dosD[2] = new int[5];dosD[3] = new int[5];

Page 96: LibreríAs De Java

Vista conceptual de matriz bidimensional de 4 x 5

[0] [0] [0] [1] [0] [2] [0] [3] [0] [4]

[1] [0] [1] [1] [1] [2] [1] [3] [1] [4]

[2] [0] [2] [1] [2] [2] [2] [3] [2] [4]

[3] [0] [3] [1] [3] [2] [3] [3] [3] [4]

Page 97: LibreríAs De Java

Ejercicio

//Reserva distintos tamaños para la segunda dimensión de cada elemento

Page 98: LibreríAs De Java

class DosDArrayN{public static void main(String args[]){

int dosD[][] = new int[4][];dosD[0] = new int[1];dosD[1] = new int[2];dosD[2] = new int[3];dosD[3] = new int[4];

int i, j, k = 0;

for(i=0; i<4; i++)for(j=0; j<i+1; j++){

dosD[i][j] = k;k++;

}for(i=0; i<4; i++){

for(j=0; j<i+1; j++)System.out.print(dosD[i][j] + " ");

System.out.println();}

}}

Page 99: LibreríAs De Java

Inicialización de matrices multidimensionales Es necesario encerrar entre llaves el

inicializador de cada dimensión

Page 100: LibreríAs De Java

Ejercicio

//Inicializa una matriz bidimensional

Page 101: LibreríAs De Java

class Matrix{public static void main(String args[]){

double m[][] = {{ 0*0, 1*0, 2*0, 3*0 },{ 0*1, 1*1, 2*1, 3*1 },{ 0*2, 1*2, 2*2, 3*2 },{ 0*3, 1*3, 2*3, 3*3 }

};int i,j;for(i=0; i<4; i++){

for(j=0; j<4; j++)System.out.print(m[i][j] + " ");

System.out.println();}

}}

Page 102: LibreríAs De Java

Ejercicio

//Ejemplo de una matriz tridimensional

Page 103: LibreríAs De Java

class threeDMatrix{public static void main(String args[]){

int threeD[][][] = new int [3][4][5];int i,j,k;

for(i=0; i<3; i++)for(j=0; j<4; j++)

for(k=0; k<5; k++)threeD[i][j][k] = i * j * k;

for(i=0; i<3; i++){for(j=0; j<4; j++){

for(k=0; k<5; k++)System.out.print(threeD[i][j][k] + " ");System.out.println();

}System.out.println();}

}}

Page 104: LibreríAs De Java

Operadores

Page 105: LibreríAs De Java

Los operadores de Java son muy parecidos en estilo y funcionamiento a los de C. En la siguiente tabla aparecen los operadores que se utilizan en Java, por orden de precedencia:

Page 106: LibreríAs De Java

[ ] ()        

++ --        

! ~        

* / %      

+ -        

<< >>      

< > <= >= == != 

 & ^ |      

&& ||        

Page 107: LibreríAs De Java

Los operadores numéricos se comportan como esperamos:

int + int = int Los operadores relacionales devuelven un

valor booleano.

Page 108: LibreríAs De Java

Para las cadenas, se pueden utilizar los operadores relacionales para comparaciones además de + y += para la concatenación:

String nombre = "nombre" + "Apellido";

Page 109: LibreríAs De Java

El operador = siempre hace copias de objetos, marcando los antiguos para borrarlos, y ya se encargará el garbage collector de devolver al sistema la memoria ocupada por el objeto eliminado.

Page 110: LibreríAs De Java

Operadores aritméticos

+ - * /

% ++ -- -=

*= /= %= --

Page 111: LibreríAs De Java

Ejercicio

//Muestra los operadores aritméticos básicos

Page 112: LibreríAs De Java

class BasicMath{public static void main(String args[]){

//operaciones aritmeticas con enterosSystem.out.println("Aritmetica con enteros");int a = 1 + 1;int b = a * 3;int c = b / 4;int d = c - a;int e = -d;System.out.println("a = " +a);System.out.println("b = " +b);System.out.println("c = " +c);System.out.println("d = " +d);System.out.println("e = " +e);

//aritmetica utilizando el tipo double

System.out.println("\nAritmetica en coma flotante");double da = 1 + 1;double db = da * 3;double dc = db / 4;double dd = dc - a;double de = -dd;

System.out.println("da = " + da);System.out.println("db = " + db);System.out.println("dc = " + dc);System.out.println("dd = " + dd);System.out.println("de = " + de);

}}

Page 113: LibreríAs De Java

Operador Modulo

Devuelve el resto de un división. Se aplica tanto a tipos flotantes como a

enteros.

Page 114: LibreríAs De Java

Ejercicio

/ El operador %

Page 115: LibreríAs De Java

class Modulo{public static void main(String args[]){

int x = 42;double y = 42.3;

System.out.println("x mod 10 = " +x % 10);System.out.println("y mod 10 = " +y % 10);

}}

Page 116: LibreríAs De Java

Asignaciones con operadores aritméticos Combina una operación aritmética con

una asignación Ejemplo:

a = a + 4;a += 4;

Page 117: LibreríAs De Java

Sintaxis:

var = var operador expresión;

var operador = expresión;

Page 118: LibreríAs De Java

Ejercicio

Page 119: LibreríAs De Java

Control de Flujo

Page 120: LibreríAs De Java

Muchas de las sentencias de control del flujo del programa se han tomado del C:

Page 121: LibreríAs De Java

Sentencias de Salto

if/else

if( Boolean ) {sentencias;}else {sentencias;}

Page 122: LibreríAs De Java

switchswitch( expr1 ) {

case expr2: sentencias;

break;

case expr3: sentencias;

break;

Default: sentencias;

break;

}

Page 123: LibreríAs De Java

Sentencias de Bucle

Page 124: LibreríAs De Java

Bucles for

for( expr1 inicio; expr2 test; expr3 incremento ) {sentencias;}

Page 125: LibreríAs De Java

El siguiente trocito de código Java que dibuja varias líneas en pantalla alternando sus colores entre rojo, azul y verde. Este fragmento sería parte de una función Java (método):

Page 126: LibreríAs De Java

int contador;for( contador=1; contador <= 12; contador++ ) {

switch( contador % 3 ) {case 0:

setColor( Color.red );break;

case 1: setColor( Color.blue );break;

case 2: setColor( Color.green );break;

} g.drawLine( 10,contador*10,80,contador*10 );}

Page 127: LibreríAs De Java

También se soporta el operador coma (,) en los bucles for

for( a=0,b=0; a < 7; a++,b+=2 )

Page 128: LibreríAs De Java

Bucles while

while( Boolean ) {sentencias;}

Page 129: LibreríAs De Java

Bucles do/while

do {sentencias;}while( Boolean );

Page 130: LibreríAs De Java

Manejo de memoria y recolección de basura

Page 131: LibreríAs De Java

Java tiene un colector automático de basura. El manejo de memoria en Java esta basado en objetos y referencias a objetos. No hay apuntadores en Java.

Page 132: LibreríAs De Java

El manejador de memoria de Java lleva un registro de las referencias a un objeto. Cuando un objeto no tiene referencias entonces se convierte en un candidato para ser considerado basura.

Page 133: LibreríAs De Java

Por ejemplo, veamos la siguiente clase: // Voltea una cadena de caracteres

class CADENA_ALREVES{ public static String volteala(String FUENTE) {  int I,  LONGITUD = FUENTE.length();  StringBuffer DESTINO = new StringBuffer(LONGITUD);   for ( I = (LONGITUD - 1); I >= 0; I--)     {     DESTINO.appendChar(FUENTE.charAt(I));   } return DESTINO.toString(); }}

Page 134: LibreríAs De Java

En este ejemplo la variable DESTINO es usada como un objeto temporal de referencia durante la ejecución del proceso de invertir una cadena. Cuando el método "volteala" llega a su return la referencia al objeto DESTINO ya no existe, siendo entonces DESTINO un candidato a ser basura.

Page 135: LibreríAs De Java

Los elementos de clase String (como FUENTE) tienen los métodos length y charAt (el cual regresa el caracter correspondiente a la posicion indicada). Los elementos de la clase StringBuffer tienen los métodos appendChar (el cual incluye un caracter al final del buffer) y toString (el cual transforma los datos del buffer en una representación de tipo String).