| types, objects (capitalized) vs. primitive types (lower case) | 
| generic expressions 
 s ? x : y
 (x) | 
| numbers ( int,double,Integer,Double)
 0, 1, -1, ...
 1.0, 2.0, 1.5, 0.6666, ...
 a + b
 a - b
 - a
 a * b
 a / b
 Math.abs(a)
 Math.pow(a, b)
 Math.sin(a)[etc.] | sentences ( boolean,Boolean)
false
true
a == b
a != b
a < b
a <= b
a >= b
a > b
s && t
s || t
! s
 | 
| objects ( Object)
a.equals(b)
a == null
 | strings ( String)
"whatever"
s + t
a.toString()
Integer(s)
Integer(s).intValue()
Double(s)
Double(s).doubleValue()
 | 
| function definitions 
static type2 functionName(type1 x) {
    action1;
    action2;
    return ... x ...;
}
 | 
| variables and arrays 
array typestype []reserving storage
type name;
type name = y;
 new type [arraySize]
 type [] arrayName = new type [arraySize];
fetching value
name
name[index]
assignment
name = expression;
name[index] = expression;
 | actions 
if (s) {
    action;
}
if (s) {
    action1;
}
else {
    action2;
}
for (k=0; k<n; k = k+1) {
    action;
}
x = y;
 | 
| I/O Gak! In Java I/O is normally event driven, and much more complex than Haskell.
Use the boilerplate code.
 |