logo

Статичен масив в Java

В Java, масив е най-важната структура от данни, която съдържа елементи от същия тип. Той съхранява елементи в непрекъснато разпределение на паметта. Има два вида масив, т.е. статичен масив и динамичен масив. В този раздел ще се съсредоточим само върху статичен масив в Java .

Статичен масив

Масив, който е деклариран с ключовата дума static, е известен като статичен масив. Той разпределя памет по време на компилация, чийто размер е фиксиран. Не можем да променим статичния масив.

Ако искаме масивът да бъде оразмерен въз основа на вход от потребителя, тогава не можем да използваме статични масиви. В такъв случай динамичните масиви ни позволяват да определим размера на масива по време на изпълнение.

Пример за статичен масив

Например int arr[10] създава масив с размер 10. Това означава, че можем да вмъкнем само 10 елемента; не можем да добавим 11-ти елемент, тъй като размерът на масива е фиксиран.

 int arr[] = { 1, 3, 4 }; // static integer array int* arr = new int[3]; // dynamic integer array 

Предимства на статичния масив

  • Има ефективно време за изпълнение.
  • Животът на статичното разпределение е цялото време на изпълнение на програмата.

Недостатъци на статичния масив

  • В случай че е декларирано повече статично пространство за данни, отколкото е необходимо, има загуба на пространство.
  • В случай, че е декларирано по-малко статично пространство от необходимото, тогава става невъзможно да се разшири този фиксиран размер по време на изпълнение.

Деклариране на статичен масив

Синтаксисът за деклариране на статичен масив е:

 []={,,.....}; 

Например:

 String[] suit = new String[] { 'Japan', 'India', 'Austria', 'Dubai' }; 

Можем също така да декларираме и инициализираме статичен масив, както следва:

 String[] suit = { 'Japan', 'India', 'Austria', 'Dubai' }; 

Статичният масив също може да бъде деклариран като списък. Например:

 List suit = Arrays.asList( 'Japan', 'India', 'Austria', 'Dubai' ); 

Java програма за статичен масив

StaticArrayExample.java

 public class StaticArrayExample { private static String[] array; static { array = new String[2]; array[0] = &apos;Welcome to&apos;; array[1] = &apos;Javatpoint&apos;; } public static void main(String args[]) { for(int i = 0; i <array.length; i++) { system.out.print(array[i] + ' '); } < pre> <p> <strong>Output:</strong> </p> <pre> Welcome to Javatpoint </pre> <p>Let&apos;s see another Java program.</p> <p> <strong>StaticArrayExample.java</strong> </p> <pre> public class StaticArrayExample2 { //creates a static array of integer type static Integer[] integerArray; static { integerArray = new Integer[] { new Integer(1), new Integer(2), new Integer(3), new Integer(4), new Integer(5)}; } public static void main(String args[]) { //loop iterate over static array for (int i = 0; i <integerarray.length; i++) { prints array elements system.out.println(integerarray[i]); } < pre> <p> <strong>Output:</strong> </p> <pre> 1 2 3 4 5 </pre> <h2>Difference Between Static Array and Dynamic Array</h2> <p>The following table describes the key differences between static array and dynamic array.</p> <table class="table"> <tr> <th>Static Array</th> <th>Dynamic Array</th> </tr> <tr> <td>Static arrays are allocated memory at compile time.</td> <td>Dynamic array is located at run-time.</td> </tr> <tr> <td>The size of static array is fixed.</td> <td>The size of dynamic array is fixed. </td> </tr> <tr> <td>It is located in stack memory space.</td> <td>It is located in heap memory space.</td> </tr> <tr> <td>int array[10]; //array of size 10</td> <td>int* array = new int[10];</td> </tr> </table> <hr></integerarray.length;></pre></array.length;>

Нека да видим друга Java програма.

StaticArrayExample.java

 public class StaticArrayExample2 { //creates a static array of integer type static Integer[] integerArray; static { integerArray = new Integer[] { new Integer(1), new Integer(2), new Integer(3), new Integer(4), new Integer(5)}; } public static void main(String args[]) { //loop iterate over static array for (int i = 0; i <integerarray.length; i++) { prints array elements system.out.println(integerarray[i]); } < pre> <p> <strong>Output:</strong> </p> <pre> 1 2 3 4 5 </pre> <h2>Difference Between Static Array and Dynamic Array</h2> <p>The following table describes the key differences between static array and dynamic array.</p> <table class="table"> <tr> <th>Static Array</th> <th>Dynamic Array</th> </tr> <tr> <td>Static arrays are allocated memory at compile time.</td> <td>Dynamic array is located at run-time.</td> </tr> <tr> <td>The size of static array is fixed.</td> <td>The size of dynamic array is fixed. </td> </tr> <tr> <td>It is located in stack memory space.</td> <td>It is located in heap memory space.</td> </tr> <tr> <td>int array[10]; //array of size 10</td> <td>int* array = new int[10];</td> </tr> </table> <hr></integerarray.length;>

Разлика между статичен масив и динамичен масив

Следващата таблица описва основните разлики между статичен масив и динамичен масив.

Статичен масив Динамичен масив
На статичните масиви се разпределя памет по време на компилиране. Динамичният масив се намира по време на изпълнение.
Размерът на статичния масив е фиксиран. Размерът на динамичния масив е фиксиран.
Той се намира в пространството на стековата памет. Той се намира в пространството на куп паметта.
int масив [10]; //масив с размер 10 int* масив = нов int[10];