I was curious as well, so I took it for a spin[0]. In short, no. A static initializer still needs to be wrapped in a class that contains a main method.
public class Main {
static {
System.out.println("Hello world");
}
public static void main(String[] args) {}
}
A bit of both. Code still belongs in a class, not pictured here. `static` blocks are executed when the class is loaded and are usually used to fill `static final` members. In a toy example like this it's shorter than writing the `main()` incantation.
It might depend on the precise representation. This has become increasingly standardized lately which is why those numbers are really close and not wildly off.
Quick Java program says 1,065,353,216 / 1,065,353,217
Which one is right? Or are Java floats just "different"?