Carrello Lista desideri Login Registrati Aiuto e FAQ Buoni regalo Spedizioni
Ricerca
Books

Start Concurrent: an Introduction to Problem Solving...

Start Concurrent: an Introduction to Problem Solving in Java with a Focus on ConcurrencyTitoloStart Concurrent: an Introduction to Problem Solving in Java with a Focus on Concurrency
AutoreKorb, Tim
Prezzo
Sconto -2%
€ 70,85   Spedizioni gratuite in Italia
(Prezzo € 72,30)
CategoriaComputers: Programming Languages - JavaScript
RilegaturaPaperback
Dati596 pages
Anno2013
EditorePurdue University Press
Normalmente disponibile per la spedizione entro 4/5 settimane

Aggiungi alla lista dei desideri
Prezzo di copertina: Sterline 54.95 (Come calcoliamo i prezzi in euro)
nectarQuesto prodotto dà diritto a 71 punti Nectar.
Per saperne di più
Condividi 
FacebookTwitterTwitterTwitterTwitter
altri
Indice e argomenti trattati
Contents1
Prefacexii
Acknowledgementsxvii
1 Computer Basics
1
1.1 Problem: Buying a computer
1
1.2 Concepts: Hardware and software
2
1.2.1 Hardware
2
1.2.2 Software
7
1.2.3 Examples
8
1.3 Syntax: Data representation
10
1.3.1 Compilers and interpreters
10
1.3.2 Numbers
12
1.3.3 Conversion across number systems
14
1.3.4 Integer representation in a computer
16
1.3.5 Binary arithmetic
16
1.3.6 Negative integers in a computer
17
1.3.7 Overflow and underflow
19
1.3.8 Bitwise operators
19
1.3.9 Rational numbers
21
1.4 Solution: Buying a computer
27
1.5 Concurrency: Multicore processors
29
1.5.1 The Good
30
1.5.2 The Bad
30
1.5.3 The Ugly
30
1.6 Summary
31
Exercises
32
Conceptual Problems
32
2 Problem Solving and Programming
35
2.1 Problem: How to solve problems
35
2.1.1 What is a program?
35
2.1.2 What is a programming language?
36
2.1.3 An example problem
36
2.2 Concepts: Developing software
37
2.2.1 Software development lifecycle
37
2.2.2 Acquiring a Java compiler
41
2.3 Syntax: Java basics
42
2.3.1 Java program structure
42
2.3.2 Command line input and output
43
2.3.3 GUI input and output
48
2.3.4 A few operations
51
2.3.5 Java formatting
54
2.4 Solution: How to solve problems
56
2.4.1 Bouncing ball solution (command line version)
57
2.4.2 Bouncing ball solution (GUI version)
57
2.4.3 Testing and maintenance
58
2.5 Concurrency: Solving problems in parallel
59
2.5.1 Parallelism and concurrency
59
2.5.2 Sequential versus concurrent programming
59
2.5.3 Kinds of concurrency
60
2.6 Summary
62
Exercises
63
Conceptual Problems
63
Programming Practice
64
3 Primitive Types and Strings
65
3.1 Problem: College cost calculator
65
3.2 Concepts: Types
66
3.2.1 Types as sets and operations
67
3.2.2 Primitive and reference types in Java
67
3.2.3 Type safety
69
3.3 Syntax: Types in Java
70
3.3.1 Variables and literals
70
3.3.2 Primitive types
70
3.3.3 Reference types
82
3.3.4 Assignment and comparison
86
3.3.5 Constants
88
3.4 Syntax: Useful libraries
89
3.4.1 The Math library
89
3.4.2 Random numbers
91
3.4.3 Wrapper classes
93
3.5 Solution: College cost calculator
96
3.6 Concurrency: Expressions
98
3.6.1 Splitting expressions
98
3.6.2 Care in splitting expressions
100
3.7 Summary
100
Exercises
102
Conceptual Problems
102
Programming Practice
105
4 Selection
106
4.1 Problem: Monty Hall simulation
106
4.2 Concepts: Choosing between options
107
4.2.1 Simple choices
107
4.2.2 Boolean operations
108
4.2.3 Nested choices
110
4.3 Syntax: Selection in Java
110
4.3.1 If Statements
111
4.3.2 The boolean type and its operations
113
4.3.3 Switch Statements
120
4.4 Solution: Monty Hall
129
4.5 Concurrency: Selection
131
Exercises
133
Conceptual Problems
133
Programming Practice
133
5 Repetition
135
5.1 Problem: DNA searching
135
5.2 Concepts: Repetition
136
5.3 Syntax: Loops in Java
138
5.3.1 While Loops
138
5.3.2 For Loops
141
5.3.3 do-while loops
148
5.3.4 Nested loops
149
5.3.5 Common pitfalls
149
5.4 Solution: DNA searching
152
5.5 Concurrency: Loops
154
Exercises
157
Conceptual Problems
157
Programming Practice
157
Experiments
158
6 Arrays
160
6.1 Introduction
160
6.2 Problem: Conway's Game of Life
160
6.2.1 Terminal limitations
161
6.3 Concepts: Lists of data
162
6.3.1 Data structure attributes
162
6.3.2 Characteristics of an array
163
6.4 Syntax: Arrays in Java
163
6.4.1 Array declaration and instantiation
163
6.4.2 Indexing into arrays
165
6.4.3 Using loops with arrays
166
6.4.4 Redirecting input
167
6.5 Examples: Array usage
169
6.6 Concepts: Multidimensional lists
175
6.7 Syntax: Advanced arrays in Java
177
6.7.1 Multidimensional arrays
177
6.7.2 Reference types
178
6.7.3 Ragged arrays
179
6.7.4 Common pitfalls
181
6.8 Examples: Two-dimensional arrays
182
6.9 Advanced Syntax: Special array tools in Java
187
6.9.1 The for-each loop
187
6.9.2 The Arrays class
188
6.10 Solution: Conway's Game of Life
189
6.11 Concurrency: Arrays
190
Exercises
193
Conceptual Problems
193
Programming Practice
194
Experiments
195
7 Simple Graphical User Interfaces
196
7.1 Problem: Codon extractor
196
7.2 Concepts: User interaction
196
7.3 Syntax: Dialogs and the JOptionPane class
198
7.3.1 Generating an information dialog
199
7.3.2 Generating a Yes-No confirm dialog
201
7.3.3 Generating a dialog with a list of options
202
7.3.4 Generating a dialog with a custom icon
204
7.3.5 Generating an input dialog
205
7.4 Solution: Codon extractor
208
7.5 Concurrency: Simple GUIs
209
7.6 Summary
210
Exercises
211
Conceptual Problems
211
Programming Practice
211
8 Methods
213
8.1 Problem: Three card poker
213
8.2 Concepts: Dividing work into segments
214
8.2.1 Reasons for static methods
214
8.2.2 Parallel to mathematical functions
215
8.2.3 Control flow
215
8.3 Syntax: Methods
216
8.3.1 Defining methods
216
8.3.2 Calling methods
218
8.3.3 Class variables
220
8.4 Examples: Defining methods
222
8.5 Solution: Three card poker
224
8.6 Concurrency: Methods
227
Exercises
229
Conceptual Problems
229
Programming Practice
229
9 Classes
232
9.1 Problem: Nested expressions
232
9.2 Concepts: Object-oriented programming
233
9.2.1 Objects
233
9.2.2 Encapsulation
234
9.2.3 Instance methods
234
9.3 Syntax: Classes in Java
235
9.3.1 Members
235
9.3.2 Methods
237
9.3.3 Access modifiers
239
9.4 Examples: Classes
241
9.5 Advanced Syntax: Nested classes
243
9.5.1 Static nested classes
243
9.5.2 Inner classes
245
9.6 Solution: Nested expressions
247
9.7 Concurrency: Objects
249
Exercises
251
Conceptual Problems
251
Programming Practice
252
Experiments
253
10 Interfaces
254
10.1 Problem: Sort it out
254
10.2 Concepts: Making a promise
255
10.3 Syntax: Interfaces
255
10.3.1 Interfaces and static
257
10.4 Advanced Syntax: Local and anonymous classes
259
10.4.1 Local classes
259
10.4.2 Anonymous classes
261
10.5 Solution: Sort it out
262
10.6 Concurrency: Interfaces
265
Exercises
266
Conceptual Problems
266
Programming Practice
268
Experiments
268
11 Inheritance
269
11.1 Problem: Boolean circuits
269
11.2 Concepts: Refining classes
271
11.2.1 Basic inheritance
271
11.2.2 Adding functionality
271
11.2.3 Code reuse
272
11.3 Syntax: Inheritance in Java
272
11.3.1 The extends keyword
272
11.3.2 Access restriction and visibility
274
11.3.3 Constructors
274
11.3.4 Overriding methods and hiding members
275
11.3.5 The Object class
277
11.4 Examples: Problem solving with inheritance
277
11.5 Solution: Boolean circuits
281
11.6 Concurrency: Inheritance
284
Exercises
285
Conceptual Problems
285
Programming Practice
285
Experiments
287
12 Exceptions
288
12.1 Problem: Bank burglary
288
12.2 Concepts: Error handling
289
12.2.1 Error codes
289
12.2.2 Exceptions
290
12.3 Syntax: Exceptions in Java
290
12.3.1 Throwing exceptions
290
12.3.2 Handling exceptions
291
12.3.3 Catch or specify
292
12.3.4 The finally keyword
293
12.3.5 Customized exceptions
294
12.4 Solution: Bank burglary
298
12.5 Concurrency: Exceptions
299
12.5.1 Interrupted Exception
301
Exercises
302
Conceptual Problems
302
Programming Practice
303
Experiments
303
13 Concurrent Programming
305
13.1 Introduction
305
13.2 Problem: Deadly virus
305
13.3 Concepts: Splitting up work
306
13.3.1 Task decomposition
306
13.3.2 Domain decomposition
309
13.3.3 Tasks and threads
311
13.3.4 Memory architectures and concurrency
311
13.4 Syntax: Threads in Java
313
13.4.1 The Thread class
313
13.4.2 Creating a thread object
313
13.4.3 Starting a thread
314
13.4.4 Waiting for a thread
314
13.4.5 The Runnable interface
316
13.5 Examples: Concurrency and speedup
317
13.6 Concepts: Thread scheduling
322
13.6.1 Nondeterminism
323
13.6.2 Polling
323
13.7 Syntax: Thread states
324
13.8 Solution: Deadly virus
328
13.9 Summary
329
Exercises
331
Conceptual Problems
331
Programming Practice
332
Experiments
333
14 Synchronization
335
14.1 Introduction
335
14.2 Problem: Dining philosophers
335
14.3 Concepts: Thread interaction
336
14.4 Syntax: Thread synchronization
338
14.4.1 The synchronized keyword
338
14.4.2 The wait () and notify() methods
339
14.5 Pitfalls: Synchronization challenges
343
14.5.1 Deadlock
343
14.5.2 Starvation and livelock
346
14.5.3 Sequential execution
348
14.5.4 Priority inversion
349
14.6 Solution: Dining philosophers
349
Exercises
352
Conceptual Problems
352
Programming Practice
352
Experiments
353
15 Constructing Graphical User Interfaces
354
15.1 Problem: Math applet
354
15.2 Concepts: Graphical user interfaces
355
15.2.1 Swing and AWT
355
15.3 Syntax: GUIs in Java
356
15.3.1 Creating a frame
356
15.3.2 Widgets
357
15.3.3 Adding actions to widgets
360
15.3.4 Adding sounds and images
367
15.3.5 Layout managers
373
15.3.6 Menus
380
15.3.7 Applets
385
15.4 Solution: Math applet
388
15.5 Concurrency: GUIs
391
15.5.1 Worker threads
391
15.6 Summary
394
Exercises
395
Conceptual Problems
395
Programming Practice
395
Experiments
396
16 Testing and Debugging
398
16.1 Fixing bugs
398
16.1.1 Common sequential bugs
398
16.2 Concepts: Approaches to debugging
399
16.2.1 Assertions
399
16.2.2 Print statements
400
16.2.3 Step-through execution
400
16.2.4 Breakpoints
401
16.3 Syntax: Java debugging tools
401
16.3.1 Assertions
401
16.3.2 Print statements
402
16.3.3 Step-through debugging in Java
403
16.3.4 Array errors
410
16.3.5 Scope errors
411
16.3.6 Null pointer errors
413
16.4 Concurrency: Parallel bugs
413
16.4.1 Race conditions
413
16.4.2 Deadlocks and livelocks
414
16.4.3 Sequential execution
414
16.5 Finding and avoiding bugs
415
16.6 Concepts: Design, implementation, and testing
416
16.6.1 Design
416
16.6.2 Implementation
417
16.6.3 Testing
417
16.7 Syntax: Java testing tools
419
16.7.1 JUnit testing
420
16.8 Concurrency: Testing tools
423
16.8.1 ConTest
423
16.8.2 Concutest
423
16.8.3 Intel tools
424
16.9 Examples: Testing a class
424
Exercises
429
Conceptual Problems
429
Programming Practice
429
Experiments
429
17 Polymorphism
431
17.1 Problem: Banking account with a vengeance
431
17.2 Concepts: Polymorphism
432
17.2.1 The is-a relationship
432
17.2.2 Dynamic binding
432
17.2.3 General vs. specific
433
17.3 Syntax: Inheritance tools in Java
434
17.3.1 Abstract classes and methods
434
17.3.2 Final classes and methods
437
17.3.3 Casting
437
17.3.4 Inheritance and exceptions
439
17.4 Solution: Banking account with a vengeance
442
17.5 Concurrency: Atomic libraries
444
Exercises
446
Conceptual Problems
446
Programming Practice
447
Experiments
448
18 Dynamic Data Structures
449
18.1 Problem: Infix conversion
449
18.2 Concepts: Dynamic data structures
451
18.2.1 Dynamic arrays
451
18.2.2 Linked lists
451
18.2.3 Abstract data types
452
18.3 Syntax: Dynamic arrays and linked lists
452
18.3.1 Dynamic arrays
452
18.3.2 Linked lists
456
18.4 Syntax: Abstract data types (ADT)
461
18.4.1 Stacks
462
18.4.2 Abstract Data type: Operations on a stack
462
18.4.3 Queues
466
18.4.4 Abstract Data Type: Operations on a queue
467
18.5 Advanced Syntax: Generic data structures
468
18.5.1 Generics in Java
469
18.5.2 Using a Generic Class
471
18.5.3 Using Java Libraries
472
18.6 Solution: Infix conversion
475
18.7 Concurrency: Linked lists and thread safety
477
18.8 Concurrency: Thread-safe libraries
481
Exercises
484
Conceptual Problems
484
Programming Practice
484
19 Recursion
486
19.1 Problem: Maze of doom
486
19.2 Concepts: Recursive problem solving
486
19.2.1 What is recursion?
487
19.2.2 Recursive definitions
488
19.2.3 Iteration vs. recursion
490
19.2.4 Call stack
490
19.3 Syntax: Recursive methods
492
19.4 Syntax: Recursive data structures
496
19.4.1 Trees
499
19.4.2 Generic dynamic data structures and recursion
502
19.5 Solution: Maze of doom
505
19.6 Concurrency: Futures
507
Exercises
511
Conceptual Problems
511
Programming Practice
511
Experiments
512
20 File I/O
514
20.1 Problem: A picture is worth 1,000 bytes
514
20.2 Concepts: File I/O
515
20.2.1 Stream model
515
20.2.2 Text files and binary files
515
20.3 Syntax: File operations in Java
516
20.3.1 The File class
516
20.3.2 Reading and writing text files
517
20.3.3 Reading and writing binary files
518
20.4 Examples: File examples
522
20.5 Solution: A picture is worth 1,000 bytes
524
20.6 Concurrency: File I/O
525
Exercises
528
Conceptual Problems
528
Programming Practice
528
Experiments
528
21 Network Communication
529
21.1 Problem: Web server
529
21.1.1 HTTP requests
529
21.1.2 HTTP responses
530
21.2 Concepts: TCP/IP communication
530
21.3 Syntax: Networking in Java
532
21.3.1 Addresses
532
21.3.2 Sockets
532
21.3.3 Receiving and sending data
533
21.4 Solution: Web server
537
21.5 Concurrency: Networking
539
Exercises
541
Conceptual Problems
541
Programming Practice
541
Experiments
541
Index542

