logo

Statické pole v jazyku Java

v Jave pole je najdôležitejšia dátová štruktúra, ktorá obsahuje prvky rovnakého typu. Ukladá prvky v súvislej alokácii pamäte. Existujú dva typy polí, tj. statické pole a dynamické pole. V tejto časti sa zameriame len na statické pole v jazyku Java .

Statické pole

Pole, ktoré je deklarované pomocou kľúčového slova static, je známe ako statické pole. Prideľuje pamäť v čase kompilácie, ktorej veľkosť je pevná. Nemôžeme zmeniť statické pole.

Ak chceme, aby veľkosť poľa bola založená na vstupe od používateľa, nemôžeme použiť statické polia. V takom prípade nám dynamické polia umožňujú určiť veľkosť poľa za behu.

Príklad statického poľa

Napríklad int arr[10] vytvorí pole veľkosti 10. To znamená, že môžeme vložiť iba 10 prvkov; nemôžeme pridať 11. prvok, pretože veľkosť poľa je pevná.

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

Výhody statického poľa

  • Má efektívny čas vykonávania.
  • Životnosť statickej alokácie je celý čas spustenia programu.

Nevýhody statického poľa

  • V prípade, že je deklarovaných viac statického dátového priestoru, ako je potrebné, dochádza k plytvaniu miestom.
  • V prípade, že je deklarovaných menej statického priestoru, ako je potrebné, nebude možné rozšíriť túto pevnú veľkosť počas behu.

Vyhlásenie statického poľa

Syntax na deklarovanie statického poľa je:

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

Napríklad:

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

Môžeme tiež deklarovať a inicializovať statické pole takto:

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

Statické pole možno deklarovať aj ako zoznam. Napríklad:

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

Program Java pre statické pole

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;>

Pozrime sa na ďalší program 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;>

Rozdiel medzi statickým poľom a dynamickým poľom

Nasledujúca tabuľka popisuje kľúčové rozdiely medzi statickým a dynamickým poľom.

Statické pole Dynamické pole
Statickým poliam je pridelená pamäť v čase kompilácie. Dynamické pole sa nachádza za behu.
Veľkosť statického poľa je pevná. Veľkosť dynamického poľa je pevná.
Nachádza sa v pamäťovom priestore zásobníka. Nachádza sa v haldovom pamäťovom priestore.
int pole[10]; //pole veľkosti 10 int* pole = new int[10];