Очень легко вводить тонкие логические ошибки, вызывая статические методы из экземпляров. Например, это не делает то, что вы думаете:
Thread t = new Thread(...);
t.sleep(1000);
sleep
- это статический метод, который приостанавливает выполняемый в данный момент поток, а не экземпляр потока.