Ricerca Ricerca avanzata
Libri
Libri in italiano
Libri in inglese
Outlet -50%
Libri scolastici
eBook
eBook
eReader
Mobile App
Musica
CD musicali
Vinili
MP3
DVD musicali
Blu-ray musicali
Film e video
DVD
Blu-ray
Giochi
Videogiochi
Giocattoli
Cartoleria e scuola
Sport e svago
Sport
Gadget e accessori
Librerie
Bergamo
Bologna
Ferrara
Firenze
Lecco
Mantova
Novara
Padova
Roma
Treviso
Il mio IBS
I miei dati
IBS Premium
I miei ordini
Lista dei desideri
Le mie preferenze
IBS consiglia
Stampa la tua card

 

Informazioni utili:
Spese e tempi di spedizione
Punti di ritiro
Invio regali
Buoni acquisto (Happy Card)
FAQ
Condizioni generali di vendita
Informativa sulla privacy
PuntiNectar

Pagamenti:
Carte di credito
Carta di credito accettate
PayPal
Paypal
Contrassegno

Come contattarci:
Invio messaggi al servizio di Assistenza Clienti
Tutti i contatti
• Telefono: +39 02 91435230
• Fax: +39 02 91435290

• Seguici su  Facebook Twitter

Servizi per i clienti:
Password dimenticata
Controllo e modifica dei propri dati
Verifica degli ordini effettuati

Opportunità per aziende e enti:
Servizi per le biblioteche
Programma di affiliazione (Informazioni generali)
Accesso alla sezione riservata Partnership Programme IBS
Accesso alla sezione riservata TradeDoubler

Concessionaria di pubblicità:



Con la collaborazione di Argento vivo per il settore editoria libraria

Ufficio stampa: Daniela Ravanetti

Altri siti del network IBS:
Libraccio.it
MYmovies.it
Wuz.it
Librerie Ubik
IBS

Internet Bookshop Italia S.r.l.
Sede Legale Via Giuseppe Verdi n.8 - 20090 Assago MI
Reg. Imprese di Milano 12252360156
R.E.A. Milano 1542508
P.IVA 12252360156
Capitale sociale € 1.054.852 i.v.
IBS è una società soggetta a direzione e coordinamento di Emmelibri srl

Copyright © 1998-2014 Internet Bookshop Italia, tutti i diritti riservati

Licenza SIAE n. 229/I/05-359.


Funzione di ricerca basata su FACT®Finder di OMIKRON

 


IBS