Question: As we use "default" keyword as a access specifier, and it can be used in switch statements as well with complete different purpose, So i was curious that is there any other keywords in java which can be used in more then one purposes

Answer: 
You can't use `default` as an access specifier, so I don't think even that counts. (EDIT: As Bozho pointed out, it can be used in annotations.)

`final` means "can't be derived from / overridden" and "is read-only" which are two different - but related - meanings.
The `final` keyword can mean different things.

* When modifying `classes` is means that the class cannot be subclassed.
* When modifying a `method`, it means that the method cannot be Overridden.
* When modifying a `variable`, it means that the variable cannot point to any other variable.