9780521821131

JavaTech, an Introduction to Scientific and Technical Computing with Java

by
  • ISBN13:

    9780521821131

  • ISBN10:

    0521821134

  • Format: Hardcover
  • Copyright: 2005-11-21
  • Publisher: Cambridge University Press
  • Purchase Benefits
  • Free Shipping On Orders Over $35!
    Your order must be $35 or more to qualify for free economy shipping. Bulk sales, PO's, Marketplace items, eBooks and apparel do not qualify for this offer.
  • Get Rewarded for Ordering Your Textbooks! Enroll Now
List Price: $165.00 Save up to $76.20
  • Buy New
    $160.05
    Add to Cart Free Shipping

    SPECIAL ORDER: 1-2 WEEKS

Supplemental Materials

What is included with this book?

  • The New copy of this book will include any supplemental materials advertised. Please check the title of the book to determine if it should include any access cards, study guides, lab manuals, CDs, etc.
  • The eBook copy of this book is not guaranteed to include any supplemental materials. Typically, only the book itself is included. This is true even if the title states it includes any access cards, study guides, lab manuals, CDs, etc.

Summary

JavaTech is a practical introduction to the Java programming language with an emphasis on the features that benefit technical computing. After presenting the basics of object-oriented programming in Java, it examines introductory topics such as graphical interfaces and thread processes. It goes on to review network programming and develops Web client-server examples for tasks such as monitoring remote devices. The focus then shifts to distributed computing with RMI. Finally, it examines how Java programs can access the local platform and interact with hardware. Topics include combining native code with Java, communication via serial lines, and programming embedded processors. An extensive web site supports the book with additional instructional materials. JavaTech demonstrates the ease with which Java can be used to create powerful network applications and distributed computing applications. It will be used as a textbook for programming courses, and by researchers who need to learn Java for a particular task.

Table of Contents

