[WORK IN PROGRESS, noob bashing welcome] Its specification allows accessibilities to conflict. Java lets you control how much of your program can access any given variable or class. However, the default level of accessibility doesn't have a closed specification, that is, it can be 'overloaded'; this causes problems when you have more than two packages and mix certain accessibility modifiers with inheritance between them. (The problem with the linked case is that it's syntactically correct and but the resulting output varies depending on the compiler you use. This matters not for the small number of programs it cockblocks or crashes, but because compiler writers are scarily devoted and prescient, so to see them failing to resolve ambiguity is a blow to human pride and existential security.) Escape characters and directories You can't use certain directories within strings, cos backslash is used to mark escape characters and the beginning of Windows directori...