Encontre fatorial de grandes números em Java

Eu tentei encontrar o fatorial de um grande número, e. 8785856 de uma maneira típica usando o tipo de dados for-loop e double.

Mas está exibindo infinito como resultado, pode ser porque está excedendo seu limite.

Então, por favor, guie-me o caminho para encontrar o fatorial de um número muito grande.

Meu código:

class abc
{
    public static void main (String[]args)
    {
        double fact=1;
        for(int i=1;i<=8785856;i++)
        {
            fact=fact*i;
        }

        System.out.println(fact);
    }
}

Saída:-

Infinity

Eu sou novo em Java, mas aprendi alguns conceitos de manipulação de IO e tudo.

questionAnswers(13)

yourAnswerToTheQuestion