Preface xiii
Acknowledgements xix
Part I Introduction to Java
Introduction
3(26)
What is Java?
3(1)
History of Java
4(1)
Versions of Java
5(3)
Java -- open or closed?
8(1)
Java features and benefits
8(4)
Real-world Java applications in science and engineering
12(2)
The Java programming procedure
14(3)
Getting started
17(6)
Changes in Java 2 Standard Edition 5.0
23(4)
Web Course materials
27(2)
References
27(1)
Resources
28(1)
Language basics
29(28)
Introduction
29(1)
Language elements and structures
29(2)
A simple application
31(1)
Comments
32(1)
Data types and Java primitives
33(2)
Strings
35(1)
Expressions
35(1)
Operators
36(3)
Statements
39(5)
Casts and mixing
44(3)
Floating-point
47(3)
Programming
50(3)
Basic math in Java
53(2)
Web Course materials
55(2)
Resources
55(2)
Classes and objects in Java
57(34)
Introduction
57(1)
Custom data types
57(1)
Class definition
58(7)
Class instantiation
65(2)
Static (or class) members
67(2)
More about primitive and reference variables
69(4)
Wrappers
73(6)
Arrays
79(1)
Exceptions
80(4)
OOP in engineering and science
84(6)
Web Course materials
90(1)
Resources
90(1)
More about objects in Java
91(41)
Introduction
91(1)
Class inheritance
91(9)
More about constructors
100(5)
Abstract methods and classes
105(4)
Interfaces
109(6)
More about classes
115(5)
More about arrays
120(5)
Improved complex number class
125(1)
Random number generation
126(2)
Improved histogram class
128(2)
Understanding OOP
130(1)
Web Course materials
130(2)
References
131(1)
Resources
131(1)
Organizing Java files and other practicalities
132(28)
Introduction
132(1)
Class definition files
132(1)
Packages
133(7)
The final modifier and constants
140(1)
Static import in J2SE 5.0
141(2)
JAR files
143(3)
Distributing Java code
146(2)
Applet directories
148(1)
Javadoc
149(1)
Coding conventions
150(3)
Formatting numbers
153(5)
Web Course materials
158(2)
References
159(1)
Resources
159(1)
Java graphics
160(41)
Introduction
160(1)
AWT
161(1)
Swing: lightweight beats heavyweight
162(1)
Swing class hierarchy
163(1)
Containers
164(10)
Drawing
174(4)
Drawing with the Graphics class
178(5)
Drawing in the Java 2D API
183(7)
Images
190(2)
Java and tech graphics
192(1)
Histogram graphics
192(7)
Web Course materials
199(2)
References
200(1)
Graphical User Interfaces
201(52)
Introduction
201(1)
Events
201(11)
More user interface components
212(11)
Layout managers
223(14)
Convenience classes
237(5)
Frames and menus
242(5)
User interface with histogram display
247(4)
Web Course materials
251(2)
References
252(1)
Threads
253(34)
Introduction
253(1)
Introduction to threads
253(5)
Stopping threads
258(1)
Multiprocessing issues
259(3)
Using multiple threads
262(14)
Animations
276(5)
Timers
281(4)
Concurrency utilities in J2SE 5.0
285(1)
Web Course materials
285(2)
References
286(1)
Java input/output
287(40)
Introduction
287(2)
Streams
289(1)
Stream wrappers
290(1)
Console I/O
291(8)
The File class
299(2)
File I/O
301(11)
Character encoding
312(1)
Object I/O
313(2)
Choosing a stream class
315(1)
Primitive types to bytes and back
315(2)
Sources, destinations, and filters
317(1)
The JFileChooser dialog
318(2)
Histogram I/O
320(5)
More Java I/O
325(1)
Web Course materials
326(1)
References
326(1)
Java utilities
327(38)
Introduction
327(1)
The java.util package
327(1)
Vector and Enumeration
328(1)
Hashtable, Properties, and HashMap
329(2)
Preferences
331(4)
The Collections Framework
335(3)
Generics in J2SE 5.0
338(3)
Concurrency utilities in J2SE 5.0
341(2)
Enumerated types in J2SE 5.0
343(2)
The Arrays class
345(4)
Tools for strings
349(4)
Calendar, Date, and Time
353(3)
Arbitrary precision numbers
356(4)
Bit handling
360(2)
Other utilities
362(1)
Web Course materials
363(2)
References
363(2)
Image handling and processing
365(25)
Introduction
365(1)
The Image and BufferedImage classes
365(2)
Image loading
367(4)
Image display
371(1)
Creating images
372(1)
Saving images
373(1)
Image processing
373(1)
Pixel handling
374(6)
Filtering
380(9)
Web Course materials
389(1)
References
389(1)
Resource
389(1)
More techniques and tips
390(23)
Introduction
390(1)
Printing
390(2)
Cursor icons
392(2)
Mouse buttons
394(2)
Popup menu
396(3)
Handling keystrokes
399(3)
Audio
402(2)
Performance and timing
404(5)
Lifelong Java learning
409(1)
Web Course materials
410(3)
References
410(3)
Part II Java and the network
Java networking basics
413(18)
Introduction
413(1)
Internet basics
413(2)
Ports
415(1)
Java networking
416(1)
The URL class
417(6)
InetAddress
423(3)
Sockets
426(2)
The client/server model
428(2)
Web Course materials
430(1)
References
430(1)
Resources
430(1)
A Java web server
431(17)
Introduction
431(1)
Designing a web server
432(3)
Hypertex Transfer Protocol (HTTP)
435(3)
Running the server
438(1)
A more secure server
439(4)
A client application
443(2)
Server applications
445(1)
Servers, servlets and JSP
446(1)
Web Course materials
447(1)
References
447(1)
Client/server with sockets
448(23)
Introduction
448(1)
The client/server design
448(1)
The client/server interaction
449(1)
The DataServer
450(3)
The DataWorker
453(6)
The DataClient
459(5)
The DataClientWorker
464(5)
Benefits and shortcomings of sockets
469(1)
Web Course materials
469(2)
References
470(1)
Distributed computing
471(21)
Introduction
471(1)
Distributed computing for scientific applications
471(2)
Minimalist UML
473(2)
A conceptual model for a simple distributed application
475(2)
Collaboration diagram for a simple distributed application
477(4)
Server details
481(9)
Web Course materials
490(2)
References
491(1)
Distributed computing---the client
492(9)
Introduction
492(1)
Multithreaded client
492(1)
Model-View--Controller for the client
493(3)
More client details
496(2)
Improved client class diagram
498(2)
Web Course materials
500(1)
Resources
500(1)
Java Remote Method Invocation (RMI)
501(29)
Introduction
501(1)
How distributed computing works
501(2)
RMI overview
503(6)
The RMI client
509(2)
RMI security issues
511(4)
Finally, a working example
515(12)
How to run on two machines
527(1)
Conclusion
528(1)
Web Course materials
529(1)
References
529(1)
Corba
530(19)
Introduction
530(1)
Corba IDL
531(4)
Compiling the IDL file
535(2)
Creating the server implementation
537(7)
Client implementation
544(1)
Running the example
545(2)
Running the Corba example on two machines
547(1)
Conclusion
548(1)
Web Course materials
548(1)
Resources
548(1)
Distributed computing -- putting it all together
549(24)
Introduction
549(1)
The sample application
549(2)
Server interfaces
551(2)
Server factory implementation
553(3)
Server implementation
556(12)
Client implementation
568(1)
Enhanced client using the histogram class
569(2)
Conclusion
571(1)
Web Course materials
572(1)
References
572(1)
Introduction to web services and XML
573(12)
Introduction
573(1)
Introducing web services for distributed computing
573(1)
XML
574(4)
Java web services
578(2)
Other web services technologies
580(1)
Conclusion
581(1)
Web Course materials
581(4)
References
581(4)
Part III Out of the sandbox
The Java Native Interface (JNI)
585(40)
Introduction
585(1)
What is JNI?
586(1)
Hello World in JNI
587(10)
Deeper into JNI
597(3)
Java String objects
600(4)
Java primitive arrays
604(2)
Java object arrays and multidimensional primitive arrays
606(1)
Java objects on the C side
607(8)
Calling Java methods from native code
615(3)
Exceptions in JNI
618(4)
Local and global references
622(1)
Threads and synchronization in JNI
623(1)
Conclusion
624(1)
Web Course materials
624(1)
References
624(1)
Accessing the platform
625(26)
Escaping the sandbox
625(1)
Accessing system properties
625(4)
Running external programs
629(2)
Port communications
631(19)
Web Course materials
650(1)
References
650(1)
Resources
650(1)
Embedded Java
651(32)
Introduction
651(1)
Embedded Java for science and engineering
652(1)
J2ME -- Java 2 Micro Edition
652(2)
Real-time Java
654(3)
Java real machines
657(1)
Benefits of hardware processors
658(1)
Java processors
658(3)
Java boards
661(4)
Programming the Javelin Stamp
665(6)
An embedded web server
671(9)
Java processor performance
680(1)
Web Course materials
680(3)
References
680(3)
Appendix 1: Language elements 683(2)
Appendix 2: Operators 685(8)
Appendix 3: Java floating-point 693(4)
Index 697

Rewards Program

Write a Review