[java] [Ljava.lang.String;@7d4991ad

Résolu
Bonjour,
j'écris ce prg,après compilation et exécution aucun problème mais
avec son output il s'ajoute une phrase, je ne comprend pas qu'est ce que c'est?
quelqu'un peut m'expliquer svp

public class Sdz1 
{
  public static void main(String[] args) 
  {
	String[]tab={"toto","tata","titi","tete"};
	int[]tab2={1,2,3,4,5};
	parcourrirTab(tab);
	System.out.println(tab);
	parcourrirTab(tab2);
	System.out.println(tab2);
  }
  
  static void parcourrirTab(String[]tab)
  {
	  for(String str:tab)
		  System.out.println(str);
  }
  static void parcourrirTab(int[]tab2)
  {
	  for(int str:tab2)
		  System.out.println(str);
  }
}


output:
toto
tata
titi
tete
[Ljava.lang.String;@7d4991ad
1
2
3
4
5
[I@28d93b30

[Ljava.lang.String;@7d4991ad

[I@28d93b30

que veut dire ces lignes ?

2 réponses

  1. la ligne :
    System.out.println(tab);
    affiche "[Ljava.lang.String;@7d4991ad " qui doit etre l'identifiant java (ou le pointeur) du tableau tab, car tab n'est pas affichable comme les types simples comme une chaine et caratère ou un entier, c'est un objet donc il affiche l'identifant du pointeur de l'objet.

    la ligne
    System.out.println(tab2);
    affiche "[I@28d93b30" pour la même raison
    1
    1. Modérateur
      "qui doit etre l'identifiant java (ou le pointeur) du tableau tab"
      C'est son hashCode. Cela vient de la méthode toString de Object (par défaut) qui affiche le nom de la classe, un @, et le hashCode de l'objet.
      0