Engineering Full Stack Apps with Java and JavaScript
This is a quick summary of important keywords and reserved words that you should not be using as an identifier. Identifier is a name given to any class, method, interface, enum or variable that we create. There is also added quick notes section with few important keywords that may be useful for exam or interview preparations.
class, interface, enum(added in 5.0), package, import, new, this, super, return, void.
implements, extends, instanceof.
abstract, final, static, synchronized, volatile, transient strictfp( added in 1.2), native.
private, protected, public.
boolean, double, byte, int, short, char, long, float
for, while, do, if, else, continue, break, switch, case, default.
throw, throws, assert(in 1.4), try, catch, finally.
goto(not used) , const(not used)
Note: True, false and null are literals and not keywords. But similar to keywords and reserved words, we cannot use them as identifiers. Some exam questions may consider them as keywords.
Tip: All keywords are lower case.
class
A top level class declaration can have only have final, abstract and public as modifiers. It may also not specify an access modifier, which is called a default access. Also, abstract and final cannot come together.
A nested class (inner class) can be declared private or protected as well.
abstract
can be used for classes and methods, not for methods.
cannot be used for methods that are static, final or private, as methods with these modifiers cannot be overridden
Keywords abstract and final cannot come together in a declaration. Methods of a final class cannot be abstract.
boolean
A java primitive type that can accept either true or false as values
It cannot be converted to any other numeric type.
final
final keyword to a class means it cannot be sub classed.
final keyword to a method indicates that method cannot be overridden (if instance method) or hidden (if static method).
final keyword to a variable indicates that its value cannot be changed. In case of reference types, you can change the state of an object referred to by the variable, but cannot re-assign the variable with another object.
final variables need to be explicitely initialized in a initialization block or constructor, or on the line it is declared.
Keywords abstract and final cannot come together in a declaration.
native
Used to refer to methods that are implemented in a language other than java.
You cannot have abstract and native together.
synchronized
Applied to a method or a statement block to denote that the code within can be accessed by only one thread at a time.
transient
Applied to a variable that should not be serialized when the class is serialized.
volatile
Represents a variable that may be modified asynchronously by more than one thread. All threads see the same value for the variable
Note: For notes on other keywords, refer to the respective sections in the beginning Java book.
Identifier is a name given to any class, method, interface, enum or variable that we create.
Are case-sensitive
Can only be composed of Letters, numbers, the underscore (_) and the dollar sign ($)
May only begin with a letter, the underscore or a dollar sign
A class name can also come as an identifier. E.g. we can define a variable with the name as String, ArrayList etc.
There is no restriction on the length of an identifier. E.g. iLikeVeryVeryVeryVeryVeryLongIdentifiersThatDontMakeAnySenseAtAll is a valid identifier.