I would like to find out when should you use static, final, static final parameters for variables and (or) methods. As much as I understand:
- final: used similar to const parameter in c++. It basically means that value (or in methods - returned value) is not going to change.
- static: it means that value (or method) is not assigned directly to some object - therefore you are able to use static variable (or method) in other classes without creating object
- final static: does this combination mean that you have variable (or method), which you are able to access without creating object (static) and you are unable to change its value (like in c++ const) (final)
If I am right, than I don't get one thing. In IntelliJ IDE when you declare method as public final static, it points out that final should be removed, because static has already been pointed out. Why, how, when???