Why would I use a static block:
static {
B = 10;
}
over:
Integer B = 10;
What is the advantages/disadv
Static initialization happens when the class is loaded.
E.g. it would be a proper place to initialize member variables that could otherwise need synchronization due to access by multiple threads.
The second case would happen if you called the constructor explicitely.
The usage is different.
E.g. you would prefer the second case for lazy loading of something (if you put it in static initializers it will always load and perhaps you would not want that-prefer to lazy load it)