Duas maiores notas entre 3

Boa tarde!
Por gentileza, alguém consegue ver onde está o erro?
Preciso mostrar as duas maiores notas entre 3 digitadas.
Alguns valores digitados, a resposta vem correta, porém quando digito a sequência, 3, 2, 1 o resultado retorna incorreto.
Obrigado!

O código
import java.util.Scanner;

public class Media {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
double notas = 0;
double soma = 0;
int count = 0;
double notaMaior = 0;
double notaMenor = 0;
double somaDuas = notaMenor + notaMaior;

    do {
        count++;
        System.out.println("Informe a " + count + "ª nota");
        notas = in.nextDouble();
        soma += notas;
   
        
        if (notas > notaMaior) {
            notaMenor = notaMaior;
             notaMaior = notas;
        }
            somaDuas = (notaMenor + notaMaior);
        
        
     }  while (count < 3);

    System.out.println("A média das 3 notas é " + media3(soma));
    System.out.println("A média com as duas maiores notas " + media2(somaDuas));
    System.out.println("A  maior nota das duas maiores foi " + notaMaior);
    System.out.println("A menor das maiores foi " + notaMenor);

}

public static double media3(double n) {
    double media = n / 3;
    return media;
}

public static double media2(double n) {
    double media = n / 2;
    return media;

}

}

Esta linha diz que, se você lê o maior valor primeiro, nunca mais vai alterar nada.
Você está sendo extremamente simplista, a ponto de errar, afinal, você precisa tratar de mais coisas aí.
Minha dica é que você faça cada coisa em separado.

Faça no papel a execução desse if com os valores que você mencionou que você irá entende.

3 > 0 -> Entra no if.
2 > 3 -> Não entra no if, sendo assim ele já não faz mais nada.
1 > 3 -> O mesmo aqui.

E seu enunciado não corresponde com seu código, você diz precisar das duas MAIORES, mas trabalha com a menor.

Eu faria da seguinte forma.

if (nota1 > nota2 || nota1 > nota3) {
...
}
if(nota2 > nota1 || nota2 > nota3) {
....
}
if(nota3 > nota1 || nota3 > nota2) {
...
}

Assim você vai ter sempre as 2 maiores.

Olá Rodrigo!
A notaMenor que me refiro é a segunda maior entre as 3, posso mudar para maior1 e maior2, mas acho que não é esse o erro.
O código que tu fez foi necessário criar 3 variáveis, fica mais fácil de encontrar as duas maiores.
O que quero e acho que é possível é usar a variável(nota) e inserir as 3 notas usando o count.
Obrigado pela sua sugestão!

if (nota > maior1) {
..
}
else if (nota > maior2) {
...
}

Agora deu certo
if (notas > maior1) {
maior2 = maior1;
maior1 = notas;
}
else if (notas > maior2) {
maior2 = notas;
}
Valeu!

Só não faz sentido chamar a variável de notas sendo que ela armazena o valor de apenas uma nota.

Verdade, obrigado pela dica!