■ You cannot have long, floating point, or String appearing in a case statement. The switch expression must evaluate to byte, char, short, or int only.
■ You get a compiler error if the switch expression's type can’t accommodate the value from any case - meaning if it's over the type's maximum value. i.e. This code will not compile because the byte variable b cannot go to 130:
■ default and break are both always optional.
■ The default code can be placed anywhere – not necessarily at the bottom of the list.
■ Switches can be nested to appear within cases.
■ Execution falls through any code not containing a break statement. This includes falling through any break-less default case which was not placed at the bottom of all the other the cases.
■ A case can only have a literal or a static final variable.
■ You cannot have if-elses or anything reaching outside the case block.