Eae galera, beleza.
Minha dúvida é sobre as desvantagens de declarar métodos como static;
Considerando um contexto no qual precisarei de um método que não depende do estado do objeto, e que será acessado por múltiplas threads, há alguma possibilidade de, durante a execução das threads, elas “confundirem” as variáveis de referencia/objetos criados localmente para este método, e acabar resultando em um comportamento indesejável?
Essa dúvida surgiu considerando que variáveis locais ficam no stack, e no caso de um método static, não há uma “divisão” de estado entre as threads (só existiria uma de cada variável local no contexto static ou várias, uma para cada thread?).
Algumas fontes me disseram que o “estado” local do método poderia sim ser “confundido” pelas threads, afirmando que não seriam criadas uma variável para cada objeto que a thread venha a criar no contexto estático, assim perdendo referencias de objetos criados previamente no heap. Mas tentei simular casos de uso caóticos com threads e manipulações de objetos String, e tudo me pareceu normal.
Enfim, espero ter conseguido expressar minha dúvida.

