In method or class scope, the line below compiles (with warning):
int x = x = 1;
In class scope, where variables get their default valu
The second one int x=x=1 is compile because you are assigning the value to the x but in other case int x=x+1 here the variable x is not initialized , Remember in java local variable are not initialized to default value.
Note If it's (int x=x+1) in class scope also then also it will give compilation error as the variable is not created.