Heim >Java >javaLernprogramm >Beispielanalyse von Interviewfragen zu Java-Arrays

Beispielanalyse von Interviewfragen zu Java-Arrays

PHPz
PHPznach vorne
2023-05-17 10:16:05898Durchsuche

1. Grundkenntnisse

1 Müssen Java-Variablen initialisiert werden?

Nicht unbedingt. Java-Array-Variablen sind Referenzdatentypvariablen. Sie sind nicht das Array-Objekt selbst. Solange die Array-Variable auf ein gültiges Array-Objekt verweist, kann die Array-Variable verwendet werden. Durch das Initialisieren eines Arrays wird nicht die Array-Variable initialisiert, sondern das Array-Objekt. Das heißt, es wird dem Array-Objekt ein kontinuierlicher Speicherplatz zugewiesen, und dieser kontinuierliche Speicherplatz entspricht der Länge des Arrays.

2. Werden alle Basistypvariablen im Stapelspeicher abgelegt?

Falsch. Es sollte so ausgedrückt werden: Alle lokalen Variablen werden im Stapelspeicher gespeichert, egal ob es sich um Basistypvariablen oder Referenztypvariablen handelt, sie werden in ihren jeweiligen Methodenstapelbereichen gespeichert, aber die Objekte, auf die durch Referenztypvariablen verwiesen wird (einschließlich Arrays, gewöhnliche). Java-Objekte) werden immer im Heap-Speicher gespeichert.

3. Wann ist eine Referenzvariable nur die Variable selbst im Stapelspeicher und wann wird sie zu einem Java-Objekt, das auf eine Instanz verweist?

Eine Referenzvariable ist im Wesentlichen nur ein Zeiger. Solange das Programm über eine Referenzvariable auf Eigenschaften zugreift oder eine Methode über eine Referenzvariable aufruft, wird die Referenzvariable durch das Objekt ersetzt, auf das sie verweist.

2. Beispielcode

Array drehen:

Zum Beispiel: Das Element im Array ist 123456 und nach dem Umdrehen ist es 561234

Bei einem Array mit einer Länge von n muss das letzte verschoben werden k Elemente nach vorne und die ersten n-k Elemente werden nach hinten verschoben.

//先改进面试题一中的方法,将从头到尾翻转改为从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;
    }
}

Das obige ist der detaillierte Inhalt vonBeispielanalyse von Interviewfragen zu Java-Arrays. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen