v Javě, pole je nejdůležitější datová struktura, která obsahuje prvky stejného typu. Ukládá prvky v souvislé alokaci paměti. Existují dva typy polí, tj. statické pole a dynamické pole. V této části se zaměříme pouze na statické pole v Javě .
Statické pole
Pole, které je deklarováno pomocí klíčového slova static, se nazývá statické pole. Přiděluje paměť v době kompilace, jejíž velikost je pevná. Nemůžeme změnit statické pole.
Pokud chceme, aby velikost pole byla založena na vstupu od uživatele, nemůžeme použít statická pole. V takovém případě nám dynamická pole umožňují určit velikost pole za běhu.
jaký je souborový systém linux
Příklad statického pole
Například int arr[10] vytvoří pole o velikosti 10. To znamená, že můžeme vložit pouze 10 prvků; nemůžeme přidat 11. prvek, protože velikost pole je pevná.
int arr[] = { 1, 3, 4 }; // static integer array int* arr = new int[3]; // dynamic integer array
Výhody statického pole
- Má efektivní dobu provádění.
- Životnost statické alokace je celá doba běhu programu.
Nevýhody statického pole
- V případě, že je deklarováno více statického datového prostoru, než je potřeba, dochází k plýtvání místem.
- V případě, že je deklarováno méně statického prostoru, než je potřeba, nebude možné tuto pevnou velikost během běhu rozšířit.
Vyhlášení statického pole
Syntaxe pro deklaraci statického pole je:
[]={,,.....};
Například:
String[] suit = new String[] { 'Japan', 'India', 'Austria', 'Dubai' };
Můžeme také deklarovat a inicializovat statické pole následovně:
String[] suit = { 'Japan', 'India', 'Austria', 'Dubai' };
Statické pole lze také deklarovat jako seznam. Například:
List suit = Arrays.asList( 'Japan', 'India', 'Austria', 'Dubai' );
Program Java pro statické pole
StaticArrayExample.java
public class StaticArrayExample { private static String[] array; static { array = new String[2]; array[0] = 'Welcome to'; array[1] = 'Javatpoint'; } 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'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;>
Podívejme se na další Java program.
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;>
Rozdíl mezi statickým polem a dynamickým polem
Následující tabulka popisuje klíčové rozdíly mezi statickým polem a dynamickým polem.
abs c kód
Statické pole | Dynamické pole |
---|---|
Statická pole mají přidělenou paměť v době kompilace. | Dynamické pole je umístěno za běhu. |
Velikost statického pole je pevná. | Velikost dynamického pole je pevná. |
Je umístěn v zásobníku paměti. | Je umístěn v prostoru haldy paměti. |
int pole[10]; //pole o velikosti 10 | int* pole = new int[10]; |