similarity is that both cannot be used as identifiers, difference is that reserved words like goto were not consider safe to use, so cannot be used. there are close substitutes like break,continue with labels for goto and public static final instead of const.

Hi key words are nothing but reserve words. we can't use this as a identifiers for variable name,class name, method name etc., But one slight different between keyword and reserve word. goto and const are not keyword. if we use this compiler shows an error message. but we can't use this as a identifier. These type of words are called reserve words.