screen coordinates 308
origin 307
x axis 308
y axis 308
selection statements 156
self-commenting code
writing 19
semantic events 349
separable model architecture 389
Serializable interface 716
server 554, 557
application 554, 557
hardware 554, 557
treated as capital equipment 557
ServerSocket 567, 582
example use of 584
ServerSocket class 581
ServerSocket.accept() 584
Set 487
setter methods 226
shallow copy
defined 708
shallow vs. deep copy 708
Short 149
short 128
signature rule 735
simple aggregation
defined 245
simple programs
writing 122
simple vs. composite aggregation 246
SimpleServer application 583
simplification
of real-world problems 210
Singleton 746
Singleton pattern 581, 614, 615
Socket 567, 582, 610, 612
passing to separate thread 567
Socket class 581
Socket.close() 583
Socket.getInputStream() 584
Socket.getOutputStream() 584
socket-based client
extended example 611
socket-based client example 585
socket-based client-server 582
socket-based client-server connection scenario 582
socket-based server
extended example 607–619
software design 212
software design patterns 746
Abstract Factory 749
background 746
Command 753
definition 746
Dynamic Factory 750
Factory 749
Factory Method 749
Singleton 748
specification template 747
software development roles 5
analyst 5
architect 5
programmer 6
SortedMap 487
SortedSet 487
sorting
arrays with Arrays class 201
source files
compiling 28
saving with .java extension 29
specialization
expressing in UML 268
spigot algorithm
for generating Pi 477
SQL 640
executing via JDBC 654
insert statement 651
joining tables 652
nested select statement example 654
running script in MySQL 651
select statement 652
clauses 652
update statement 652
statement 138
empty 138
for
personality of 165
statements
break 168
chained if/else 159
continue 168
control flow 156
do/while 164
personality of 164
executing consecutive if 157
for 165
relationship to while 165
if 156
if/else 156, 158
iteration 162
nesting 166
labeled break 169
labeled continue 170
mixing selection and iteration 166
selection statements 156
switch 156, 159
falling through cases 160
nested 161
using break in 159
table of 171
unlabeled break 168
unlabeled continue 170
while 162
personality of 163
static 128
static initializer 595
example code 594
static initializers 234
static method
main() 137
static polymorphism 501
strategy
project approach 6
strengthening preconditions 730
strictfp 129
String
array of 190
Strings
special treatment given to 190
StringTokenizer
use of 635
stubbing 12
super 129
super method
passing arguments to base class constructor via 273
use of 270
supertypes & subtypes
reasoning about 723
Swing 305, 350
separable model architecture 379, 389
Swing component
when to Paint() 384
Swing component painting
explanation of events 385
switch 129
switch statement 159
synchronized 129
synchronized code block 462
synchronized methods 466