Il est exact que déclarer une variable locale dans plutôt que hors de la boucle modifie le temps d'exécution. Mais pour autant que j'ai pu mesurer, ce surcoût est faible par rapport au coût de la boucle elle-même (de l'ordre de 20 à 25 % du coût d'une boucle vide), et il semble fixe quels que soient le nombre et le type des variables déclarées dans le corps de la boucle.
Maintenant, en termes de lisibilité, la réponse est très claire : à l'intérieur, c'est beaucoup mieux. De manière générale, il est toujours préférable de réduire la portée d'un symbole au bloc le plus petit possible. Cela garantit -- et cela rend visible -- le fait que la variable n'est pas utilisable ailleurs. Cela réduit également le nombre d'entités que le cerveau a à mémoriser quand il décortique le code, donc cela contribue à réduire la complexité dudit code.
Alors à moins que votre fonction se résume à cette boucle, moi, je suggère de la mettre à l'intérieur.
Et n'oubliez jamais que les JVM récentes possèdent des optimiseurs dont l'efficacité est sans commune mesure avec les optimisations que vous pourriez faire au niveau source (exemple HotSpot Server).