Double brace initialization generates an unknown class received from the designated class (the outside braces) and gives an initializer segment inside that class (the internal braces). e.g.
new ArrayList<Integer>() {{
add(1);
add(2);
}};
Note that the impact of practicing this double brace initialization is that you're planning anonymous inner classes. The generated class has an absolute this pointer to the enclosing outer class.
Want to learn Java from scratch? Here's is the right video for you on Java provided by Intellipaat
Whilst not usually a difficulty, it can create anxiety in some situations e.g. when serializing or garbage collecting, and it's deserving being informed of this.