+ 3
Do I need to specify «final» modifier for ALL local immutable variables in Java?
In one Java book I read âIn general, itâs a good idea to always declare variables as final, and constant fields as static final, if they donât need to be reassignedâ. When I started to code, I discovered that almost all my local variables are immutable. So here are my questions: 1. Is it a good practice to make all local immutable variables «final»? 2. Do you use «final» modifier for all your immutable local variables in your programs? 3. If not, when do you use «final» and when do you skip using this keyword? Please see the code snippets that illustrate my question. https://code.sololearn.com/cI9X7YFqf155/?ref=app
2 Answers
+ 1
If you want make your variable value constant throughout your program, then declare it final.
In that case, it will good to declare as final because, if it is final, it cannot possible to change at run time so references to constant field resolved at compile time..
If it is not final, then if you create 100 objects, then 100 variables instance you create with same value so wasting memory. If it is final, only 1 instance it creates..
+ 1
here you cant use final, (if class has not constructor or initial block)
class Person {
final int id; //error
final String firstName;
}
public class Program {
public static void main(String[] args) {
Person p = new Person();
p.id=123;
p.firstName ="John";
}
}