1. C O M O P R O G R A M A R PAUL DEITEL HARVEY DEITEL A L W A
Y S L E A R N I N G PEARSONwww.FreeLibros.me
2. ACCESO A LOS CAPTULOS ADICIONALES DEL LIBRO Para acceder a
los captulos 12 a 19 (en espaol), 20 a 31 y Apndices M a Q (en
ingls) mencionados en el texto, visite el sitio Web de este libro:
www.pearsonenespafiol.coin/deitel Utilice una moneda para descubrir
el cdigo de acceso. (No use objetos filosos porque podra daarlo).
IMPORTANTE: Este cdigo de acceso tiene vigencia de 2 das! Asegrese
que el cdigo no aparezca daado ya que slo puede usarse una vez y no
ser reemplazado en ningn caso. www.FreeLibros.me
3. www.FreeLibros.me
4. www.FreeLibros.me
5. P R O G I s g M A R N O V E N A E D I C l d ^ Paul Detel
Deitel&Associates, Inc. Harvey Detel Deitel&Associates,
Inc. Traductor Alfonso Vidal Romero Elizondo Ingeniero en
SistemasElectrnicos ITESM, CampusMonterrey Revisin tcnica Roberto
Martnez Romn Departamento de Tecnologa de Informaciny Computacin
ITESM, CampusEstado deMxico Domingo Acosta Infante Departamento de
Ingeniera en Informtica Instituto Tecnolgico deMorelia PEARSON
www.FreeLibros.me
6. DEITEL, PAUL y HARVEY DEITEL Cmo programar en Java Novena
edicin PEARSON EDUCACIN, Mxico, 2012 ISBN: 978-607-32-1150-5 rea:
Computacin Formato: 20 X 25.5 cm Pginas: 616 Authorized translation
from the English language edition entitledJAVAHOW TOPROGRAM,
9thEdition, by PaulDeitel
&HarveyDeitel,publishedbyPearsonEducation, Inc., publishing
asPrentice Hall, Copyright 2012. Allrights reserved.
ISBN9780132575669 Traduccin autorizada de la edicin en idioma ingls
titulada JAVAHOW TOPROGRAM,9a. edicin por PaulDeitely
HarveyDeitel,publicada porPearson Education,Inc., publicadacomo
Prentice Hall, Copyright 2012.Todoslosderechos reservados.
Estaedicinen espaoles la nica autorizada. Edidn enespaol
DireccinEducacin Superior: EditorSponsor: Editorde Desarrollo:
Supervisorde Producdn: Gerente EditorialEducacin
SuperiorLatinoamrica: NOVENAEDICIN, 2012 D.R. 2012por Pearson
Educacinde Mxico, S.A. de C.V. Atlacomulco 500-5o. piso Col.
Industrial Atoto 53519, Naucalpande Jurez, Estado de Mxico Cmara
Nacionalde la Industria Editorial Mexicana. Reg. nm. 1031.
Reservados todos losderechos. Ni la totalidad ni partede esta
publicacin pueden reproducirse, registrarseo transmitirse, porun
sistema de recuperacin de informacin, en ninguna forma ni por ningn
medio, sea electrnico, mecnico, foto- qumico, magntico o
electroptico, por fotocopia, grabacino cualquierotro, sinpermiso
previo porescrito deleditor. Elprstamo, alquilero cualquierotra
formade cesinde uso de este ejemplarrequerir tambin la
autorizacindeleditor 0de sus representantes. ISBNVERSIN IMPRESA:
978-607-32-1150-5 ISBNVERSINE-BOOK: 978-607-32-1151-2 ISBN
E-CHAPTER: 978-607-32-1152-9 Impreso en Mxico. Printed in Mxico. 12
34567890- 15 14 13 12 Mario Contreras LuisMiguel CruzCastillo
e-mail: [email protected] Bernardino GutirrezHernndez Jos D.
Hernndez Garduo Marisade Anta PEARSON www.FreeLibros.me
7. En memoriadesargentoShriver,
'ElprimerdirectordelCuerpodeTazyfundador
denumerosasorganizacionessociales: Toruna vida demarcaradiferencia.
Pauly Harvey Deitel www.FreeLibros.me
8. www.FreeLibros.me
9. Contenido Prefacio Antes de empezar 1 Introduccin a las
computadoras y a Java 1.1 Introduccin 1.2 Computadoras: hardwarey
software 1.3 Jerarqua de datos 1.4 Organizacin de una computadora
1.5 Lenguajes mquina, lenguajes ensambladores y lenguajes de alto
nivel 1.6 Introduccin a latecnologade los objetos 1.7 Sistemas
operativos 1.8 Lenguajesde programacin 1.9 Javay un tpico entorno
de desarrollo enJava 1.10 Prueba de una aplicacin enJava 1.11 Web
2.0: Las redessociales 1.12 Tecnologas de software 1.13 Cmo estar
al da con lastecnologas de informacin 1.14 Conclusin 2 Introduccin
a las aplicaciones en Java 2.1 Introduccin 2.2 Su primer programa
enJava: imprimir una lnea de texto 2.3 Modificacin de nuestro
primer programa enJava 2.4 Cmo mostrar texto con pri ntf 2.5 Otra
aplicacin enJava: suma de enteros 2.6 Conceptos acercade la memoria
2.7 Aritmtica 2.8 Toma de decisiones: operadores de igualdad y
relacinales 2.9 Conclusin 3 Introduccin a las clases, objetos,
mtodos ycadenas 3.1 Introduccin 3.2 Declaracin de una clasecon un
mtodo e instanciamiento de un objeto de una clase 3-3 Declaracin de
un mtodo con un parmetro 3.4 Variables de instancia, mtodos
establecery mtodos obtener 3.5 Comparacin entre tipos primitivos y
tipos por referencia 3.6 Inicializacin de objetos mediante
constructores xxiii xxxiii 1 2 5 6 8 10 11 13 16 18 22 26 29 31 32
37 38 38 44 46 47 52 53 56 60 71 72 72 76 79 84 85
www.FreeLibros.me
10. 88 92 95 102 103 103 104 104 107 107 112 113 118 125 130
130 134 134 138 151 152 152 154 158 162 164 172 173 179 184 187 197
198 198 200 202 205 206 207 208 210 214 214 215 219 222 224 227
Contenido 3.7 Los nmeros de punto flotantey el tipo double 3.8
(Opcional) Caso de estudio de GUI y grficos: uso de cuadros de
dilogo 3.9 Conclusin 4 Instrucciones de control: Parte I 4.1
Introduccin 4.2 Algoritmos 4.3 Seudocdigo 4.4 Estructuras de
control 4.5 Instruccin i f de seleccin simple 4.6 Instruccin i f .
.. el se de seleccin doble 4.7 Instruccin de repeticin whi1e 4.8
Cmo formular algoritmos: repeticincontroladapor un contador 4.9 Cmo
formular algoritmos: repeticincontroladapor un centinela 4.10 Cmo
formular algoritmos: instrucciones de control anidadas 4.11
Operadores de asignacin compuestos 4.12 Operadores de incremento y
decremento 4.13 Tipos primitivos 4.14 (Opcional) Caso de estudio de
GUI y grficos: creacin de dibujos simples 4.15 Conclusin 5
Instrucciones de control: Parte 2 5.1 Introduccin 5.2 Fundamentos
de la repeticin controlada por contador 5.3 Instruccin de repeticin
for 5.4 Ejemplossobre el uso de la instruccin for 5.5 Instruccin de
repeticin do... whi1e 5.6 Instruccin de seleccin mltiple switch 5.7
Instrucciones break y continu 5.8 Operadores lgicos 5.9 Resumen
sobre programacin estructurada 5.10 (Opcional) Caso de estudio de
GUI y grficos: dibujo de rectngulosy valos 5.11 Conclusin 6 Mtodos:
un anlisis ms detallado 6.1 Introduccin 6.2 Mdulos de programas
enJava 6.3 Mtodos st a t i c,campos st a t i cy laclaseMath 6.4
Declaracin de mtodos con mltiples parmetros 6.5 Notas acerca de cmo
declarar y utilizar los mtodos 6.6 La pilade llamadasa los mtodosy
losregistros de activacin 6.7 Promocin yconversin de argumentos 6.8
Paquetesde laAPI deJava 6.9 Caso de estudio: generacin de nmeros
aleatorios 6.9.1 Escalamiento y desplazamiento generalizados de
nmeros aleatorios 6.9.2 Repetitividad de nmeros aleatorios para
prueba y depuracin 6.10 Caso de estudio: un juego deprobabilidad
(introduccin a las enumeraciones) 6.11 Alcance de las declaraciones
6.12 Sobrecarga de mtodos 6.13 (Opcional) Caso de estudio de GUI y
grficos: coloresy figuras rellenas 6.14 Conclusin
www.FreeLibros.me
11. Contenido ix 7 Arreglos y objetos ArrayList 7.1 Introduccin
7.2 Arreglos 7.3 Declaracin y creacin de arreglos 7.4 Ejemplos
acercadel uso de los arreglos 7.5 Caso de estudio:simulacin para
barajar y repartir cartas 7.6 Instruccin for mejorada 7.7 Pasode
arreglosa los mtodos 7.8 Caso de estudio: laclase L i broCal i f i
ca ci ones que usa un arreglo paraalmacenar las calificaciones 7.9
Arreglos multidimensionales 7.10 Caso de estudio: la clase Libro C
al ific a c io n e s que usa un arreglo bidimensional 7.11 Listas
de argumentos de longitud variable 7.12 Uso de argumentos de lnea
de comandos 7.13 LaclaseArrays 7.14 Introduccin a lascolecciones y
laclaseA rrayLi st 7.15 (Opcional) Caso de estudio de GUI y
grficos: dibujo de arcos 7.16 Conclusin 8 Clases y objetos: un
anlisis ms detallado 8.1 Introduccin 8.2 Caso de estudio de la
claseTiempo 8.3 Control del accesoa los miembros 8.4 Referencias a
los miembros delobjeto actual mediante this 8.5 Caso de estudio de
la claseTiempo: constructoressobrecargados 8.6 Constructores
predeterminados y sin argumentos 8.7 Observaciones acercade los
mtodosEstablecery Obtener 8.8 Composicin 8.9 Enumeraciones 8.10
Recoleccin de basuray elmtodo fi nali ze 8.11 Miembros de clase s t
a t i c 8.12 Declaracin static import 8.13 Variables de instancia
fi nal 8.14 Caso de estudio de la claseT i empo: creacin de
paquetes 8.15 Accesoa paquetes 8.16 (Opcional) Caso de estudio de
GUI y grficos: uso de objetos con grficos 8.17 Conclusin 9
Programacin orientada a objetos: herencia 9.1 Introduccin 9.2
Superclasesy subclases 9.3 Miembros protected 9.4 Relacin entre las
superclases y las subclases 9.4.1 Creaciny uso de una clase Empl
eadoPorComi s i on 9.4.2 Creacin y uso de una clase Empl
eadoBaseMasComi si on 9.4.3 Creacin de una jerarqua de herencia
Empl eadoPorComi s i on- Empl eadoBaseMasComi sion 9.4.4 Lajerarqua
de herencia Empl eadoPorComi si on-Empl eadoBaseMasComi sion
mediante el uso de variablesde instancia protected 9.4.5 Lajerarqua
de herencia Empl eadoPorComi si on-Empl eadoBaseMasComi sion
mediante el uso de variablesde instancia pri vate 240 241 242 243
244 254 258 259 262 268 271 278 279 281 284 286 289 311 312 312 316
317 320 326 326 328 331 333 334 338 339 340 345 347 351 359 360 361
363 364 364 370 375 377 380 www.FreeLibros.me
12. x Contenido 9.5 Los constructores en lassubclases 9.6
Ingenierade software mediante la herencia 9.7 La clase Obj e ct 9.8
(Opcional) Caso de estudio de GUI y grfieos: mostartexto e imgenes
usando etiquetas 9.9 Conclusin 10 Programacin orientada a objetos:
polimorfismo 10.1 Introduccin 10.2 Ejemplos delpolimorfismo 10.3
Demostracin del comportamiento polimrfico 10.4 Clases y mtodos
abstractos 10.5 Caso de estudio: sistema de nmina utilizando
polimorfismo 10.5.1 Lasuperclase abstracta Empleado 10.5.2
Lasubclase concreta EmpleadoAsalari ado 10.5.3 Lasubclase concreta
Empl eadoPorHoras 10.5.4 Lasubclase concreta Empl eadoPo rComi si
on 10.5.5 Lasubclase concreta indirecta Empl eadoBaseMasComi sion
10.5.6 El procesamiento polimrfico, el operador i nstanceof y
laconversin descendente 10.5.7 Resumen de lasasignaciones
permitidas entre variables de lasuperclase yde lasubclase 10.6
Mtodos y clases fi nal 10.7 Caso de estudio: creacin y uso de
interfaces 10.7.1 Desarrollo de una jerarqua PorPagar 10.7.2 La
interfaz PorPagar 10.7.3 Laclase Factu ra 10.7.4 Modificacin de la
clase Empleado para implementar la interfaz PorPagar 10.7.5
Modificacin de laclase Empl eadoAsal a ri ado para usarla en la
jerarqua PorPagar 10.7.6 Uso de la nterfaz PorPagar para procesar
objetos Factura y Empleado mediante el polimorfismo 10.7.7
Interfaces comunes de laAPI deJava 10.8 (Opcional) Caso de estudio
de GUI y grficos: realizar dibujos usando polimorfismo 10.9
Conclusin I I Manejo de excepciones: un anlisis ms profundo 11.1
Introduccin 11.2 Ejemplo: divisin entre cero sin manejo de
excepciones 11.3 Ejemplo: manejo deexcepciones tipo A ritm
eticException elnputMismatchException 11.4 Cundo utilizar el manejo
deexcepciones 11.5 Jerarqua de excepcionesenJava 11.6 Bloque
finally 11.7 Limpieza de la pilay obtencin de informacin de un
objeto excepcin 11.8 Excepciones encadenadas 11.9 Declaracin de
nuevos tipos de excepciones 11.10 Precondicionesy poscondiciones
11.11 Aserciones 11.12 (Nuevo enJava SE 7): Clusula catch mltiple:
atrapar varias excepciones en un catch 11.13 (Nuevo enJava SE 7):
Clusulat rycon recursos (t ry-with-resources): desasignacin
automtica de recursos 11.14 Conclusin 385 386 387 388 391 394 395
397 398 400 403 404 407 408 410 412 413 418 418 419 421 422 422 425
427 428 430 431 433 438 439 439 442 447 447 450 454 457 459 460 461
462 463 463 www.FreeLibros.me
13. Contenido x i A Tabla de precedencia de operadores B
Conjunto de caracteres ASCII C Palabras clave y palabras reservadas
D Tipos primitivos E Uso de la documentacin de la API deJava E.1
Introduccin E.2 Navegacin por laAPI deJava F Uso del depurador E1
Introduccin E2 Los puntos de interrupcin y los comandos run, stop,
cont y pri nt F.3 Los comandos pri nt y set E4 Cmo controlar
laejecucin mediante los comandos step, step upy next F.5 El comando
watch F.6 El comando clear F.7 Conclusin G Salida con formato G.l
Introduccin G.2 Flujos G.3 Aplicacin de formato a lasalidacon pri
ntf G.4 Impresin de enteros G.5 Impresin de nmeros de punto
flotante G.6 Impresin de cadenasy caracteres G.7 Impresin de fechas
y horas G.8 Otros caracteres de conversin G.9 Impresin con anchuras
de campo y precisiones G.10 Uso de banderas en lacadena de formato
de pri ntf G.11 Impresin con ndices como argumentos G.12 Impresin
de literalesy secuencias de escape G.13 Aplicacin deformato a
lasalida con laclase Formatte r G.l4 Conclusin H Sistemas numricos
H.l Introduccin H.2 Abreviaturade los nmeros binarioscomo
nmerosoctales y hexadecimales H.3 Conversin de nmerosoctales y
hexadecimales a binarios H.4 Conversin de un nmero binario,octal o
hexadecimal adecimal H.5 Conversin de un nmero decimala binario,
octalo hexadecimal H.6 Nmeros binarios negativos: notacin de
complemento a dos A-l A-3 A-4 A-5 A-6 A-6 A-6 A-14 A-15 A-15 A-19
A-21 A-24 A-27 A-29 A-31 A-32 A-32 A-32 A-33 A-34 A-36 A-37 A-39
A-41 A-43 A-47 A-47 A-48 A-49 A-54 A-55 A-58 A-59 A-59 A-60 A-62
www.FreeLibros.me
14. x ii Contenido I GroupLayout 1.1 Introduccin 1.2
Fundamentos de GroupLayout 1.3 Creacin de unobjeto SelectorColores
1.4 RecursosWebsobre GroupLayout J Componentes de integracin Java
Desktop J.l Introduccin J.2 Pantallas deinicio J.3 LaclaseDesktop
J.4 Iconos de la bandeja K Mashups K.l Introduccin K.2 Mashups
populares K.3 AlgunasAPI de uso comn en mashups K.4 Centrode
recursosDeitelsobre mashups K.5 Centrode recursosDeitelsobre RSS
K.6 Cuestiones de rendimiento y confiabilidad de los mashups L
Unicode L.l Introduccin L2 Formatosde transformacin de Unicode L.3
Caracteresy glifos L.4 Ventajas/Desventajasde Unicode L5 Uso de
Unicode L.6 Rangos de caracteres ndice Los captulos 12a 19 se
encuentran en espaol en el sitio Web del libro 12 Caso de estudio
del ATM, Parte I : Diseo orientado a objetos con UML 12.1
Introduccin alcaso deestudio 12.2 Anlisis del documento de
requerimientos 12.3 Cmo identificar lasclases en un documento de
requerimientos 12.4 Cmo identificar los atributos de las clases
12.5 Cmo identificar los estadosy actividades de losobjetos 12.6
Cmo identificar lasoperaciones de lasclases 12.7 Cmo indicar
lacolaboracin entreobjetos 12.8 Conclusin 469 470 470 478 484 489
493 499 506 A-67 A-67 A-67 A-68 A-78 A-79 A-79 A-79 A-81 A-83 A-85
A-85 A-85 A-86 A-86 A-87 A-87 A-88 A-88 A-89 A-90 A-90 A-91 A-93 I-
l www.FreeLibros.me
15. Contenido x 13 Caso de estudio del ATM, Parte 2:
Implementacii de un diseo orientado a objetos 13.1 Introduccin 13.2
Inicio de laprogramacin de lasclases delsistemaATM 13.3
Incorporacin de laherenciay el polimorfismo en el sistemaATM 13.4
Implementacin delcaso deestudio delATM 13.4.1 Laclase ATM 13.4.2
Laclase P a n ta lla 13.4.3 LaclaseTeclado 13.4.4 Laclase Di
spensadorEf e c ti vo 13.4.5 Laclase RanuraDeposito 13.4.6 Laclase
Cuenta 13.4.7 Laclase BaseDatos Banco 13.4.8 Laclase Transacci n
13.4.9 Laclase Sol i citud Sal do 13.4.10 Laclase R eti ro 13.4.11
Laclase Depos i to 13.4.12 LaclaseCasoEstudioATM 13-5 Conclusin 14
Componentes de la GUI: Parte I 14.1 Introduccin 14.2
NuevaaparienciavisualNimbus deJava 14.3 Entrada/salidasimple
basadaen GUI con JOptionPane 14.4 Generalidades de los componentes
de Swing 14.5 Mostrartexto e imgenes en unaventana 14.6 Campos
detexto y unaintroduccin al manejo deeventos con clases anidadas
14.7 Tipos deeventos comunes de laGUI e interfaces de escucha 14.8
Cmo funciona el manejo deeventos 14.9 JButton 14.10 Botones que
mantienen elestado 14.10.1 JCheckBox 14.10.2 JRadioButton 14.11
JComboBox: uso de una clase interna annima para el manejo de
eventos 14.12 J L is t 14.13 Listas de seleccin mltiple 14.14
Manejo de eventos de ratn 14.15 Clases adaptadoras 14.16 Subclase
de JPanel paradibujarcon el ratn 14.17 Manejode eventos de teclas
14.18 Introduccin a los administradores de esquemas 14.18.1
FlowLayout 14.18.2 BorderLayout 14.18.3 G rid Layou t 14.19 Uso de
panelesparaadministraresquemasms complejos 14.20 JTextA rea 14.21
Conclusin 510 511 511 516 522 523 528 529 530 531 532 534 537 538
539 543 546 546 549 550 551 552 555 557 561 567 569 571 574 574 577
580 584 586 589 594 597 601 604 605 608 611 613 615 618
www.FreeLibros.me
16. xiv Contenido 15 Grficos y Java 2D 15.1 Introduccin 15.2
Contextosy objetos degrficos 15-3 Control de colores 15.4
Manipulacin de tipos de letra 15.5 Dibujo de lneas, rectngulosy
valos 15.6 Dibujo de arcos 15.7 Dibujo de polgonos y polilneas 15.8
LaAPI Java 2D 15.9 Conclusin 16 Cadenas, caracteres y expresiones
regulares 16.1 Introduccin 16.2 Fundamentos de los caracteres y las
cadenas 16.3 Laclase String 16.3.1 Constructores de Stri ng 16.3.2
Mtodos 1ength, charAt ygetChars de S trin g 16.3.3 Comparacin entre
cadenas 16.3.4 Localizacin de caracteres y subcadenas en las
cadenas 16.3.5 Extraccin de subcadenas de lascadenas 16.3.6
Concatenacin de cadenas 16.3.7 Mtodos varios de Stri ng 16.3.8
Mtodo valueOf de Stri ng 16.4 Laclase Stri ngBui lder 16.4.1
Constructores de Stri ngBuilder 16.4.2 Mtodos 1ength, capacity,
setLengthy ensureCapaci ty de S tri ngBui ld er 16.4.3 Mtodos
charAt, setCharAt, getChars y reverse de S tri ngBui ld e r 16.4.4
Mtodos append de Stri ngBuilder 16.4.5 Mtodos de insercin y
eliminacin de Stri ngBui lder 16.5 LaclaseCharacter 16.6 Divisinde
objetos Stri ngen tokens 16.7 Expresiones regulares, laclase
Pattern y laclase Matcher 16.8 Conclusin 17 Archivos, flujos y
sealizacin de objetos 17.1 Introduccin 17.2 Archivosy flujos 17.3
Laclase File 17.4 Archivos de texto de acceso secuencial 17.4.1
Creacin de un archivo de texto de acceso secuencial 17.4.2 Cmo
leerdatos de un archivo de texto de acceso secuencial 17.4.3 Caso
deestudio: un programade solicitud de crdito 17.4.4 Actualizacin de
archivos de acceso secuencial 17.5 Sealizacin deobjetos 17.5.1
Creacin de un archivo de acceso secuencial mediante el uso de
lasealizacin deobjetos 17.5.2 Lecturay deserializacin de datos de
un archivo de acceso secuencial 17.6 Clases adicionales de java, io
17.6.1 Interfaces y clases para entrada y salida basadaen bytes
17.6.2 Interfaces y clases para entrada y salida basadaen
caracteres 632 634 635 642 647 651 654 657 664 672 673 673 674 674
675 676 681 683 684 684 686 687 688 688 690 691 693 694 699 700 708
719 720 720 722 726 726 733 736 741 742 743 749 751 751 753 631
www.FreeLibros.me
17. Contenido x v 17.7 Abrir archivos con JFileChooser 17.8
Conclusin 18 Recursividad 18.1 Introduccin 18.2 Conceptosde
recursividad 18.3 Ejemplo de uso de recursividad: factoriales 18.4
Ejemplo de uso de recursividad: serie de Fibonacci 18.5
Larecursividad y la pila de llamadas a mtodos 18.6 Comparacin entre
recursividade iteracin 18.7 Lastorres de Hanoi 18.8 Fractales 18.9
Vueltaatrs recursiva (backtracking) 18.10 Conclusin 19 Bsqueda,
ordenamiento y Big O 19.1 Introduccin 19.2 Algoritmos de bsqueda
19.2.1 Bsqueda lineal 19.2.2 Bsqueda binaria 19.3 Algoritmos de
ordenamiento 19.3.1 Ordenamiento por seleccin 19.3.2 Ordenamiento
por insercin 19.3.3 Ordenamiento por combinacin 19.4 Conclusin Los
captulos 20 a 3 1se encuentran en ingls en el sitio Web del libro
20 Generic Collections 20.1 Introduction 20.2 Collections Overview
20.3 Type-Wrapper Classesfor PrimitiveTypes 20.4 Autoboxing and
Auto-Unboxing 20.5 Interface Col 1ect i on and Class C o ll e ctio
n s 20.6 Lists 20.6.1 A r ra y L is t and Ite r a to r 20.6.2 L in
k e d L is t 20.7 Collections Methods 20.7.1 Method s o rt 20.7.2
Method s h u ffie 20.7.3 Methods re ve rse , f i 11, copy, max and
mi n 20.7.4 Method binarySearch 20.7.5 MethodsaddAll, frequency and
d is jo in t 20.8 Stack Class ofPackage java, til 20.9 Class
PriorityQueueand Interface Queue 20.10 Sets 20.11 Maps 754 757 765
766 767 768 771 774 776 777 779 790 790 798 799 800 800 804 809 810
814 817 824 829 830 830 831 832 832 833 834 836 841 842 845 847 849
851 853 855 856 859 www.FreeLibros.me
18. xv Contenido 20.12 Properties Class 20.13 Synchronized
Collections 20.14 Unmodifiable Collections 20.15 Abstract
Implementations 20.16 Wrap-Up 2 1 GenericClasses andMethods 21.1
Introduction 21.2 Motivation for Generic Methods 21.3 Generic
Methods: Implementation and Compile-TimeTranslation 21.4 Additional
Compile-TimeTranslation Issues: MethodsThat Use a Type Parameter
asthe Return Type 21.5 Overloading Generic Methods 21.6 Generic
Classes 21.7 RawTypes 21.8 Wildcards in MethodsThat AcceptType
Parameters 21.9 Generics and Inheritance: Notes 21.10 Wrap-Up 22
CustomGeneric DataStructures 22.1 Introduction 22.2
Self-Referential Classes 22.3 Dynamic Memory Allocation 22.4 Linked
Lists 22.5 Stacks 22.6 Queues 22.7 Trees 22.8 Wrap-Up 23 Applets
andJavaWebStart 23-1 Introduction 23.2 SampleApplets Provided with
theJDK 23-3 SimpleJavaApplet: Drawing a String 23-3.1 Executing
WelcomeAppl et in the appletviewer 23-3.2 Executing an Applet in
aWeb Browser 23.4 Applet Life-Cycle Methods 23-5 Initialization
with Method i nit 23.6 Sandbox Security Model 23.7 JavaWeb Start
and theJava Network Launch Protocol (JNLP) 23.7.1 Packaging the
DrawTest Appletfor Usewith JavaWeb Start 23.7.2 JNLP Document for
the DrawTest Applet 23.8 Wrap-Up 24 Multimedia: Applets
andApplications 24.1 Introduction 24.2 Loading, Displaying and
Scaling Images 24.3 Animaring a Series ofImages 24.4 Image Maps 863
866 866 867 867 873 874 874 877 880 883 883 891 895 899 900 904 905
905 906 907 917 921 924 930 941 942 943 947 949 951 951 952 954 956
956 957 961 967 968 969 975 982 www.FreeLibros.me
19. Contenido x v ii 24.5 Loading and PlayingAudio Clips 24.6
PlayingVideo and Other Media withJava Media Framework 24.7 Wrap-Up
24.8 Web Resources 2 5 GUI Components: Part 2 25-1 Introduction
25.2 JS Iid e r 25-3 Windows: Additional Notes 25.4 Using Menus
with Frames 25-5 JPopupMenu 25.6 Pluggable Look-and-Feel 25.7
JDesktopPane and JlnternalFrame 25.8 JTabbedPane 25.9 Layout
Managers: BoxLayout and GridBagLayout 25.10 Wrap-Up 2 6
Multithreading 26.1 Introduction 26.2 Thread States: Life Cycle
ofaThread 26.3 Creating and ExecutingThreads with Executor
Framework 26.4 Thread Synchronization 26.4.1 Unsynchronized Data
Sharing 26.4.2 Synchronized Data SharingMaking Operations Atomic
26.5 Producer/Consumer Relationship without Synchronization 26.6
Producer/Consumer Relationship: ArrayBlocki ngQueue 26.7
Producer/Consumer Relationship with Synchronization 26.8
Producer/Consumer Relationship: Bounded Buffers 26.9
Producer/Consumer Relationship: The Lock and Condi t i on
Interfaces 26.10 Concurrent Collections Overview 26.11
Multithreadingwith GUI 26.11.1 Performing Computations in
aWorkerThread 26.11.2 Processing Intermedate Results with Swi
ngWorker 26.12 Interfaces Caliabl e and Futu re 26.13 Java SE 7:
Fork/Join Framework 26.14 Wrap-Up 2 7 Networking 27.1 Introduction
27.2 Manipulating URLs 27.3 Reading a Fileon aWeb Server 27.4
Establishing a SimpleServer Using Stream Sockets 27.5 Establishing
a Simple Client Using Stream Sockets 27.6 Client/Server Interaction
with Stream Socket Connections 27.7 Datagrams: Connectionless
Client/ServerInteraction 27.8 Client/ServerTic-Tac-Toe Usinga
Multithreaded Server 27.9 [Web Bonus] Case Study: DeitelMessenger
27.10 Wrap-Up 985 988 992 992 1000 1001 1001 1005 1006 1014 1017
1022 1026 1028 1040 1045 1046 1048 1051 1054 1055 1059 1062 1070
1073 1079 1086 1093 1095 1096 1102 1109 1109 1110 I 118 1119 1120
1125 1128 1130 1130 1142 1150 1165 1165 www.FreeLibros.me
20. x v Contenido 28 Accessing Databases with JDBC 28.1
Introduction 28.2 Relational Databases 28.3 Relational Database
Overview: The books Database 28.4 SQL 28.4.1 Basic SELECT Query
28.4.2 WHERE Clause 28.4.3 ORDER BY Clause 28.4.4 Merging Data from
MltipleTables: INNER JOIN 28.4.5 I NSERT Statement 28.4.6 UPDATE
Statement 28.4.7 DELETE Statement 28.5 Instructions for Installing
MySQL and MySQL Connector/J 28.6 Instructions forSetring Up a MySQL
UserAccount 28.7 Creating Database books in MySQL 28.8 Manipularing
Databaseswith JDBC 28.8.1 Connecring to and Querying a Database
28.8.2 Querying the books Database 28.9 RowSet Interface 28.10 Java
DB/Apache Derby 28.11 P repa redStatem ents 28.12 Stored Procedures
28.13 Transaction Processing 28.14 Wrap-Up 28.15 Web Resources 29
JavaServer Faces Web Apps: Part I 29.1 Introduction 29.2
HyperTextTransfer Protocol (HTTP) Transacrions 29.3
MultirierApplication Architecture 29.4 YourFirstJSF Web App 29.4.1
The Default i ndex .xhtml Document: Introducing Facelets 29.4.2
Examining the WebTimeBean Class 29.4.3 Building theWebTi meJSF Web
App in NetBeans 29.5 Model-View-ControllerArchitecture ofJSF Apps
29.6 CommonJSF Components 29.7 ValidationUsing JSF
StandardValidators 29.8 SessionTracking 29.8.1 Cookies 29.8.2
SessionTracking with @Sessi onScoped Beans 29.9 Wrap-Up 30
JavaServer Faces Web Apps: Part 2 30.1 Introduction 30.2 Accessing
Databases in Web Apps 30.2.1 Setring Up the Database 30.2.2
@ManagedBean ClassAddressBean 30.2.3 i ndex.xhtml Facelets Page
30.2.4 addent r y . xhtml Facelets Page 1172 1173 1174 1177 1178
1179 1181 1182 1184 1185 1186 1186 1187 1188 1189 1189 1194 1207
1209 1211 1226 1227 1227 1228 1235 1236 1237 1240 1241 1242 1244
1246 1250 1250 1254 1261 1262 1263 1269 1276 1277 1277 1279 1282
1286 1288 I 171 www.FreeLibros.me
21. Contenido x x 30.3 Ajax 30.4 AddingAjax Functionality to
theValidation App 30.5 Wrap-Up 3 1 Web Services 31.1 Introduction
31.2 Web Service Basics 31.3 Simple ObjectAccess Protocol (SOAP)
31.4 Representational StateTransfer (REST) 31.5 JavaScript Object
Notation (JSON) 31.6 Publishing and Consuming SOAP-BasedWeb
Services 31.6.1 Creating aWeb Application Project and Adding aWeb
Service Class in NetBeans 31.6.2 Defining the Wel comeSOAP Web
Service in NetBeans 31.6.3 Publishing the Wel comeSOAPWeb Service
from NetBeans 31.6.4 Testing the Wel comeSOAPWeb Service with
GlassFish Application ServersTesterWeb Page 1308 31.6.5 Describing
aWeb Service with theWeb ServiceDescription Language (WSDL) 31.6.6
Creating a Clientto Consume the Wel comeSOAPWeb Service 31.6.7
Consuming the Wel comeSOAPWeb Service 31.7 Publishing and Consuming
REST-BasedXML Web Services 31.7.1 Creating a REST-Based XMLWeb
Service 31.7.2 Consuming a REST-BasedXMLWeb Service 31.8 Publishing
and Consuming REST-BasedJSON Web Services 31.8.1 Creating a
REST-BasedJSON Web Service 31.8.2 Consuming a REST-BasedJSON Web
Service 31.9 SessionTrackingin a SOAPWeb Service 31.9.1 Creating a
B lackjack Web Service 31.9.2 Consuming the BI ackj ackWeb Service
31.10 Consuming a Database-Driven SOAP Web Service 31.10.1 Creating
the Reservati onDatabase 31.10.2 Creating aWeb Application to
Interactwith the Reservation Service 1343 31.11 Equation Generator:
Returning User-Defmed Types 31.11.1 Creating the
EquationGeneratorXML Web Service 31.11.2 Consuming the
EquationGeneratorXM L Web Service 31.11.3 Creating the
EquationGeneratorJSONWeb Service 31.11.4 Consuming the
EquationGeneratorJSONWeb Service 31.12 Wrap-Up 1290 1292 1295 1299
1300 1302 1302 1302 1303 1303 1303 1304 1307 1309 1310 1312 1315
1315 1318 1320 1320 1322 1324 1325 1328 1339 1340 1346 1349 1350
1354 1354 1357 www.FreeLibros.me
22. X X Contenido Los apndices M a Q se encuentran en ingls en
el sitio Web del libro M Creating Documentation with javadoc M. 1
Introduction M.2 Documentation Comments M.3 DocumentingJava Source
Code M .4 javadoc M.5 Files Produced by javadoc N Bit Manipulation
N.l Introduction N.2 Bit Manipulation and the Bitwise Operators N.3
B itS et Class O Labeled break and conti nue Statements 0.1
Introduction 0.2 Labeled break Statement 0.3 Labeled continue
Statement P UML 2: Additional Diagram Types P.1 Introduction P.2
Additional Diagram Types Q Design Patterns Q.l Introduction Q.2
Creational, Structural and Behavioral Design Patterns Q.2.1
Creational Design Patterns Q.2.2 Structural Design Patterns Q.2.3
Behavioral Design Patterns Q.2.4 Conclusin Q.3 Design Patterns in
Packages java.awt and javax.swing Q.3.1 Creational Design Patterns
Q.3.2 Structural Design Patterns Q.3.3 Behavioral Design Patterns
Q.3.4 Conclusin Q.4 Concurrency Design Patterns Q.5 Design Patterns
Used in Packages java, io and java, net Q.5.1 Creational Design
Patterns Q.5.2 Structural Design Patterns Q.5.3 ArchitecturaJ
Patterns Q.5.4 Conclusin Q.6 Design Patterns Used in Package
java.uti 1 Q.6.1 Creational Design Patterns Q.6.2 Behavioral Design
Patterns Q.7 Wrap-Up M-i M-l M-l M-l M-8 M-9 N-l N-l N-l N -ll 0 -
1 o - i o - i 0-2 P-l P-l P-l Q-i Q -l Q-2 Q-3 Q-5 Q-6 Q-7 Q-7 Q-7
Q-8 Q-l0 Q-13 Q-14 Q-i5 Q-i5 Q-15 Q-16 Q-19 Q-19 Q-19 Q-19 Q-20
www.FreeLibros.me
23. Prefacio Novivas msenfragmentos, conctate. EdgarMorgan
Foster Bienvenido a CmoprogramarenJava,novenaedicin. Este libro
presentalas tecnologas de vanguardia paraestudiantes, profesoresy
desarroliadores desoftware. El nuevo captulo 1 atrae la atencin de
los estudiantes con hechos y cifras fascinantes, para que
encuentren ms emocionante el hecho de estudiar sobre las
computadoras y la programacin. Ofrece los siguiente: una tabla
sobre algunos proyectos de investigacin que se hacen posibles
gracias a las computadoras; un anlisis sobre el hardware y las
tendencias tecnolgicas actuales; jerarqua de datos;
unatabladeplataformasdeaplicacionesmvilesyde Internet;
unanuevaseccinsobreredessociales; una introduccin aAndrid; una
tabla de los servicios Web ms populares; una tabla de las
publicaciones tecnolgicasy de negocios, adems de lossiriosWeb que
le ayudarnaestar aldacon las noticias y ten dencias ms recientes
sobre tecnologa;y ejercicios actualizados. El libro es apropiado
para secuencias de cursos introductorios apoyados en las
recomendaciones curriculares de ACM/IEEE y sirve como preparacin
para el examen de Colocacin avanzada (AP) de
cienciascomputacinales. Nosenfocamosenlasmejoresprcticasde
ingenieradesoftware. Labasedellibroesnuestroreconocido mtodo de
cdigo activo:los conceptosse presentanen el contextode programas
funcionales completos, en lugar de hacerlo a travsde fragmentos
separados de cdigo. Cada ejemplo de cdigo completo viene
acompaadodeejemplosdeejecucionesactuales.Todoelcdigofuenteestdisponibleenwww.deite
l.com/ books/jhtp9/ (eningls)yen
elsirioWebdeestelibrowww.pearsonenespaol.com/deitel (enespaol).
Sisurgealgunadudaopreguntamientrasleeestelibro,enveuncorreoelectrnicoadeitel@deite
l.com; leresponderemosalabrevedad.
Paraobteneractualizacionessobreeste libro,visitevavw.deite
l.com/books/ jhtp9/, sganosenFacebook (vmm deite l.com/deitel
fan)yTwitter(@deitel). Tambinpuedesuscribirse
alboletndecorreoelectrnico DeitePBuzzOnline(vom.deite
l.com/newsletter/subscri be.html). Caractersticas nuevas y
mejoradas He aqu las actualizaciones que realizamosala9aedicin:
Java StandardEdition (SE) 7 Fcil de usar como libro para Java SE 6
y Java SE 7. Hay unas cuantas caractersticas de Java
StandardEdition (SE) 7que afectan aloscursosde
cienciascomputacionales CS 1yCS 2. Cubrimos esas caractersticas en
secciones modulares opcionales que se pueden incluir u omitir con
facilidad. He aqu una parte de la nueva funcionalidad: objetos Stri
ng en instrucciones switch, la instruc cin try con recursos
(try-with-resources) paraadministrarobjetosAutoClosabl
e,multi-catch para definir un solo manejador de excepciones en
sustitucin de varios que realizan la misma tarea, las API del
sistema de archivos NIO y la inferencia de tipos de objetos
genricos a partir de lavariable alaque estn asignados, mediante el
uso de lanotacin o . Tambin veremos las generalidades sobre las
nuevas caractersticas de laAPI concurrente. www.FreeLibros.me
24. x x Prefacio Nuevas API del sistema de archivos de Java SE
7. Ofrecemos una versin en lnea alternativa (en ingls) del captulo
17, Archivos, flujos y sealizacin de objetos, que se volvi a
implementar con las nuevasAPI del sistemade archivosdeJava SE 7.
VersionesAutoClosable de Connection, Statem enty ResultSetdeJava SE
7. Con elcdigo fuen te para el captulo 28 (en ingls),
proporcionamos unaversin del primer ejemplo del captulo que se
implement mediante el uso de lasversiones AutoClosable de
Connection, Statementy ResultSet. Los objetos AutoClosable reducen
la probabilidad de fugas de recursos cuando se utilizan con la
instruccin try con recursos (try-with-resources) de Java SE 7, la
cual cierra de manera automtica los objetos AutoClosabl e que se
asignan en los parntesis despus de la palabra clave try.
Caractersticaspedaggicas Mejoramoselconjunto deejerciciosMarcarla
diferencia* Lealentamosautilizarlascomputadoras e Internet para
investigar y resolver problemas sociales relevantes. Estos
ejercicios estn diseados para aumentar la conciencia y el anlisis
en torno a los problemas importantes a los que se enfrenta el
mundo. Esperamos que usted los aborde con sus propios valores,
polticas y creencias. D un vis tazo a nuestro nuevo Centro de
recursos para marcar una diferencia (en ingls) en www.dei te l.com/
MakingADif ference, en dondeobtendr ideas adicionales que tal
vezdesee investigar ms a fondo. Nmerosdepginapara lostrminos
claveen losresmenesde cada capitulo. En lalistade trmi nos claveque
aparece en el resumen de cada captulo incluimos el nmero de
pginadonde se define el trmino. Comentarios en video. En el sitio
Webde este libro encontrar comentarios en video (VideoNotes), en
ingls, en las que el coautor Paul Deitel explica con detalle la
mayora de los programas de los captulos bsicos. Los profesores nos
han dicho que estos comentariosconstituyen un recurso valioso
parasus estudiantes. Tecnologa de objetos Programacin y diseo
orientados a objetos. En el captulo 1 presentamos la terminologa y
los conceptos bsicos de latecnologadeobjetos. En el captulo 3
losestudiantes desarrollansusprimeras clases y objetos
personalizados. Al presentar los objetos y las clases en los
primeros captulos hace mos que los estudiantes de inmediato piensen
en objetosy dominen estos conceptos [en los cursos que requieren
una metodologa en la que se presenten los objetos en captulos
posteriores, le reco mendamos el libro Java How to Program, Late
Objects Versin, 8aedition (en ingls), el cual presenta en los
primeros seis captulos los fundamentos de la programacin
(incluyendo dos sobre instruc ciones de control) y contina con
varios captulos que introducen los conceptos de programacin
orientada aobjetos en forma gradual]. Manejo de excepciones.
Integramos el manejo bsico de excepciones en los primeros captulos
del libro; adems los profesores pueden extraer con facilidad ms
material del captulo 11, Manejo de excepciones: un anlisis ms
detallado, para mostrarlo con anticipacin. Las clases Arraysy
ArrayList. El captulo 7 cubre la clase Arrays que contiene mtodos
para realizar manipulaciones comunes de arreglos y la clase
ArrayList que implementa una estruc tura de datos tipo arreglo,
cuyo tamao se puede ajustar en forma dinmica. Esto va de acuerdo
con nuestra filosofa de obtener mucha prctica al utilizar las
clases existentes, al tiempo que el estudiante aprendea
definirsuspropias clases. Casos de estudio orientados a objetos
(OO). La presentacin de las clases y los objetos en los pri meros
captulos del libro aportan casos de estudio de Tiempo, Empleado y
LibroCali ficaciones, que se entretejen a travs varias secciones y
captulos, e introducen conceptos de OO cada vez ms profundos.
www.FreeLibros.me
25. Prefacio x x i Ejemploprctico opcional: uso de UMLpara
desarrollar un diseo orientado a objetosy una implementacin en Java
de un cajero automtico (ATM). El UML (Lenguaje Unificado de
Modelado) es el lenguaje grfico estndar en la industria para
modelar sistemas orientados a ob jetos. Los captulos 12 y 13 (en el
sitio Web) contienen un Ejemplo prctico opcionalsobre diseo
orientado a objetos mediante el uso de UML. Diseamos e
implementamos el software para un cajero automtico (ATM) simple.
Analizamos un documento de requerimientos tpico, el cual espe
cificaelsistemaquesevaaconstruir.Determinamos lasclasesnecesarias
paraimplementresesistema, los atributos que deben tener esas
clases, los comportamientos que necesitan exhibir, y especificamos
cmo deben interactuar las clases entre s para cumplir con los
requerimientos del sistema. A partir del diseo creamos una
implementacin completa en Java. A menudo los estudiantes informan
que pasan por un momento de revelacin:el Ejemplo prctico les ayuda
a atar cabos y comprender enverdad laorientacin a objetos. Se
reorden lapresentacin de estructuras de datos. Empezamos con la
clase genrica ArrayList en el captulo 7. Como los estudiantes
comprendern los conceptos bsicos sobre losgenricos en lospri meros
captulos del libro,nuestros anlisis posteriores sobre
lasestructuras de datos ofrecen un trata miento ms detallado de las
colecciones de genricos, puesto que ensean a utilizar las
colecciones integradas de laAPI deJava. Luego mostramoscmo
implementar losmtodos y las clases genricas. Por ltimo, mostraremos
cmo crearestructuras de datos genricas personalizadas. Desarrollo
Weby de basesde datos (materialen inglsen elsitio Web dellibro)
JDBC 4. Elcaptulo 28, trata sobre JDBC 4; aquse utilizan
lossistemas de administracin de bases de datos Java DB/Apache Derby
y MySQL. El captulo contiene un Ejemplo prctico de OO sobre cmo
desarrollar una libreta de direcciones controlada por una base de
datos; en este ejemplo se de muestran lasinstrucciones preparadasy
el descubrimiento automtico de controladores de JDBC 4. Java Server
Faces (JSF) 2.0. Los captulos 29 y 30 se actualizaron para
introducir la tecnologa JavaServer Faces (JSF) 2.0, que simplifica
en gran medida la creacin de aplicaciones Web con JSF. El captulo
29 presenta ejemplos sobre la creacin de interfaces GUI de
aplicaciones Web, la vali dacin de formularios y el rastreo de
sesiones. El captulo 30 habla sobre las aplicaciones JSF con
troladas por datos y habilitadas para Ajax. Este captulo cuenta con
una libreta de direcciones Web muldnivel controlada por una base de
datos, la cual permite a los usuarios agregar contactos y bus
carlos. Esta aplicacin habilitada para Ajax proporciona al lector
una sensacin real del desarrollo desoftwareWeb 2.0. Servicios Web.
Elcaptulo 31, Web Services, demuestra cmo crear y consumir
servicios Web basa dosen SOAP^REST. Los Ejemplos prcticos presentan
eldesarrollo de losserviciosWebdeljuego de blackjacky un sistemade
reservaciones de una aerolnea. Java WebStarty elProtocolo
delanzamiento de reddeJava (JNLP). PresentamosJavaWeb Start y JNLP,
que permiten lanzar applets aplicaciones a travs de un navegador
Web. Los usuarios pueden instalar estos applets y aplicaciones en
forma local para ejecutarlos despus. Los progra mas tambin pueden
solicitar permiso al usuario para acceder a los recursos locales
del sistema y a los archivos: con lo cual usted podr desarrollar
applets y aplicaciones ms robustas que se ejecuten en forma segura
mediante el modelo de seguridad de caja de arena (sandbox) de Java,
el cual se aplica al cdigo descargado. Multihilos (en inglsen
elsitio Web) Multihilos. Rediseamos por completo el captulo 26,
Multithreading [con agradecimiento especial a laorientacinde Brian
GoetzyJoseph Bowbeer,dos de loscoautores deJava Concurrencyin
Practi- ce,Addison-Wesley, 2006]. La clase SwingWorker. Utilizamos
laclase SwingWorker para crearinterfacesde usuario multihilos.
www.FreeLibros.me
26. x x iv Prefacio GUIy grficos Presentacin escalable de GUIy
grficos. Los profesores que impartan cursos introductorios tie nen
una amplia gama de dnde elegir en cuanto a la cantidad de GUI y
grficos por cubrir: desde cero hasta una secuencia introductoria de
10 secciones breves, las cuales se entrelazan con los pri meros
captulos hasta llegar a un anlisis detallado en los captulos 14, 15
y 25 y en el apndice I (este ltimo y el apndice, en ingls en el
sitio Web). Administrador de esquemas GroupLayout. Analizamos el
administrador de esquemas GroupLayout dentro del contexto de la
herramienta de diseo de GUI en elentorno de desarrollo integrado
(IDE) NetBeans. Herramientas de ordenamientoy filtrado de JTable.
Elcaptulo 28 (en ingls en elsitio Web) uti liza estas herramientas
para reordenar los datos en un objeto JTable y filtrarlos mediante
expresio nes regulares. Otrascaractersticas Android Debido alenorme
intersen los telfonos inteligentesy tabletas basadasen Android,
hemos integrado unaintroduccinde trescaptulos paraeldesarrollo de
aplicaciones deAndroid (losencon trar en ingls en elsitio Web del
libro). Estos captulos son de nuestro nuevo libro Androidfor Pro-
grammers:AnApp-DrivenApproach delaserieDeitelDeveloper. Una vez que
aprendaJava, descubrir que es bastante simple desarrollary ejecutar
aplicaciones Android en elemulador gratuito que puede descargar de
developer.android.com. Conceptos comunes de ingeniera de software.
Analizamos el desarrollo gil de software, la refac- torizacin, los
patrones de diseo, LAMP, SaaS (Software as a Service), PaaS
(Platform as a Service), lacomputacin en la nube, elsoftware de
cdigo abierto y muchos conceptos ms. Grfico de dependencias El
grfico de la siguiente pgina muestra las dependencias entre los
captulos para ayudar a los profe sores a planear su programa de
estudios. Cmoprogramar enJava 9aedicin es un libro extenso, apro
piado para una gran variedad de cursos de programacin en distintos
niveles, en especial CS 1 y CS 2, adems de las secuencias de cursos
de introduccin en disciplinas relacionadas. El libro tiene una
organizacin modular, claramente delineada. Los captulos 1 a 11 y 14
a 17 forman una secuencia de programacin elemental accesible, con
una slida introduccin a la programacin orientada a objetos. Los
captulos opcionales 12 y 13 constituyen una introduccin accesible
al diseo orientado a obje tos con UML. Tanto la trayectoria de GUI
y grficos como los captulos 14, 15, 23, 24 y 25 forman una
secuencia sustancial de GUI, grficos y multimedia. Los captulos 18
a 22 forman una excelente cadena de estructuras de datos. Los
captulos 26 y 27 constituyen una slida introduccin a los con
ceptosde multihilos yel trabajo en red atravs de Internet.
Loscaptulos 28 a31 forman una secuencia enriquecida de desarrollo
Web con uso intensivo de bases de datos. Mtodos de enseanza
CmoprogramarenJava 9a edicinoontiene cientos de ejemplos
funcionales completos. Hacemos hin capi en la claridad de los
programasy nos concentramos encrear software bien diseado.
www.FreeLibros.me
27. Prefacio x x v Grfico de dependencias de captulos y mdulos
[Nota: las flechas que apuntan hada un captulo indican las
dependencias de ste. Algunos captulos tienen varias dependencias].
Programacin orientada a objetos 8 Clases y objetos:-* iri anlisis
ms detallado 9 Programadn orientada a objetos: herencia I 10
Programadn orientada aobjetos: polimorfismo II Manejo de
excepciones Diseo orientado a objetos con UML 12 (Opcional) Diseo
orientado aobjetos con UML I 13 (Opcional) Implementacin de un
diseo orientado a objetos /^structuras de datos 18 Recursividad1 19
Bsqueda, ordenamiento y Big O 20 Generic Collections 21 Generic
Classes and Methods 22Custom Generic Data Structures I . El captulo
18 depende de los captulos 14 y 15 para la GUI y los grficos que se
utilizan en un ejemplo. Introduccin I Introduccin a las
computadoras ya Java Introduccinalaprogramacin,
lasclasesylosobjetos 2 Introduccin a lasapfcacionesenJava- 3
Introduccin a lascbses. objetos, mtodosycadenas
Instruccionesdecontrol, mtodosy arreglos 4 Instrucciones de
control: Parte I 5 Instrucciones de control: Parte 2 I 6 Mtodos: un
anlisis ms detallado . 7 Arreglos y objetos A rra y L i s t V
Cadenas y archivos 16Cadenas, caracteres y expresiones regulares -
17Archivos, flujos y serializadn de objetos Multihilos y redes 26
Multithreading2 27 Networking3 Diseo de aplicaciones de escritorio
y Web controladas por bases de datos 28 JDBC4 ------------- 29JSF
Web Apps: Part I30 JSF Web Apps: Part 2 31 Web Services (Opcional)
Trayectoria de GUI y grficos 3.8 Uso de cuadros de dilogo4.14
Creacin de dibujos simples5.10 Dibujo de rectngulos yvalos I 6.13
Cobres y figuras rellenas7.15 Dibujo de arcos8.16Uso de objetos con
grficos9.8 Mostrartexto e imgnes usando etiquetas i10.8 Realizar
dibujos usando polimorfismo GUI, grficos, applets y multimedia
14Componentes de GUI: Parte I15 Grficos y Java2D - * 23 Applets and
Java Web Start5 I 24 Multimedia: Applets and Applications
I25GUIComponents: Rart 2 2. El captulo 26depende del captulo 14
para la GUI que se utiliza en un ejemplo yde los captulos 20-21para
otro ejemplo. 3. El captulo 27depende del captulo 23 para un
ejemplo que utiliza un applet. El Ejemplo prctico extenso (en Web)
depende del captulo 25 para la GUI y del captulo 26 para los
multihilos. 4. El captulo 28dependedel captulo 14 para la GUI que
se utiliza en un ejemplo. 5. En los captulos 24y27se cubren ms
applets. www.FreeLibros.me
28. x x v i Prefacio Resaltado de cdigo. Colocamos rectngulos
de color gris alrededor de los segmentos de cdigo clave en cada
programa. Uso defuentespara dar nfasis. Resaltamos en negritas,
dentro del texto, y en el ndice, los trmi nos claveen los
lugaresdonde se define. Enfatizamos los componentes en pantalla en
la fuente Helvtica en negritas (por ejemplo, el men Archivo) y
enfatizamos el texto del programa en la fuente Lucida (por ejemplo,
int x = 5;). Acceso Web. Todo elcdigo fuenteutilizado eneste libro
se puede descargar de: Captulos 2 a 19 (en espaol):
www.pearsonenespaol .com/deitel Captulos2 a31 (en ingls):
www.deitel .com/books/jhtp9 Objetivos. Las citas de aperturavan
seguidas de una lista de objetivos del captulo.
Ilustraciones/figuras. Integramos una gran cantidad de tablas,
dibujos lineales, diagramas UML, pro gramas ysalidas de programa.
lips deprogramacin. Incluimos tips de programacin para ayudarle a
enfocarse en los aspectos im portantes del desarrollo de programas.
Estos tips y prcticas representan lo mejor que hemos podido recabar
a lo largo de siete dcadas combinadas de experienciaen la
programacin y laenseanza. Buenas prcticas de programacin LasBuenas
prcticas de programacin sontcnicasque leayudarn aproducirprogra
masmsclaros,comprensiblesyfcilesdemantener. Errores comunes de
programacin AlponeratencinenestosErrores comunes de programacin
sereducelaprobabilidad dequeustedpuedacaerenellos. Tips para
prevenir errores Estostips contienen sugerenciasparaexponer
loserrores ogusanosinformticosy elimi narlosde susprogramas;
muchosde ellosdescriben aspectosdejava que evitan que en
trensiquieraasusprogramas. Tips de rendimiento
Estosrecuadrosresaltan lasoportunidadespara hacerque
susprogramasseejecuten ms rpidooparaminimizar
lacantidaddememoriaqueocupan. Tips de portabilidad Los Tips de
portabilidad le ayudan a escribir cdigo que pueda ejecutarse en
varias plataformas. Observaciones de ingeniera de software
LasObservaciones de ingeniera de
softwareresaltantemasdearquitecturay diseo, lo
cualafectalaconstruccindelossistemasdesofiware,especialmentelosdegranescala.
* n i Observaciones de apariencia visual B5B Las Observaciones de
apariencia visual resaltan lasconvencionesde la interfazgrfica
tleusuario.Adems,leayudanadisearinterfacesgrficasdeusuarioatractivasy
amiga blesenconformidadconlasnormasdelaindustria.
www.FreeLibros.me
29. Prefacio x x v ii Vietas de resumen. Presentamos un resumen
detallado del captulo, estilo lista con vietas, seccin por seccin.
Para facilitar la referencia, incluimos dentro del texto el nmero
de pgina donde aparecen bs trminos clave. Ejercicios de
autoevaluacin y respuestas. Se proveen diversos ejercicios de
autoevaluacin con sus respuestas para que los estudiantes
practiquen por su cuenta. Todos losejercicios en el Ejemplo prctico
opcional sobre elATM estn resueltosen su totalidad. Ejercicios. Los
ejerciciosde los captulos abarcan: Recordatorio simple de
laterminologay los conceptos importantes. Cul esel error eneste
cdigo? Qu haceeste cdigo? Escriturade instrucciones individuales y
pequeas porciones de mtodos y clases. Escriturade mtodos, clases y
programas completos. Proyectos importantes. En muchos captulos,
ejerciciosdel tipo Hacer ladiferencia. ndice. Incluimos un ndice
extenso. Donde se definen los trminos clave se resaltan con un
nmero de pgina en negritas. Software utilizado en Cmo
programarenJava 9aedicin Podr descargar todo elsoftware necesario
paraeste libro sincosto a travs deWeb. En laseccin Antes
deempezar,despus deeste Prefacio, encontrar vnculos paracada
descarga. Para escribir la mayora de los ejemplos de este libro
utilizamos el kit de desarrollo gratuito Java Standard Edition
Development Kit (JDK) 6. Para los mdulos opcionales de Java SE 7
utilizamos la ersin JDK 7 de acceso anticipado de OpenJDK. En los
captulos 29 a 31 tambin utilizamos el IDE Netbeans; en el captulo
28 usamos MySQL y MySQL Connector/J. Encontrar recursos y descargas
desoftware adicionales en nuestros Centros de recursos deJava,
ubicados en: www.deitel.com/ResoureeCenters.html Suplementos para
el profesor (en ingls) Lossiguientessuplementos
estndisponiblessloparaprofesoresatravs del Centro de recursos
parael pro fesorde Pearson (www.pearsonenespaol.com/deitel):
Diapositivas de PowerPoint!oon todo elcdigo y las figuras del
texto, adems de elementos envietasque sintetizan los puntos clave.
Test Item File (Archivo de pruebas) oon preguntas de opcin mltiple
(aproximadamente dos por cadaseccin del libro).
Manualdesolucionesconsoluciones para lagran mayorade losejercicios
definal de captulo. El accesoa estos recursosest limitado
estrictamente aprofesores universitarios que impartan cla ses con
base en el libro. Slo ellospueden obtener acceso atravsde
losrepresentantesde Pearson. No se proveen soluciones para los
ejercicios de proyectos. Revise nuestro Centro de recursos de
proyectos de programacin (www.deitel .com/Programmi ngProjects/),
en donde encontrar muchos ejerciciosadicionalesy proyectos nuevos.
Si no es un miembro docente registrado, pngase encontacto con su
representante de Pearson. www.FreeLibros.me
30. x x v iii Prefacio Reconocimientos Queremos
agradeceraAbbeyDeitely BarbaraDeitelpor lasextensas horasque
dedicaron aesteproyecto. Somos afortunados al haber trabajado en
este proyecto con el dedicado equipo de editores profesionales de
Pearson. Apreciamos laorientacin, inteligenciay energade Michael
Hirsch, editor en jefe de Cien ciascomputacionales.
CaroleSnyderreclut alosrevisores dellibro ysehizo cargo delproceso
de revisin. Bob Engelhardtsehizo cargo delaproduccin dellibro.
Revisores Queremos agradecer los esfuerzos de los revisores de
laoctava y novenaediciones, quienes revisaron ex haustivamente el
texto y los programas, y proporcionaron innumerables sugerencias
para mejorar la presentacin: LanceAndersen (Oracle),Soundararajan
Angusamy (SunMicrosystems),Joseph Bowbeer (Consultor),WilliamE.
Duncan (LouisianaState University),Diana Franklin
(UniversityofCalifornia, Santa Barbara), Edward E Gehringer (North
Carolina State University), Huiwei Guan (Northshore Community
College), Ric Heishman (George Masn University), Dr. Heinz Kabutz
(JavaSpecialists. eu), Patty Kraft (SanDiego StateUniversity),
Lawrence Premkumar (SunMicrosystems),Tim Margush (University
ofAkron), Sue McFarland Metzger (Villanova University), Shyamal
Mitra (The University ofTexas at Austin), Peter Pilgrim
(Consultor), Manjeet Rege, Ph.D. (Rochester Insritute of Techno
logy), Manfred Riem (Java Champion, Consultor, Robert Half), Simn
Ritter (Oracle), Susan Rodger (Duke University), Amr Sabry (Indiana
University), Jos Antonio Gonzlez Seco (Parlamento de Andaluca),
Sang Shin (Sun Microsystems), S. Sivakumar (Astra Infotech Prvate
Limited), Raghavan Rags Srinivas (Inmit), Monica Sweat (Georgia
Tech), Vinod Varma (Astra Infotech Prvate Limited) yAlexander Zuev
(Sun Microsystems). Bueno,ahlo tiene!A medida que
leaellibro,apreciaremosconsinceridadsuscomentarios,crticas,
correccionesy sugerencias para mejorarlo. Dirija todasu
correspondencia a: d e ite l@ d e ite l. com Leresponderemos
oportunamente. Esperamos quedisfrute el trabajo coneste libro.
Buenasuerte! Pauly Harvey Deitel Acerca de los autores Paul J.
Deitel, CEO y Director Tcnico de Deitel & Associates, Inc., es
egresado del Sloan School of Management del MIT, en donde estudi
Tecnologa de la Informacin. A travs de Deitel & Asso ciates,
Inc., haimpartido cursos deJava, C, C++, C#,Visual Basicy
programacin en Internet aclientes de la industria, como: Cisco,
IBM, Siemens, Sun Microsystems, Dell, Lucent Technologies,
Fidelity, NASA en el Centro Espacial Kennedy, el National Severe
Storm Laboratory, White Sands Missile Range, Rogue Wave Software,
Boeing, SunGard Higher Education, Stratus, Cambridge Technology
Partners, OneWave,Hyperion Software, AdraSystems, Entergy,
CableData Systems, NortelNetworks, Puma, iRobot, Invensys y muchos
ms. l y su coautor, el Dr. Harvey M. Deitel, son autores de los li
bros de programacin ms vendidos en el mundo. Dr. Harvey M. Deitel,
Presidente y Consejero de Estrategia de Deitel & Associates,
Inc., tiene 50 aos de experiencia en el campo de lacomputacin. El
Dr. Deitel obtuvo una licenciatura y una maes tra por el MIT y un
doctorado de la Universidad de Boston. Tiene muchos aos de
experienciacomo profesor universitario, la cual incluye un puesto
vitalicio y el haber sido presidente del Departamento de Ciencias
de laComputacin en Boston College antes de fundar, con su hijo
PaulJ. Deitel, Deitel & Associates, Inc. l y Paul son coautores
de varias docenas de libros y paquetes multimedia LiveLessons,
ypiensanescribir muchos ms. Lostextosde losDeitelse han ganado
elreconocimiento internacionaly han sido traducidos al japons,
alemn, ruso, chino, espaol, coreano, francs, polaco, italiano,
portu gus, griego, urdti y turco. El Dr. Deitel ha impartido
cientos de seminarios profesionales para grandes empresas,
instituciones acadmicas, organizaciones gubernamentalesy diversos
sectores del ejrcito. www.FreeLibros.me
31. Prefacio x x ix Capacitacin corporativa de Deitel &
Associates, Inc. Deitel & Associates, Inc., es una empresa
reconocida a nivel mundial, dedicada al entrenamiento cor porativo
y la creacin de contenido. La empresa proporciona cursos impartidos
por profesores en las instalaciones de sus clientes en todo el
mundo, sobre la mayora de los lenguajes y plataformas de
programacin, como Java, C++, Visual C++, C, Visual C#, Visual
Basic,XML, Python, tec nologa de objetos, programacin en Internet y
World Wide Web, desarrollo de aplicaciones para Android e Phone, y
una lista cada vez mayor de cursos adicionales de programacin y
desarrollo desoftware. Los fundadores de Deitel & Associates,
Inc. son Paul J. Deitel y el Dr. Harvey M. Deitel. Entre sus
clientes estn muchas de las empresas ms grandes del mundo, agencias
gubernamentales, sectores del ejrcito e instituciones acadmicas. A
lo largo de su sociedad editorial de 35 aos con Hentice
Hall/Pearson, Deitel & Associates, Inc. ha publicado libros de
texto de vanguardia sobre programacin, libros profesionales, y
cursos de video UveLessons con base en DVD y Web. Puede contactarse
con Deitel & Associates, Inc. y con los autores por medio de
correo electrnico: d e ite l d e ite l. com Para conocer ms acerca
de Deitel & Associates, Inc., sus publicaciones y su currculum
mundial de laSerie de Capacitacin CorporativaDive Int
32. www.FreeLibros.me
33. Antes de empezar Esta seccin contiene informacin que debera
revisar antes de usar este libro, adems de las instruc ciones para
asegurar que su computadora est configurada de manera apropiada
para utilizarla con el libro. Publicaremos las actualizaciones a la
seccin Antes de empezar (en caso de necesitarse) en el siguiente
sitio Web: w w w .deitel.com /books/jhtp9/ Convenciones de fuentes
y nomenclatura Utilizamos fuentes paradiferenciar los componentes
en la pantalla (como los nombres de mens y sus elementos) y el
cdigo o los comandos enJava. Nuestra convencin hace hincapi en los
componentes en pantalla en una fuente Helvtica sans-serifen
negritas (por ejemplo, el men Archivo) y enfatiza el cdigo ylos
comandos enJavaen una fuente Lucidasans-serif(por ejemplo,
System.out.pri nt1n()). Software a utilizar con el libro Podr
descargartodo elsoftware necesario para este libro sin costo a
travs de Web. Kit de desarrollo de softwareJava SE (JDK) 6y 7 Para
escribir la mayora de los ejemplos de este libro manejamos el kit
de desarrollo gratuito Java Stan dard Edition Development Kit (JDK)
6, que estdisponible en: www. o r a c le . com/tec hnetw ork/j a v
a /j avase/down1oads/i nde x . html Para los mdulos opcionales
deJava SE 7, empleamos laversinJDK 7 de acceso anticipado de Open-
JDK, que estdisponible en: d ic . s un. com. edgesu i t e . n e
t/jd k7 /b i na r i e s - / i ndex. html Java DB, MySQLy MySQL
Connector/J En el captulo 28 (en ingls en el sitio Web del libro)
utilizamos los sistemas de administracin de bases de datos Java DB
y MySQL Community Edition. Java DB es parte de la instalacin del
JDK. Al momento de escribir este libro el instalador de 64 bits
delJDK no instalabaJava DB en forma apro piada. Si usted utiliza
laversin de 64 bits deJava, tal vez necesite instalarJava DB por
separado. Puede descargarJava DB de: www. o r a c le . com/tec
hnetwo r k / j ava/ j av adb/down1o ads/i nde x . html Al momento
de escribir este libro, la versin ms reciente de MySQL Community
Edition era la 5-5.8. Para instalar MySQL Community Edition en
Windows, Linux o Mac OS X, consulte las ge neralidadessobre la
instalacin parasu plataformaen: Windows: dev.m ysql.com /doc/refm
an/5.5/en/w in d o w s-in sta lla tio n .h tm l Linux: dev.m ysql.
com/doc/refman/5. 5 / e n / lin u x - in s ta l1atio n -rp m . html
Mac OSX: d ev.m ysq l.co m /d o c/refm an /5.5 /en /m aco sx-in
stallatio n .h tm l www.FreeLibros.me
34. x x x ii Antes de empezar Sigacon cuidado lasinstrucciones
paradescargar e instalar elsoftware en su plataforma, el cual est
dis ponible en: dev.mysql.com/downloads/mysql/ Tambin necesita
instalar el MySQL Connector/J (laJ se refiere aJava), que permite a
los progra mas usarJDBC parainteractuar con MySQL. Puede descargar
el MySQL Connector/J de dev.mysql.com/down1oads/connector/j/ Al
momento de escribir este libro, laversin disponible de MySQL
Connector/J era la 5.1.14. La do cumentacin de Connector/J se
encuentra en dev.mysql.com/doc/refman/5.5/en/connector-j.html
Rarainstalar MySQL Connector/J,sigacon cuidado las instrucciones
deinstalacin en:
dev.mysql.com/doc/refman/5.5/en/connector-j-installi ng.html No le
recomendamos modificar la variable de entorno CLASSPATHde su
sistema, segn se indica en las instrucciones de instalacin. En
cambio le ensearemos a usar MySQL Connector/J especificndolo como
una opcin en la Enea de comandos alejecutar sus aplicaciones. Cmo
obtener los ejemplos de cdigo Los cdigos de los ejemplosde este
libro estn disponibles para descargarlos en
www.pearsonenespaol.com/deitel Si no est registrado an en nuestro
sitio Web (de los autores), vayaa www.deite l.comy haga clic en el
vnculo Register debajo de nuestro logotipo en la esquina superior
izquierda de la pgina. Escriba su informacin. El registro no tiene
ningn costo y no compartiremos su informacin con nadie. Slo le
enviaremos correos electrnicos relacionados con laadministracin de
su cuenta. Tambin puede regis trarse de manera independiente para
recibir nuestro boletn gratuito de correo electrnico DeitelBuzz
Online en www.deitel .com/newsletter/subscribe .html. Una vez que
se registre en el sitio, recibir un correo electrnico de
confirmacin con su cdigo de verificacin. Haga clic en elvnculo del
correo electrnicodeconfirmacinpara completarsu registro.
Configuresu cliente de correo electrnico de modo que permita los
correos electrnicos provenientes de deitel .com, para asegurar que
el correo electr nico de confirmacin no se filtrecomo correo
basura. Despus vaya a www.deite l.come inicie sesin usando el
vnculo Login debajo de nuestro logo tipo en la esquina superior
izquierda de la pgina. Vaya a www.deitel .com/books/jhtp9.
Encontrar elvnculo paradescargar los ejemplos bajo el encabezado
Download Code Examples and Other Premium Contenfor Registered Users
(Descargarejemplos decdigo ycontenido especial adicional
parausuarios registrados). Anote la ubicacin en donde eligi guardar
el archivo ZIP en su computadora. En estelibro suponemosque
losejemplosseencuentran eneldirectorio C: Ej emplos desucompu
tadora. Extraiga el contenido del archivo Ejemplos.zip; utilice una
herramienta como WinZip (www.winzi p.com)o las herramientas
integradas de su sistemaoperativo. Cmo establecer la variable de
entorno PATH La variable de entorno PATHen su computadora designa
los directorios en los que la computadora debe buscar
aplicaciones,como lasque le permiten compilary ejecutar sus
aplicacionesdeJava (las cuales son javacy java,respectivamente).
SigaconcuidadolasinstruccionesdeinstalacinparaJavaensuplataforma,
de modoqueseaseguredeestablecerde manera correcta la
variabledeentorno PATH. www.FreeLibros.me
35. Antes de empezar x x x iii Si no establece la variable PATH
de manera correcta, cuando utilice las herramientas del JDK reci
bir un mensaje como ste: ja v a no se reconoce como un comando in
te rn o o extern o , programa o a rch iv o por lo te s e je c u ta
b le . En este caso, regrese a las instrucciones de instalacin para
establecer la variable PATH y vuelva a com probar sus pasos. Si
descarg una versin ms reciente del JDK, tal vez tenga que cambiar
el nombre deldirectorio de instalacin delJDK en lavariable PATH.
Cmo establecer la variable de entorno CLASSPATH Siintenta ejecutar
un programadeJavay recibe un mensaje como ste: Exceptio n in thread
main java.lan g .N o C lassD e fFo u n d Erro r: SuClase entonces
su sistema tiene una variable de entorno CLASSPATH que debe
modificar. Para corregir este error, siga los pasos para establecer
lavariable de entorno PATH, localice lavariable CLASSPATH y modifi
que su valor para que incluya el directorio local: que por lo
general se representa como un punto (.). EnWindows agregue al
principio del valor de CLASSPATH (sin espacios antes o despus de
esos caracteres). En otras plata formas, sustituya el punto y coma
con los caracteres separadores de ruta apropiados: por lo general,
el signo de dos puntos (:). Apariencia visual Nimbus de Java Java
tiene una apariencia visual multiplataforma elegante, conocida como
Nimbus. En los programas con interfaz grfica de usuario, hemos
configurado nuestros sistemas para usar Nimbus como la apa
rienciavisual predeterminada. Para establecer Nimbus como la opcin
predeterminada para todas las aplicaciones de Java, debe crear un
archivo de texto llamado sw ing. p ro p e rtie s en la carpeta l ib
de las carpetas de instalacin delJDK y delJRE. Coloque lasiguiente
lnea decdigo en elarchivo: swi n g . d e f a u lt i af=com . s u n
. j a v a . swi n g . pl a f . ni mbus. NimbusLookAndFeel Para
obtener ms informacin sobre cmo localizar estas carpetas de
instalacin, visite j a va. s un. com/ javase/6/w ebnotes/i n s t a
ll/ i ndex. htm l. [Nota: adems del JRE individual hay un JRE
anidado en su carpeta de instalacin del JDK. Si utiliza un IDE que
depende del JDK (como NetBeans), tal vez tambin tenga que colocar
el archivo swi ng. prope r t i es en la carpeta 1i b de lacarpeta j
re anidada]. Ahora est listo para empezar sus estudios de Java con
el libro Cmoprogramar enJava, 9aedicin. Esperamos quedisfrute el
libro! www.FreeLibros.me
36. www.FreeLibros.me
37. Introduccin a las computadoras y aJava
www.FreeLibros.me
38. Plangeneral 2 Captulo I Introduccin a las computadoras y a
Java1.1 Introduccin 1.2 Computadoras: hardware y software 1.3
Jerarqua de datos 1.4 Organizacin de una computadora 1.5 Lenguajes
mquina, lenguajes ensambladores y lenguajes de alto nivel 1.6
Introduccin a la tecnologa de los objetos 1.7 Sistemas operativos
1.8 Lenguajes de programacin 1.9 Java y un tpico entorno de
desarrollo en Java 1. 10 Prueba de una aplicacin en Java l.l I Web
2.0: Las redes sociales 1.12 Tecnologas de software 1.13 Cmo estar
al da con las tecnologas de informacin 1.14 Conclusin Ejercicios de
autoevaluacin | Respuestasa los ejercicios de
autoevaluacinEjerciciosMarcar la diferenciaRecursospara marcar la
diferencia l.l Introduccin Bienvenido aJava: el lenguaje de
programacin de computadoras ms utilizado en el mundo. Usted ya est
familiarizado con las poderosas tareas que realizan las
computadoras. Mediante este libro de texto,
ustedescribirinstrucciones paraordenaralascomputadoras que
realicenesostipos de tareas. El software (lasinstrucciones que
usted escribe) controla elhardwarefas computadoras). Aprender sobre
laprogramacin orientada a objetos-, la metodologa de programacin
clave de la actualidad. En este texto creary trabajarcon muchos
objetosdesoftware. Javaesellenguajepreferido
parasatisfacerlasnecesidadesde programacinempresarialesde muchas
organizaciones. Tambin se ha convertido en el lenguaje de eleccin
para implementar aplicaciones ba sadas en Internetysoftware
paradispositivos que se comunican atravs de una red. Hoy en da hay
en uso msde mil millones de computadoras de propsito general, adems
de miles de millones de telfonos celulares, telfonos inteligentes
(smartphones) y dispositivos porttiles (como lascomputadoras tipo
tableta) habilitados paraJava. De acuerdo con un estudio realizado
poreMarketer, elnmero deusuarios mvilesde Internet llegaracercade
134 millones para2013.1Otros estudios han proyectado ventas de
telfonos inteligentes que sobrepasa a las ventas de computadoras
personales en 20112yventasde tabletasque representarn cerca del20%
de todas lasventasde computadoras persona lespara2015.3Para2014,
seesperaqueel mercado delasaplicaciones detelfonos
inteligentesexcedalos $40 mil millones,4lo cual generar
oportunidades importantes para la programacin de aplicaciones
mviles. EdicionesdeJava: SEyEEyME Java ha evolucionado con tanta
rapidez que esta novena edicin de Cmoprogramar enJava basada
enJavaStandard Edition 6 (JavaSE 6) con mdulosopcionalessobre
lasnuevascaractersticasdeJava SE 7 se public slo 15 aos despus de
la primera edicin. Javase utiliza en un espectro tan amplio de
aplicaciones, que cuenta con otras dos ediciones. Java Enterprise
Edition (Java EE) est orientada hacia el desarrollo de aplicaciones
de red distribuidas, de gran escala, y aplicaciones basadada en
Web. 1
wttw.clrcleid.com/posts/mobile_internet_users_to_reach_134_jnil
lion by_2013/. 2 v%vw.pcworld.com/article/171380/more
smartphones_than_desktop_pcs_by_2011.html. 3
vwv.forrester.com/ER/Press/Release/0,1769,1340,00.html. 4 Inc.
diciembrede 2010/enero de 2011, pginas 116-123.
www.FreeLibros.me
39. l.l Introduccin 3 En el pasado, la mayora de las
aplicaciones de computadora se ejecutaban en computadoras indepen
dientes (que no estaban conectadas en red). En la actualidad, las
aplicaciones se pueden escribir con miras a comunicarse entre
computadoras en todo el mundo por medio de Internet y Web. Ms
adelante en este libro hablaremos sobre cmo crear dichas
aplicaciones basadas en Web con Java. Java Micro Edition (Java ME)
est orientada hacia el desarrollo de aplicaciones para pequeos
dispositivos con memoria restringida, como los telfonos
inteligentes BlackBerry. El sistema operativo Android de Google que
se utiliza en muchos telfonos inteligentes, tabletas (pequeas
computadoras ligeras y mviles con pantallas tctiles), lectores
electrnicos y otros dispositivos utiliza una versin personalizada
de Javaque no se basa en Java ME. La computacin en la industriay la
investigacin Estos son tiempos emocionantes en el campo de la
computacin. Muchas de lasempresas ms influyen tes y exitosas de las
ltimas dos dcadas son compaas de tecnologa, como Apple, IBM,
Hewlett Packard, Dell, Intel, Motorola, Cisco, Microsoft,
Google,Amazon, Facebook,Twitter, Groupon, Fours- quare, Yahoo!,eBay
y muchas ms; que son fuentes de empleo importantes para las
personas que estudian ciencias computacionales, sistemas de
informacin o disciplinas relacionadas. Al momento de escribir este
libro, Apple era la segunda compaa ms valiosa del mundo, con la
tecnologa ms preciada.5 Las computadoras tambin se utilizan mucho
en la investigacin acadmica e industrial. La figura 1.1 provee unos
cuantos ejemplos de las increbles formas en que se utilizan las
computadoras, tanto en la investigacin como en la industria. Nombre
Descripcin Internet Proyecto Genoma Humano Internetuna red globalde
computadoras se hizo posible graciasa la
convergenciadelacomputaciny lascomunicaciones.Tiene sus racesen
ladcadade 1960; supatrocinio estuvoa cargodel Departamento de
Defensa de EstadosUnidos. Diseadaen un principio paraconectar
lossistemas de cmputo principalesdealrededordeuna docena
deuniversidades yorganiza ciones deinvestigacin, en laactualidadson
miles demillones de compu tadorasy dispositivoscontroladospor
computadoraen todo el mundo losque utilizan Internet. Las
computadoras descomponen las extensastransmisiones en paquetes en
elextremo emisor,envan lospaquetesa losreceptores destinados
yaseguran que sereciban en secuenciay sin errores en el extremo
receptor. Deacuerdo con un estudio de Forrester Research, el
consumidor estadounidense promedio invierteen laactualidad la misma
cantidad de tiempo en lneaque elque pasaen latelevisin ( f o r r e
s t e r . com/ rb / Research/unde rs ta n d i ng_changi n g _n e e
d s_o f_u s_o n 1i ne_consum er/g/ id / 5 7 8 6 1 / t/2 ). El
Proyecto GenomaHumano se fund para identificaryanalizarlosms de
20,000 genes en elADN humano. Elproyecto utiliz programas de
computadora paraanalizardatos genticoscomplejos, determinarlas
secuenciasde losmilesde millonesde paresde bases qumicas que
componen elADN humano yalmacenarla informacin en bases de datosque
sehan puesto a disposicin delosinvestigadoresen muchos campos. Esta
investiga cin haocasionado una tremenda innovacin ycrecimiento en
la industria dela biotecnologa. Fig. l.l | Unos cuantos usos para
las computadoras (parte I de 3). 5 w v w .zd n e t.co m /b lo g /a
p p le /a p p le -b e co m e s-w o rld s-se co n d -m o st-va l
uable-com pany/9047. www.FreeLibros.me
40. Captulo I Introduccin a las computadoras y a Java Nombre
ReddelaComunidad Mundial Imgenespara diagnsticomdico GPS
SYNCdeMicrosoft AMBER Alert Robots Descripcin LaReddelaComunidad
Mundial (wvwv.worldcoranunit y g r id .o r g ) esuna
reddecomputacinsinfinesde lucro. Laspersonasdetodoelmundodonan el
poderde procesamientodecmputoqueno utilicen, mediantela
instalacindeun programadesoftwaresegurogratuito que permitealaRed
delaComunidad Mundialaprovecharesepodersobrantecuando las
computadorasestn inactivas. Elpoderdecmputo seutiliza en lugardelas
supercomputadoraspararealizarproyectosdeinvestigacincientficosque
estn haciendoladiferencia,entreellos: eldesarrollodeenergasolara un
precioasequible,elsuministro deaguapotablealmundo endesarrollo, la
luchacontraelcncer, lacura deladistrofiamuscular,elhallazgode
medicamentosantiviralescontralainfluenza,elcultivodearrozms
nutritivoparalasregionesquecombaten lahambruna yotrosms.
Lasexploracionesportomografa computarizada (CT) con rayosX,tambin
conocidascomoCAT(tomografaaxialcomputarizada), toman rayosXdel
cuerpodesdecientosdengulosdistintos.Seutilizancomputadoraspara
ajustarlaintensidaddelrayoX,con locualseoptimizalaexploracinpara
cadatipo detejido,para despuscombinartoda lainformacinycrearuna
imagen tridimensional (3D). LosdispositivosconSistemade
posicionamientoglobal (GPS) utilizanuna
reddesatlitesparaobtenerinformacincon baseenlaubicacin.Varios
satlitesenvansealesconetiquetasde tiempoaldispositivo GPS,elcual
calculaladistancia haciacadasatlitecon baseenlahoraenquelasealsali
delsatliteyserecibi. La ubicacin decadasatliteyladistanciahaciacada
unodeellosseutilizanpara determinarlaubicacinexactadel dispositivo.
Segnlaubicacinen laqueustedseencuentre, losdispositivosGPSpueden
proveerindicacionespasoapaso,ayudarleaencontrarcon
facilidadnegocios cercanos(restaurantes,gasolineras,etctera)ypuntos
deinters,oayudarlea encontrarasusamigos.
AhoramuchosautosFordcuentancon la tecnologaSYNCdeMicrosoft, la cual
proveecapacidadesde reconocimientoysntesisdevoz (paraleer
mensajesdetextoa lospasajeros)que lepermiten usarcomandosdevozpara
explorarmsica,solicitaralertasdetrficoyotrascosasms. ElSistema
dealertaAMBER(DesaparecidosenAmrica: Sistemade
TransmisindeRespuestaaEmergencias) seutilizaparabuscarnios
secuestrados. Lasautoridadesnotifican tantoalasdifusorasdeTVy radio
comoalosfuncionariosdecarreterasestatales,quienesasu veztransmiten
alertasenTV, radio,sealescomputarizadasenlascarreteras,
Internetylos
dispositivosinalmbricos.AMBERAlertseasocirecientementecon Facebook.
Cuyosusuariospueden hacerdicen Like(Megusta)en las
pginasdeAMBERAlertsegnla ubicacin, para recibiralertasensus
transmisionesdenoticias. Losrobotssonmquinascomputarizadasque
puedenrealizartareas(como;
trabajosfsicos),responderalosestmulosyotrascosasms.Sepuedenutilizar
paratareasdiarias(porejemplo,
laaspiradoraRoombadeRobot),deentreteni
miento(comolasmascotasrobticas),combatemilitar,exploracinespacialy
enlaprofundidaddelocano, manufacturayotrasms.En2004,eltrotamun
dosmarcianodelaNASAacontrolremoto-queutilizabatecnologaJavaex
plorlasuperficieparaaprendersobrelahistoriadelaguaenelplaneta. Fig.
l . l | Unos cuantos usos para las computadoras (parte 2 de 3).
www.FreeLibros.me
41. 1.2 Computadoras: hardware y software 5 Nombre Descripcin
Unalaptoppornio (OLPC) Programacin dejuegos TV por Internet
UnaLaptop PorNio (OLPC)ofrecelaptopseconmicas, habilitadas para
Internetyde bajoconsumodeenergaparalosniospobresentodoel
mundo;graciasaellofomentan elaprendizajey reducen
laseparacindigital (one.1aptop.org ).
Alproveerestosrecursoseducativos, OLPCaumenta las
oportunidadesdequelosniospobresaprendan yhagan ladiferenciaensus
comunidades. Elnegociode losjuegosdecomputadoraesms grandequeelde
las pelculasdeestreno.Eldesarrollode losvideojuegosmssofisticados
puede costarhasta $100 millones. Eljuego
CaliofDuty2:ModernWarfarede Activision, lanzadoal
pblicoennoviembrede 2009, obtuvo $ 3 1 0 millones ensloun daen
NorteamricayelReinoUnido (n e w s.cn e t.c o m /8 301- 1 3 7 7 2 _3
-1 0 3 9 6 5 9 3 -5 2 .h tm l?tag -m n co l ;txt)!
Losjuegossocialese.nlnea, quepermiten ausuariosde
todoelmundocompetirentres,estncrecien docon rapidez. Zyngacreadorde
juegosen lnea populares,como FarmvilleyMafiaWarssefunden 2007
yyacuentacon msde215 millonesde usuariosmensuales.
Paradarcabidaalaumentoen eltrfico, Zyngaagregacasi 1 ,0 0 0
servidores porsemana (te c h c ru n c h . co m /2 0 10/09/22/zyn g
a-m o ves-l- p e ta b y te - o f- d a ta - d a ily - a d d s - 1 0
0 0 -se rv e rs-a -w e e k /)! Lasconsolasde videojuegostambin
seestn volviendocadavezmssofisticadas. ElcontrolremotodelWii
utilizaun
acelermetro(paradetectarlainclinacinylaaceleracin)juntocon un
sensorquedetermina haciadnde apuntaeldispositivo, locuallepermite
responderalmovimiento.Alhacerademanescon elcontrolremotodelWii en
lamano, usted puedecontrolarelvideojuegoen lapantalla. Con Kinect
paraelXbox3 6 0 de Microsoft, ustedeljugadorseconvierteen el
controlador. Kinect utilizaunacmara, un sensordeprofundidad y
software sofisticado paraseguirelmovimientodesucuerpo,
locuallepermite controlareljuego (e n .w ik i p e d ia .o r g / w
ik i/ K in e c t ). Con losjuegosde Kinectpuede bailar,
hacerejercicio, jugardeportes,entrenaranimales
virtualesyvariasactividadesms. LosreceptoresdeTV por Internet
(comoAppleTVyGoogleTV) ledan accesoadiversos
tiposdecontenidocomojuegos, noticias, pelculas,
programasdetelevisinyms,con locual ustedpuedeaccederunagran
cantidaddecontenido bajodemanda;yano necesitadependerdelos
proveedoresde televisinporcableovasatlitepararecibircontenido. F ig
. l . l | Unos cuantos usos para las computadoras (parte 3 de 3).
1.2 Computadoras: hardware y software Unacomputadora esun
dispositivo capazderealizarclculosy tomardecisiones lgicascon
unarapidez increblemente mayor que los humanos. Muchas de las
computadoras personales contemporneas pue den realizar miles de
millones de clculos en un segundo ms de lo que un humano podra
realizar en toda su vida. Las supercomputadorasya pueden realizar
miles de billonesde instrucciones por segundo! Dicho de otra forma,
una computadora de mil billones de instrucciones por segundo puede
realizar en un segundo msde 100,000 clculosparacadaunode
loshabitantesdelplaneta!Yestoslmitessuperio resestn aumentando con
rapidez! www.FreeLibros.me
42. 6 Captulo I Introduccin a las computadoras y a Java Las
computadoras procesan datos bajo el control de conjuntos de
instrucciones conocidas como programas de computadora. Los cuales
guan a la computadora a travs de conjuntos ordenados de acciones
especificadas por gente conocida como programadores de
computadoras. A los programas que se ejecutan en una computadora se
les denomina software. En este libro aprender lametodologa de
programacin clave de la actualidad que mejora la productividad del
programador, con lo cual se reducen los costosde desarrollo del
software:programacin orientada a objetos. Una computadora consiste
en varios dispositivos conocidos como hardware (teclado, pantalla,
ra tn, discos duros, memoria, unidades de DVD y unidades de
procesamiento). Los costos de las compu tadoras han disminuido
enforma espectacular, debido a los rpidos desarrollos en las
tecnologas de hardware y software. Las computadoras que ocupaban
grandes habitaciones y que costaban millones
dedlareshacealgunasdcadas, ahorapuedencolocarseen
lassuperficiesdechipsdesiliciomspequeos que una ua, y con un costo
de quiz unos cuantos dlares cada uno. Aunque suene irnico, el
silicio es uno de los materiales ms abundantes en el planeta (es
uno de los ingredientes de la arena comn). La tecnologa de los
chips de silicio ha vuelto tan econmica a la tecnologa de
lacomputacin que hay ms de mil millones de computadoras de uso
general funcionando a nivel mundial, y se espera que esta cifrase
dupliquesn losprximos aos. Los chips de computadora
(microprocesadores) controlan innumerables dispositivos. Entre
estos sistemas incrustadosestn: frenos antibloqueo en los autos,
sistemas de navegacin, electrodomsticos inteligentes, sistemas de
seguridad en el hogar, telfonos celulares y telfonos inteligentes,
robots, inter secciones de trfico inteligentes (collision avoidance
systems), controles de videojuegos y ms. La gran mayora de los
microprocesadores que se producen cada ao estn incrustados en
dispositivos que no soncomputadoras depropsito general.6 Ley de
Moore Es probable que cada ao, espere pagar por lo menos un poco ms
por la mayora de los productos y servicios. En elcaso de los campos
de lascomputadoras y las comunicaciones se ha dado lo opuesto, en
especialcon relacin aloscostosdelhardware quedasoporteaestas
tecnologas. Loscostos del hardware han disminuido con rapidez
durantevariasdcadas. Cada uno o dos aos, lascapacidades de lascompu
tadoras seduplican aproximadamentesin que el precio seincremente.
Esta notableobservacin secono ceen elmbito comncomo laLeyde Moore,
ydebesu nombre alapersonaque identific esta tenden cia: Gordon
Moore, cofundador de Intel, uno de los principales fabricantes de
procesadores para las oomputadorasylossistemas incrustados de
laactualidad. LaLeyde Mooreylasobservaciones relaciona das son
especialmente ciertas en cuanto a la cantidad de memoria que tienen
las computadoras para los programas, la cantidad de almacenamiento
secundario (como el almacenamiento en disco) que tienen para
guardar los programasy datos durante periodos extendidos de tiempo,
y lasvelocidades de sus pro cesadores: las velocidades con que las
computadoras ejecutan sus programas (realizan su trabajo). Se ha
producido un crecimiento similar enel campo de las comunicaciones,
endonde loscostossehan desplo mado a medida que la enorme demanda
por el ancho de banda de las comunicaciones (la capacidad de
transmisin de informacin) atrae una competencia intensa. No
conocemos otros cambios en los que la tecnologa mejore con tanta
rapidez y los costos disminuyan de una manera tan drstica. Dicha
mejora fenomenal est fomentando sin duda la Revolucin dela
informacin. 1.3 Jerarqua de datos Loselementosde datos que procesan
lascomputadoras forman unajerarquade datosque sevuelvecada vez ms
grande y compleja en estructura, a medida que progresamos primero a
bits, luego a caracteres, despusa camposy asen losucesivo. La
figura 1.2 ilustraunaporcin delajerarqua dedatos. La figura 1.3
sintetiza los nivelesde lajerarquade datos. 6 wtt%v. e e tira e s
.c o m / e le c tro n ic s - b lo g s / in d u s tr i a l- c o n t
r o l -d es i gnl i n e -b lo g /4027479/ Rea1-men- prog ram -i
n-C? pageN umber-1. www.FreeLibros.me
43. 1.3 Jerarqua de datos 7 S a ly Negro Tom A zul 3udy Verde I
r i s N ara n ja Randy Ro jo 3udy Verde 3 u d y Campo t 00000000
01001010 Carcter Unicode 3 1 Bit Fig. 1.2 | Jerarqua de datos.
Nivel Descripcin Bits El elemento de datos ms pequeo en una
computadora puedeasumirelvalor0 o el valor 1.A dicho elemento
dedatos se ledenomina bit (abreviacin de dgito binario:un dgito que
puedeasumir uno de dosvalores). Esnotable que lasimpresionantes
funcionesque realizan lascomputadoras slo impliquen
lasmanipulaciones ms simplesde Osy ls:
examinarelvalordeunbit,establecer
elvalordeunbiteinvertirelvalordeunbit(de 1a 0o de 0a l). Caracteres
Estedioso para laspersonastrabajarcon datos en elformato de bajo
nivelde los bits. En cambio, prefieren trabajar con
dgitosdecimales(0-9), letras(A-Z ya-z) y
smbolosespeciales(porejemplo, $, @, %, &, *, (,), +, ,?y /).
Los dgitos, letras ysmbolos especialesseconocen como caracteres. El
conjunto de caracteresde lacomputadora eselconjunto de todos los
que seutilizan para escribirprogramas yrepresentarelementosde
datos. Lascomputadorasslo procesan los 1ylos 0, por loque
elconjunto decaracteresde una computadora representaa cada uno como
un patrn de los 1ylos 0.Java usacaracteres Ltaicodeque estn
compuestos de dos bytes, cada uno delos cualesest formado a su vez
deocho bits. Unicodecontiene caracteres para muchosde losidiomas en
el mundo. En el apndiceLobtendr msinformacin sobreUnicode. En
elapndice Bconocer msinformacin sobreelconjunto de caracteresASCII
(Cdigo estndar estadounidense parael intercambio de informacin):el
popular subconjunto de Unicodeque representa
lasletrasmaysculasyminsculas, losdgitosy
algunoscaracteresespecialescomunes. Archivo Registro Fig. 1.3 |
Niveles de lajerarqua de datos (parte I de 2).
www.FreeLibros.me
44. 8 Captulo I Introduccin a las computadoras y a Java Nivel
Descripcin Campos Ascomo loscaracteresestn compuestosde bits,
loscampos loestn por caractereso bytes. Un campo esun grupo de
caracteres o bytesque transmiten un significado. Porejemplo, un
campo compuesto de letrasmaysculasyminsculas se puede usarpara
representarel nombredeuna persona, yuno compuesto de
dgitosdecimales podra representarsu edad. Registros Sepueden
usarvarios camposrelacionadosparacomponerun registro (elcual se
implementa como una elase enJava). Porejemplo, en un
sistemadenmina, el registro deun empleado podra consistiren
lossiguientescampos (los posibles tipospara stos semuestran entre
parntesis): Nmero de identificacin del empleado (un nmero entero)
Nombre (una cadena decaracteres) Direccin (una cadena de
caracteres) Salario por horas (un nmero con punto decimal)
Ingresosdelao a lafecha (un nmero con punto decimal) Monto de
impuestosretenidos (un nmero con punto decimal) As, un registro
esun grupo de campos relacionados. En el ejemplo anterior, todos
loscampos pertenecen al mismo empleado. Una compaa podra
tenermuchos empleadosyun registrodenmina para cada uno. Archivos Un
archivoes un grupo deregistrosrelacionados. [Nota:Dicho en formams
general, un archivocontienedatosarbitrariosen formatos arbitrarios.
En algunos sistemasoperativos, un archivosevetan slocomo
unasecuenciadebytes:cualquier organizacin deesosbytes en un
archivo, como cuando seorganizan losdatosen registros, es una
vistacreada porel programadordelaaplicacin].Es muycomn que una
organizacin tengamuchosarchivos, algunos deloscualespueden
contenermiles demillones, o incluso billones decaracteres
deinformacin. Fig. 1.3 | Niveles de lajerarqua de datos (parte 2 de
2). 1.4 Organizacin de una computadora Sinimportar lasdiferenciasen
laaparienciafsica,esposiblepercibiralascomputadoras como siestuvie
ran divididas en varias unidades lgicaso secciones (figura 1.4).
Unidad lgica Descripcin Unidad Esta seccin receptoraobtiene
informacin (datos yprogramasdecmputo) de los deentrada
dispositivosde entradayla pone a disposicin de lasotras unidades
paraque pueda procesarse. La mayorpartedela informacin se
introducea travsde los teclados, pantallas tctilesyratones. La
informacin tambin puedeintroducirse de muchas otras formas, como
hablar con su computadora, digitalizarimgenes ycdigosde barras,
leerdispositivos dealmacenamiento secundario (como discosduros,
unidades de DVD, Blu-ray Disc y FlashUSB tambin conocidascomo
unidadesde pulgaro memorysticks), recibirvideo deuna cmara Web
einformacin en su computadora a travsde Internet (como cuando
descarga videosdeYouTube o libroselectrnicosdeAmazon). Lasformas ms
recientesdeentrada son: leerlos datosde la posicin a travs deun
dispositivo GPS, yla informacin sobre el movimiento ylaorientacin
mediante un acelermetro en un telfono inteligente o un controlador
dejuegos. Fig. 1.4 | Unidades lgicas de una computadora (parte I de
2). www.FreeLibros.me
45. 1.4 Organizacin de una computadora 9 Unidad aritmtica y
lgica (ALU) Unidad central de procesamiento (CPU) Unidad de
almacenamiento secundario Descripcin Estaseccindeembarquetoma
informacinque ya hasido procesadapor lacompu tadora ylacolocaen
losdiferentesdispositivosde salida, paraque est disponible fuerade
lacomputadora. En laactualidad, lamayorparte dela informacinde
salida de lascomputadorassedespliegaen pantallas, seimprimeen
papel, sereproducecomo audio o video en reproductores demedios
porttiles (como lospopulares iPodde Apple)ypantallasgigantesen
estadiosdeportivos, se transmitea travsde Internet 0 se utiliza
paracontrolar otrosdispositivos, como robotsy aparatos
inteligentes. Esta seccin de almacn deacceso rpido, pero con
relativabajacapacidad, retiene lainformacin queseintroducea travsde
la unidaddeentrada, paraqueest disponibledemanera inmediata y se
pueda procesarcuando seanecesario. La unidad de memoria tambin
retiene la informacin procesada hasta que la unidad de salida pueda
colocarlaen losdispositivos desalida. La informacin en la unidadde
memoria es voltil',por logeneralse pierdecuando seapaga
lacomputadora. Con frecuencia, a la unidad de memoria seleconoce
como memoria o memoria principal.Las tpicas memorias principalesen
las computadorasdeescritorio yporttilescontienen entre 1GB y 8GB
(GB se refierea gigabytes; un gigabyte equivaleaproximadamente a
mil millonesde bytes). Esta seccin de manufactura realiza
clculoscorno suma, resta, multiplicacin y divisin.Tambin contiene
los mecanismosde decisinque permiten a lacompu tadora
hacercosascomo, porejemplo, comparar doselementosde la unidadde
memoria para determinar sison igualeso no. En lossistemasactuales,
laALU se implementa por logeneralcomo parte de lasiguiente unidad
lgica, la CPU. Esta seccin administrativa coordina ysupervisa
laoperacin delas dems. La CPU le indicaa la unidad de entrada cundo
debe grabarsela informacin dentro dela unidad dememoria, a laALU
cundo debe utilizarsela informacin dela unidad de memoria para los
clculos, ya la unidaddesalidacundo enviarla informacin
desdelaunidadde memoria hastaciertosdispositivosdesalida. Muchasde
lascompu tadorasactualescontienen mltiples CPU y, porlo tanto,
pueden realizarmuchas operaciones de manera simultnea. Un
procesador multincleo implementa varios procesadores en un solochip
de circuitosintegrados; unprocesadordedoblencleo (dual-core)tiene
dosCPU yunprocesadorde cudruplencleo(quad-core)tiene cuatro CPU.
Las computadoras de escritorio delaactualidad tienen procesadores
que pueden ejecutarmilesde millones deinstrucciones porsegundo. sta
es laseccin de almacnde alta capacidady de largaduracin. Los
programas o datos que no utilizan las dems unidadescon
frecuenciasecolocan en dispositi vosdealmacenamiento secundario
(porejemplo, eldiscoduro)hasta queserequieran de nuevo, locual
puede sercuestin de horas, das, meses o incluso aos despus. La
informacin en losdispositivos de almacenamiento secundario
espersistente: seconserva an ycuando seapaga lacomputadora. El
tiempo para accedera la informacin en almacenamiento secundario
esmucho mayor que el necesario para accedera lade la memoria
principal, pero el costo por unidad de memoria secundaria esmucho
menor que elcorrespondiente a la unidad de memoria principal. Las
unidades de CD, DVD yFlash USB son ejemplos de dispositivos de
almacenamiento secundario, loscuales pueden contener hasta 128 GB.
Los discos duros tpicosen las computadoras de escritorio y
porttiles pueden contener hasta 2 TB (TB se refiere a terabytes; un
terabyte equivale aproximada mente a un billn de bytes). Fig. 1.4 |
Unidades lgicas de una computadora (parte 2 de 2). Unidad lgica
Unidad de memoria Unidad de salida www.FreeLibros.me
46. 10 Captulo I Introduccin a las computadoras y a Java 1.5
Lenguajes mquina, lenguajes ensambladores y lenguajes de alto nivel
Los programadores escriben instrucciones en diversos lenguajes de
programacin, algunos de los cua les los comprende directamente la
computadora, mientras que otros requieren pasos inte