Maison  >  Article  >  Java  >  Exemple d'analyse de questions d'entretien sur les tableaux Java

Exemple d'analyse de questions d'entretien sur les tableaux Java

PHPz
PHPzavant
2023-05-17 10:16:05873parcourir

1. Connaissances de base

1.

Pas forcément. Une variable tableau Java est une variable de type de données de référence. Ce n'est pas l'objet tableau lui-même. Tant que la variable tableau pointe vers un objet tableau valide, la variable tableau peut être utilisée. L'initialisation d'un tableau n'initialise pas la variable du tableau, mais initialise l'objet du tableau, c'est-à-dire l'allocation d'un espace mémoire continu pour l'objet tableau, et cet espace mémoire continu correspond à la longueur du tableau.

2. Toutes les variables de type de base sont-elles placées dans la mémoire de la pile ?

Faux. Il faut dire comme ceci : toutes les variables locales sont stockées dans la mémoire de pile, qu'il s'agisse de variables de type de base ou de variables de type référence, elles sont stockées dans leurs zones de pile de méthodes respectives mais les objets référencés par des variables de type référence (y compris les tableaux, ordinaires ; objets Java) sont toujours stockés dans la mémoire tas.

3. Quand une variable de référence est-elle simplement la variable elle-même dans la mémoire de la pile, et quand devient-elle un objet Java qui fait référence à l'instance ?

Une variable de référence n'est essentiellement qu'un pointeur. Tant que le programme accède aux propriétés via la variable de référence, ou appelle une méthode via la variable de référence, la variable de référence sera remplacée par la variable de référence. objet auquel il fait référence.

2. Exemple de code

Faites pivoter le tableau :

Par exemple : l'élément dans le tableau est 123456 , et après l'avoir retourné, il s'agit de 561234

Étant donné un tableau de longueur n, il est nécessaire de déplacer les k derniers éléments vers l'avant et les n-k premiers éléments vers l'arrière.

//先改进面试题一中的方法,将从头到尾翻转改为从i到j翻转
public int[] changeArray2(int[] array, int i, int j) {
 
        int temp = 0;
        while (i < j) {
            temp = array[i];
            array[i] = array[j];
            array[j] = temp;
            i++;
            j--;
        }
        //实现旋转数组就可以通过下面的方式来实现
        //1.翻转前半部分2.翻转后半部分3.反转整个数组
        public int[] swap(int[] array, int k) {
        int n = array.length - 1;// n=5
        changeArray2(array, 0, n - k);
        changeArray2(array, n - k + 1, n);
        changeArray2(array, 0, n);
        return array;
    }
}

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer