synchronized修飾子のついたメソッドは、
複数スレッドから呼ばれたときは実行順が保証されませんが、
単一スレッドから呼ばれた場合は、通常のプログラムと同様に実行順は保証されるのでしょうか?
下のようなプログラムでhoge(1)はかならずhoge(2)より先に実行されるのか、といことです。
手元で試した範囲ではそうなっていましたが。。。

synchronized void hoge(int i){
// do something
}
void fuga(){
hoge(1);
hoge(2);
}