Ne réutilisation d'une Déclaration et Resultset de libérer les ressources de son utilisation antérieure? Ou dois-je fermer explicitement eux avant de les réutiliser?

Exemple de code:

        aStmt = aConn.prepareStatement(aQuery);
        aRset = aStmt.executeQuery(cQuery);

        while (cRset.next()) {
            //stuff to determine value of parm1

            aStmt.setString(1, parm1);                
            aRset = aStmt.executeQuery(); 

            //more stuff
        }

Dois-je fermer aStmt et aRset après chaque boucle à l'intérieur de l'instruction while? Ou va les réutiliser dans la réussir boucles de libérer de la mémoire/ressources utilisées à partir de la précédente boucles?